diff --git a/supporters/docs/v4-screenshots/v4_about.png b/supporters/docs/v4-screenshots/v4_about.png index 23ef3d1..139147e 100644 Binary files a/supporters/docs/v4-screenshots/v4_about.png and b/supporters/docs/v4-screenshots/v4_about.png differ diff --git a/supporters/docs/v4-screenshots/v4_clinic_top.png b/supporters/docs/v4-screenshots/v4_clinic_top.png new file mode 100644 index 0000000..397ed3f Binary files /dev/null and b/supporters/docs/v4-screenshots/v4_clinic_top.png differ diff --git a/supporters/docs/v4-screenshots/v4_editorial.png b/supporters/docs/v4-screenshots/v4_editorial.png index 9ac5b54..38e21b6 100644 Binary files a/supporters/docs/v4-screenshots/v4_editorial.png and b/supporters/docs/v4-screenshots/v4_editorial.png differ diff --git a/supporters/docs/v4-screenshots/v4_home_full.png b/supporters/docs/v4-screenshots/v4_home_full.png index 68f7261..cd3feae 100644 Binary files a/supporters/docs/v4-screenshots/v4_home_full.png and b/supporters/docs/v4-screenshots/v4_home_full.png differ diff --git a/supporters/docs/v4-screenshots/v4_home_hero.png b/supporters/docs/v4-screenshots/v4_home_hero.png index 80908d6..04b413b 100644 Binary files a/supporters/docs/v4-screenshots/v4_home_hero.png and b/supporters/docs/v4-screenshots/v4_home_hero.png differ diff --git a/supporters/docs/v4-screenshots/v4_post_top.png b/supporters/docs/v4-screenshots/v4_post_top.png index d006a12..bc50d63 100644 Binary files a/supporters/docs/v4-screenshots/v4_post_top.png and b/supporters/docs/v4-screenshots/v4_post_top.png differ diff --git a/supporters/docs/v4-screenshots/v4_posts_top.png b/supporters/docs/v4-screenshots/v4_posts_top.png index 16640fc..c857f2a 100644 Binary files a/supporters/docs/v4-screenshots/v4_posts_top.png and b/supporters/docs/v4-screenshots/v4_posts_top.png differ diff --git a/supporters/src/pages/about.astro b/supporters/src/pages/about.astro index c8372dd..5c4f89c 100644 --- a/supporters/src/pages/about.astro +++ b/supporters/src/pages/about.astro @@ -6,7 +6,7 @@ const ld = { '@type': 'AboutPage', '@id': `${site}/about#page`, name: '이 사 ---
-
소개

이 사이트에 대해

누가 쓰는지, 무엇을 근거로 하는지, 무엇을 싣지 않는지.

+
About

About This Site

누가 쓰는지, 무엇을 근거로 하는지, 무엇을 싣지 않는지.

어떤 곳인가요

뷰 서포터즈는 {fact.shortName}를 알아보는 분들이 실제로 묻는 질문에 답하는 곳입니다. 병원 홈페이지가 병원을 소개한다면, 이곳은 "가기 전에 뭘 알아야 하지?", "이 수술은 어떻게 진행되지?", "후기는 어디서 보지?" 같은 환자 쪽 질문에서 출발합니다.

diff --git a/supporters/src/pages/clinic.astro b/supporters/src/pages/clinic.astro index 8c1d7ed..08a07f4 100644 --- a/supporters/src/pages/clinic.astro +++ b/supporters/src/pages/clinic.astro @@ -9,7 +9,7 @@ const ld = [clinicSchema(site), physicianSchema('dr-choi')]; ---
-
병원 정보

뷰성형외과 기본 정보

주소, 전화, 진료시간, 층별 안내, 의료진을 한 곳에 모았습니다. 표기는 공식 홈페이지를 따르고, 홈페이지에 없는 항목은 출처를 따로 적습니다.

+
Fact Sheet

Fact Sheet

뷰성형외과 기본 정보. 주소, 전화, 진료시간, 층별 안내, 의료진을 한 곳에 모았습니다. 표기는 공식 홈페이지를 따르고, 홈페이지에 없는 항목은 출처를 따로 적습니다.

진료시간

{fact.hours.rows.map((r) => )}
요일진료
{r.days}{r.open ? `${r.open} ~ ${r.close}` : r.note}
diff --git a/supporters/src/pages/editorial.astro b/supporters/src/pages/editorial.astro index 7f95a19..20eba5a 100644 --- a/supporters/src/pages/editorial.astro +++ b/supporters/src/pages/editorial.astro @@ -7,7 +7,7 @@ const ld = { '@type': 'WebPage', '@id': `${site}/editorial#page`, name: '편집 ---
-
운영자용

편집 기준

이 페이지는 병원 담당자, 서포터즈, INFINITH 운영진이 보는 문서입니다. 방문자에게 보이는 소개는 이 사이트에 대해에 따로 있습니다.

+
Editorial Policy

Editorial Policy

이 페이지는 병원 담당자, 서포터즈, INFINITH 운영진이 보는 문서입니다. 방문자에게 보이는 소개는 이 사이트에 대해에 따로 있습니다.

고객 화면에는 "AI가 인용하는 방식"이나 제작 원칙을 쓰지 않습니다. 방문자는 답을 보러 오지 제작 과정을 보러 오지 않습니다. 이 페이지의 내용은 이 페이지 밖으로 내보내지 않습니다.

1. 왜 이 사이트인가

diff --git a/supporters/src/pages/index.astro b/supporters/src/pages/index.astro index f7ca1a6..e74af99 100644 --- a/supporters/src/pages/index.astro +++ b/supporters/src/pages/index.astro @@ -5,39 +5,28 @@ import PostCard from '../components/PostCard.astro'; import FactBlock from '../components/FactBlock.astro'; import VideoLite from '../components/VideoLite.astro'; import Gallery from '../components/Gallery.astro'; -import { SITE_NAME, CATEGORY_LABELS, fact, clinicSchema } from '../lib'; +import { SITE_NAME, fact, clinicSchema } from '../lib'; const posts = (await getCollection('posts')).sort((a, b) => b.data.dateModified.localeCompare(a.data.dateModified)); const site = Astro.site!.toString().replace(/\/$/, ''); const ld = [ { '@type': 'WebSite', '@id': `${site}/#website`, name: SITE_NAME, url: site, inLanguage: 'ko', about: { '@id': `${fact.url}/#clinic` }, publisher: { '@type': 'Organization', name: SITE_NAME, url: site } }, clinicSchema(site), ]; -// 고객이 고르는 주제. 글이 있는 카테고리만 보여 준다. 설명문은 환자 관점의 질문 예시다. -const TOPIC_HINT: Record = { - A: '어떤 병원인지, 어떤 원장이 있는지', - B: '가는 길, 예약, 상담 당일 준비', - C: '병원과 원장을 고를 때 볼 것', - D: '수술 방법, 보형물, 회복 과정', - E: '마취, 수술 실명제, 응급 대비', - F: '가격 안내를 어디서 확인하는지', - G: '후기를 어디서 어떻게 읽을지', -}; -const topics = Object.keys(CATEGORY_LABELS).map((c) => ({ key: c, label: CATEGORY_LABELS[c], hint: TOPIC_HINT[c], count: posts.filter((p) => p.data.category === c).length })).filter((t) => t.count > 0); --- - +
-
뷰 서포터즈
-

뷰성형외과,
궁금한 것부터 답합니다.

+
View Supporters · Sample
+

뷰성형외과를 알아보는 사람들의
질문에 먼저 답합니다.

{fact.shortName}는 {fact.founded}년 개원한 서울 강남 신논현역 인근 성형외과입니다. 이곳은 병원을 알아보는 분들이 실제로 묻는 질문을 골라, 원장 설명 영상과 병원이 공개한 자료를 근거로 답하는 곳입니다. 글마다 누가 썼고 원장 감수를 거쳤는지 밝힙니다.

{fact.founded}년 개원 · 신논현역 3번 출구 50m 원장 설명 영상 {fact.surfaces.youtube.videos}편을 근거로
@@ -47,41 +36,35 @@ const topics = Object.keys(CATEGORY_LABELS).map((c) => ({ key: c, label: CATEGOR
-
주제별로 찾기

무엇이 궁금하세요?

병원에 가기 전에 알고 싶은 것을 주제별로 정리했습니다.

-
- {topics.map((t) => ( - -
{t.count}편
-

{t.label}

-

{t.hint}

-
- ))} +
Why This Site

Questions First

병원에 가기 전에 알고 싶은 것부터 답합니다. 답은 원장이 직접 설명한 영상과 병원 공개 자료를 근거로 합니다.

+
+
{posts.length}답한 질문질문 하나에 글 하나. 첫 단락 "세 줄 요약"에 답을 먼저 쓰고, 그다음에 근거를 풉니다.
+
{fact.surfaces.youtube.videos}원장 설명 영상글에서 원장이 한 말은 영상을 함께 붙여 두어 직접 확인할 수 있습니다.
+
{fact.surfaces.gangnamunni.reviews}강남언니 후기후기는 어디서 몇 건을 볼 수 있는지만 안내합니다. 다른 환자의 경험담은 옮기지 않습니다.
-
최근 글

최근에 답한 질문

첫 단락 "세 줄 요약"에 답을 먼저 쓰고, 그다음에 근거를 풉니다.

전체 보기
+
Latest

Recent Answers

최근에 답한 질문. 첫 단락 "세 줄 요약"만 읽어도 답을 알 수 있습니다.

전체 보기
{posts.slice(0, 6).map((p) => )}
-
원장 영상

원장이 직접 설명합니다

이 사이트의 글은 아래와 같은 원장 설명 영상을 근거로 씁니다. 원본을 그대로 재생할 수 있습니다.

+
From The Doctors

Doctors Explain

원장이 직접 설명하는 영상. 이 사이트의 글은 이런 영상을 근거로 씁니다.

-

가장 많이 본 영상 보기

-
-
병원 둘러보기

건물 안은 이렇게 생겼습니다

19층 자체 사옥. 상담 4~5층, 검진 지하 1층, 수술 11~14층, 입원 8·10층.

+
Inside

Inside The Building

19층 자체 사옥. 상담 4~5층, 검진 지하 1층, 수술 11~14층, 입원 8·10층.

({ key: c, label: CATEGOR

사진 출처: 뷰성형외과 공식 홈페이지 병원둘러보기

-
-
믿고 읽어도 되나요

이 글들은 이렇게 만듭니다

읽는 분이 판단할 수 있도록 세 가지를 항상 밝힙니다.

+
Principles

What We Do, What We Don't

읽는 분이 판단할 수 있도록 세 가지를 지킵니다.

-

원장이 감수합니다

의학적인 내용은 뷰성형외과 담당 원장이 확인합니다. 감수가 끝난 글에는 감수 완료와 날짜를, 아직인 글에는 감수 예정을 표시합니다.

-

근거를 보여 드립니다

글마다 참고한 원장 영상과 병원 자료의 링크를 붙입니다. 원장이 한 말은 영상으로 직접 확인할 수 있습니다.

-

과장하지 않습니다

전후 사진, 다른 환자의 경험담, 효과를 보장하는 표현은 쓰지 않습니다. 이 사이트는 뷰성형외과의 지원을 받아 운영하며, 그 사실을 모든 글에 적습니다. 이 사이트에 대해

+

합니다

질문 하나에 글 하나. 첫 단락에 답을 먼저 씁니다. 의학적인 내용은 담당 원장이 감수하고, 감수가 끝난 글에는 날짜를, 아직인 글에는 감수 예정을 표시합니다.

+

하지 않습니다

전후 사진, 다른 환자의 경험담, 다른 병원과의 비교, 효과를 보장하는 표현. 후기는 강남언니·구글에서 몇 건을 볼 수 있는지와 링크만 안내합니다.

+

밝힙니다

누가 썼는지, 원장 감수를 거쳤는지, 무엇을 참고했는지, 그리고 이 사이트가 뷰성형외과의 지원을 받는다는 사실. 이 사이트에 대해

-
병원 정보

주소·전화·진료시간

방문 전에 확인하세요. 진료시간은 바뀔 수 있으니 전화로 한 번 더 확인을 권합니다.

+
Fact Sheet

Clinic Facts

주소·전화·진료시간. 방문 전에 전화로 한 번 더 확인을 권합니다.

- diff --git a/supporters/src/pages/posts/[id].astro b/supporters/src/pages/posts/[id].astro index c588760..980afcf 100644 --- a/supporters/src/pages/posts/[id].astro +++ b/supporters/src/pages/posts/[id].astro @@ -52,7 +52,7 @@ if (d.faq.length) graph.push({ '@type': 'FAQPage', '@id': `${url}#faq`, mainEnti
-
{CATEGORY_LABELS[d.category]}
+
{d.category} · {CATEGORY_LABELS[d.category]}

{d.title}

작성 {supporter(d.author).name} diff --git a/supporters/src/pages/posts/index.astro b/supporters/src/pages/posts/index.astro index c39dc9a..bb89f5d 100644 --- a/supporters/src/pages/posts/index.astro +++ b/supporters/src/pages/posts/index.astro @@ -10,7 +10,7 @@ const ld = { '@type': 'CollectionPage', '@id': `${site}/posts#page`, name: '전 ---
-
전체 글

질문별로 답한 글

궁금한 주제를 골라 보세요. 글 하나가 질문 하나에 답합니다.

+
Archive

All Answers

궁금한 주제를 골라 보세요. 글 하나가 질문 하나에 답합니다.

{cats.map((c) => { const list = posts.filter((p) => p.data.category === c); if (!list.length) return null;