언어 스위치의 KO 가 /visit 으로 가고 있었다. 같은 내용의 한국어판이 아니라 짝이 아니었다. /stay 를 만들어 /stay ↔ /en/stay 로 잇는다. 수집 (scripts/fetch_medical_tourism.py --lang ko) - 국문은 ContentTypeId 가 다르다(관광지 12·문화시설 14·숙박 32·쇼핑 38·음식점 39). 다국어 코드로 부르면 엉뚱한 것이 온다. - 국문 서비스는 KorService2 로 붙고, 국문 사진 폴백은 건너뛴다(국문이 원본이다). - 출력은 medicalTourismKo.json. 국문이 훨씬 두껍다 전체 123곳(영문 101) · 도보 5분 이내 13곳(영문 2) · 걸어갈 수 있는 곳 66곳(영문 25) 설명문 146/147 · 사진 147/147 국문 관광지에는 의료관광 등록업소가 섞이지 않아 A02020500 필터가 걸리지 않는다. 영문에서 반경 5km 100건 중 92건이 병원·에이전시였던 것과 대비된다. 화면 (supporters/src/pages/stay.astro) /en/stay 와 같은 구조에 한국어 문구를 넣었다. 이동 시간 라벨은 데이터에 영문으로 들어 있어 화면에서 만든다(도보 N분 / 차로 N분). 날씨 상태도 한국어로 옮겼고, 검색 링크는 네이버로 보낸다. 식이·회복 안내는 site.json 의 dietGuideKo / recoveryStagesKo 를 쓰며, 없으면 병원 확인 대기로 둔다. 라우팅 - Base.astro PAIRS 에 '/stay': '/en/stay' 등록. 스위치가 서로를 가리킨다. - 한국어 네비게이션에 "주변 안내" 추가. 스위치는 EN/KO 만 오가므로 다른 페이지에서 /stay 로 갈 길이 없었다. 이 항목 추가로 LAYOUT_CHANGED 경고 2건이 남아 있으며 haewon 승인 전까지 기준선을 갱신하지 않는다. - 사이트맵에 /stay 추가. 템플릿은 같은 코드에 빈 데이터 스캐폴드를 둔다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .vscode | ||
| briefs | ||
| public | ||
| scripts | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| astro.config.mjs | ||
| CLAUDE.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vercel.json | ||
supporters-astro 템플릿
병원 하나의 서포터즈 사이트를 만드는 Astro 7 정적 템플릿이다. supporters/(뷰성형외과 샘플)에서 node scripts/export_template.mjs로 생성되며, 직접 편집하지 않는다. 고칠 것은 supporters/에서 고치고 다시 내보낸다.
데이터만 채우면 되는 것
| 파일 | 내용 | 채우는 주체 |
|---|---|---|
src/data/factSheet.json |
병원 사실 단일 원본 (NAP·진료시간·층·진료과·안전·이력·플랫폼 집계) | 근거 수집기 + 병원 확인 |
src/data/authors.json |
작성자(실명·직함·sameAs·정정 이메일), 의학 검토 원장 | 운영자·병원 입력 |
src/data/site.json |
매체 이름·로고·홈 화면 큐레이션(영상 3편, 시설 사진, 방문 약도, 추천 글) | 운영자 |
src/data/videos.json |
유튜브 채널 집계 (Top10 롱폼·정보형 쇼츠+답) | 수집기 |
src/data/news.json |
뉴스룸 (보도자료·기고·언급) | scripts/build_news.py |
src/data/corrections.json |
정정 기록 | 운영자 |
src/content/posts/*.md |
글. frontmatter 규격은 src/content.config.ts |
글 생성기 + 검토 승인 |
public/img/ |
병원 허락을 받은 이미지 | 수집기 |
scripts/home_text.txt |
홈페이지 본문(공백 제거). 40자 연속 일치 검사 기준 | 수집기 |
비어 있는 값은 화면에 "확인 대기"로 표시되고 스키마에서는 빠진다. 지어내지 않는다.
빌드·검사
npm ci
npm run build # astro build + 발행 게이트(scripts/check.mjs). error가 있으면 exit 1
npm run gate:test # 게이트 규칙 회귀 (픽스처 + 글 전편)
node scripts/check.mjs --update-layout # 룩앤필 변경을 승인한 뒤에만 구조 기준선 갱신
배포 주소는 SITE_URL 환경변수(vercel.json·astro.config.mjs의 __CLINIC_ID__를 병원 id로 교체). 기본은 noindex이며 PUBLIC_INDEXABLE=true로 색인을 연다.