From f6aae1c396117bdd886df0900cf3f627448a3552 Mon Sep 17 00:00:00 2001 From: Haewon Kam Date: Tue, 15 Sep 2026 09:36:45 +0900 Subject: [PATCH] =?UTF-8?q?feat(share):=20=EB=A7=81=ED=81=AC=20=EA=B3=B5?= =?UTF-8?q?=EC=9C=A0=20=EB=AF=B8=EB=A6=AC=EB=B3=B4=EA=B8=B0=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=EC=99=80=20=ED=8C=8C=EB=B9=84=EC=BD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 카카오톡·슬랙·iMessage 에 사이트 주소를 붙이면 회색 링크 아이콘만 나왔다. webforai.kr 은 og:image 와 파비콘이 없었고, 서포터즈 사이트는 robots.txt 가 미리보기 봇까지 막았으며 파비콘이 Astro 기본 로고였다. - scripts/make_share_assets.py: 1200x630 공유 이미지(JPEG)와 파비콘 세트 생성. 서포터즈는 해외 환자용 영어 판(병원 공식 영문 표기 shareNameEn), 파비콘은 영문 첫 글자. - 워커 build 단계에서 자동 생성. briefs//clinic.json 에 shareNameEn 과 출처. - Base.astro: og:image 기본값 /og.jpg, 크기·twitter:card·아이콘 링크. - robots.txt(샘플): 미리보기 봇만 허용. 검색·AI 크롤러 차단과 noindex 는 유지. - vite.config.ts: discovery 빌드에만 og:image·아이콘 태그. public/ 은 infinith-demo 와 공용이라 파일명에 discovery- 접두어. - Astro 기본 favicon.svg 삭제는 직전 커밋(f2fe99b)에 섞여 들어갔다. Co-Authored-By: Claude Opus 5 (1M context) --- public/discovery-apple-touch-icon.png | Bin 0 -> 6440 bytes public/discovery-favicon-192.png | Bin 0 -> 9516 bytes public/discovery-favicon-32.png | Bin 0 -> 1437 bytes public/discovery-favicon-512.png | Bin 0 -> 33385 bytes public/discovery-favicon.ico | Bin 0 -> 4179 bytes public/og-discovery.jpg | Bin 0 -> 57649 bytes scripts/make_share_assets.py | 209 ++++++++++++++++++ supporters/briefs/oracle/clinic.json | 6 +- supporters/briefs/viewclinic/clinic.json | 6 +- supporters/briefs/wonjin/clinic.json | 6 +- supporters/src/layouts/Base.astro | 12 +- supporters/src/pages/robots.txt.ts | 7 +- .../supporters-astro/src/layouts/Base.astro | 12 +- .../supporters-astro/src/pages/robots.txt.ts | 7 +- vite.config.ts | 16 ++ workers/supporters-build/run.mjs | 3 + 16 files changed, 272 insertions(+), 12 deletions(-) create mode 100644 public/discovery-apple-touch-icon.png create mode 100644 public/discovery-favicon-192.png create mode 100644 public/discovery-favicon-32.png create mode 100644 public/discovery-favicon-512.png create mode 100644 public/discovery-favicon.ico create mode 100644 public/og-discovery.jpg create mode 100644 scripts/make_share_assets.py diff --git a/public/discovery-apple-touch-icon.png b/public/discovery-apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..585060bf745794bcf061a64f8a3b73aea1f0bcef GIT binary patch literal 6440 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 literal 0 HcmV?d00001 diff --git a/public/discovery-favicon-192.png b/public/discovery-favicon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9d8f2973cb55fc6c67db581762e2b60d1e9474 GIT binary patch literal 9516 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 literal 0 HcmV?d00001 diff --git a/public/discovery-favicon-32.png b/public/discovery-favicon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..45e540d411a3dce51391247655c598606332e2d2 GIT binary patch literal 1437 zcmV;O1!DS%P)Gz`#Rg~bDuMFr-6hz$=sQ{@4jd4=i288 z02si49K@h{Va>^AFCz{@h<*=tCqW4UL4iP|ui>5kO_Tdl1)^9Bd?&=Hf;y$#{Lw$A zk52&u5*Sos03-(?)XugOI}FO4l+w7zB^w^u!NLS}v*7w!LXWRPK)`^foN-r_UcWeb z>>D;ha0K?Wez;wlb!S|%;F9GLNCG4(L88SH@=!_%&&y@uKaUiV5<(gR61G?9y)=D% zMC@Gq(OuH;eup$#T(US`#?l_vGAe$SgpKrKgFOf-6}giNYO{pl95#%)R+mZg2>@y?K4SGyYdT8ERW|Y>k%Zu1q9kn z_E&>P0Lu*?zt4AO&i@rnFW_?&x7CEra2*QqdL4=R*XJm+X%3{lt_i5SG zO~K6g(Qq6W>$_X9y15bKf6w6R)fsIhsg%eDcQVeWs_8jjg%nuG6|sBYCVVjT3Qi2Y zig!=G9Q8P-WpS~D18?=>li@e8_oXe!5@JVHgs>oV$#V-#@Ft zdUtoD>5h6hj-w+Gev%2S1Wy_yW6#UlqpT~q^6MM2=-uOo|J=w$od13l*Jc*b(YY2I zd)jmw*dSf7fdQ4RT?wuu5YO#ocH-7y6AJ|k>o>Mw!{&9!FO=}tqW-w+)ST_~PuL1Q5`-dlQbm^A)D2=c?hU zHaHv4Oju2&0XQ$?xE>l-t-!O-cj<+HJwJxYe`b-%GRY90-rj|_dsn09v33j(|LhlI zSWiJ}tM>;nE1GE)8cKvD9rDMwb>P8=T3}l)4juRuqZcMn-;lvvE|1TK-$eh5Td`|z z4?Z9M5r!#scW|`Ir(pV=kYyHC4i-UhT^CP0)q&i65of>s6B84&Xuf+Dnr^R0V?!Oj z{_;2E<_qZAazC2yY{Kkp9`o}B6pEIviSmLj2iF9*we@XZlrjyqic(nFv_cb2sc50d zJuku`?Avx6=&*?Q#7OH?O%#hir96a=b2M+NB_KgsR3?jNTc-RI0hNKES zVNkf!jf|=sEQwa5o7$LAupvoK!X;m*2CqRfHvrD}LK3_yTvbGhx9$HIxZ(|!g1RC- zq9MTGLr4lKF9&$2A%%h(k|h+5xT-iI_^<%Qr=lPs%LVRv+#ibUiA)Jc9ek%9*GX8;ZeDL&1=o3yzQVO^b?#;pN4L# rs#E2`wq_LYPDxohx;Xt^bUgnL94ps;E`>%D00000NkvXXu0mjfdz7JL literal 0 HcmV?d00001 diff --git a/public/discovery-favicon-512.png b/public/discovery-favicon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..61de2beb8b9c35d33d26fbc41022b9aea1598e8e GIT binary patch literal 33385 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 literal 0 HcmV?d00001 diff --git a/public/discovery-favicon.ico b/public/discovery-favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..38837f558482f064a5f107c7cea2f9b81a5c40e5 GIT binary patch literal 4179 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/public/og.jpg, favicon.ico 외 + python3 scripts/make_share_assets.py supporters --site ~/supporters-builds/oracle/site + +서포터즈 입력: src/data/site.json(shareNameEn·buildingImage·heroImage), src/data/factSheet.json(shortName), +vercel.json build.env.SITE_URL(하단 주소 표기). 사진은 heroImage, 없으면 buildingImage. 사진이 없으면 사진 칸 없이 글자 판만 만든다. +서포터즈 이미지는 해외 환자용이라 영어로 낸다. 파비콘은 병원 로고 대신 영문 상호 첫 글자를 쓴다. 가로형 로고는 16px 에서 읽히지 않는다. +""" +import argparse +import json +import sys +from pathlib import Path + +from PIL import Image, ImageDraw, ImageFont, ImageOps + +W, H = 1200, 630 +INK = (10, 17, 40) # #0A1128 +INDIGO = (29, 0, 36) # #1D0024 +VIOLET = (79, 29, 161) # #4F1DA1 +NAVY = (2, 19, 65) # #021341 +LIGHT = (247, 248, 252) # #F7F8FC +SLATE = (71, 85, 105) # #475569 +LAVENDER = (233, 213, 255) # #E9D5FF, 어두운 배경 전용 + +FONT_DIRS = [Path.home() / "Library/Fonts", Path("/Library/Fonts"), Path("/usr/share/fonts"), Path("/usr/local/share/fonts")] + + +def font(weight: str, size: int) -> ImageFont.FreeTypeFont: + for d in FONT_DIRS: + for name in (f"Pretendard-{weight}.otf", f"Pretendard-{weight}.ttf"): + for p in [d / name, *d.rglob(name)] if d.exists() else []: + if p.exists(): + return ImageFont.truetype(str(p), size) + for fallback in ("/System/Library/Fonts/AppleSDGothicNeo.ttc", "/usr/share/fonts/truetype/noto/NotoSansCJK-Bold.ttc"): + if Path(fallback).exists(): + return ImageFont.truetype(fallback, size) + sys.exit("한글 글꼴을 찾지 못했습니다. Pretendard 를 설치하세요.") + + +def gradient(size, start, end, diagonal=True): + w, h = size + base = Image.new("RGB", size, start) + top = Image.new("RGB", size, end) + mask = Image.new("L", size) + md = mask.load() + for y in range(h): + for x in range(0, w, 1 if w <= 64 else 2): + t = ((x / max(w - 1, 1)) + (y / max(h - 1, 1))) / 2 if diagonal else y / max(h - 1, 1) + v = int(255 * t) + md[x, y] = v + if w > 64 and x + 1 < w: + md[x + 1, y] = v + return Image.composite(top, base, mask) + + +def wrap(draw, text, fnt, max_w): + """한국어 어절 단위 줄바꿈(keep-all). 줄바꿈 문자는 그대로 존중한다.""" + lines = [] + for para in text.split("\n"): + cur = "" + for word in para.split(" "): + trial = f"{cur} {word}".strip() + if draw.textlength(trial, font=fnt) <= max_w or not cur: + cur = trial + else: + lines.append(cur) + cur = word + lines.append(cur) + return lines + + +def save_favicons(out: Path, label: str, prefix: str = ""): + """상호 첫 글자(또는 AI) 모노그램. 둥근 정사각 그라디언트 위 흰 글자.""" + out.mkdir(parents=True, exist_ok=True) + + def icon(px, radius_ratio=0.22, full_bleed=False): + s = px * 4 + bg = gradient((s, s), VIOLET, NAVY) + mask = Image.new("L", (s, s), 0) + ImageDraw.Draw(mask).rounded_rectangle([0, 0, s - 1, s - 1], radius=0 if full_bleed else int(s * radius_ratio), fill=255) + img = Image.new("RGBA", (s, s), (0, 0, 0, 0)) + img.paste(bg, (0, 0), mask) + d = ImageDraw.Draw(img) + size = int(s * (0.62 if len(label) == 1 else 0.46)) + f = font("Bold", size) + box = d.textbbox((0, 0), label, font=f) + tw, th = box[2] - box[0], box[3] - box[1] + d.text(((s - tw) / 2 - box[0], (s - th) / 2 - box[1]), label, font=f, fill="white") + return img.resize((px, px), Image.LANCZOS) + + written = [] + for name, px, bleed in [("favicon-32.png", 32, False), ("favicon-192.png", 192, False), ("favicon-512.png", 512, False), ("apple-touch-icon.png", 180, True)]: + icon(px, full_bleed=bleed).save(out / f"{prefix}{name}") + written.append(f"{prefix}{name}") + icon(256).save(out / f"{prefix}favicon.ico", sizes=[(16, 16), (32, 32), (48, 48)]) + written.append(f"{prefix}favicon.ico") + return written + + +def discovery(out: Path): + img = Image.new("RGB", (W, H), LIGHT) + d = ImageDraw.Draw(img) + # 왼쪽 세로 띠 + img.paste(gradient((16, H), VIOLET, NAVY, diagonal=False), (0, 0)) + x = 96 + d.text((x, 92), "INFINITH AI Discovery", font=font("SemiBold", 30), fill=VIOLET) + title = font("ExtraBold", 84) + d.text((x, 170), "AI가 추천하는 병원은", font=title, fill=INDIGO) + d.text((x, 272), "따로 있습니다.", font=title, fill=VIOLET) + sub = font("Medium", 34) + d.text((x, 410), "고객은 이제 ChatGPT와 Perplexity에게 병원을 묻습니다.", font=sub, fill=SLATE) + d.text((x, 458), "답변에 인용될 근거를 실측해 진단하고, 8주 안에 구축합니다.", font=sub, fill=SLATE) + d.line([(x, 540), (W - 96, 540)], fill=(226, 232, 240), width=2) + d.text((x, 556), "webforai.kr", font=font("SemiBold", 28), fill=INDIGO) + img.save(out / "og-discovery.jpg", quality=88, optimize=True, progressive=True) + return ["og-discovery.jpg", *save_favicons(out, "AI", prefix="discovery-")] + + +def playfair(size: int) -> ImageFont.FreeTypeFont: + for d in FONT_DIRS: + p = d / "PlayfairDisplay-Bold.ttf" + if p.exists(): + return ImageFont.truetype(str(p), size) + return font("ExtraBold", size) + + +def supporters(site: Path): + """해외 환자가 받는 링크라 영어로 낸다. 병원 영문 표기는 site.json shareNameEn(병원 공식 영문 표기, briefs 에서 전달)만 쓴다. + 값이 없으면 한국어 상호를 그대로 쓴다. 영문 이름을 지어내지 않는다.""" + data = site / "src/data" + s = json.loads((data / "site.json").read_text()) + fact = json.loads((data / "factSheet.json").read_text()) + short_ko = (fact.get("shortName") or "").strip() or (s.get("siteName") or "").replace(" 서포터즈", "").strip() + name = (s.get("shareNameEn") or "").strip() or short_ko + if not name: + sys.exit("site.json shareNameEn 과 factSheet.json shortName 이 모두 비어 있습니다.") + url = "" + vj = site / "vercel.json" + if vj.exists(): + url = json.loads(vj.read_text()).get("build", {}).get("env", {}).get("SITE_URL", "") + host = url.replace("https://", "").replace("http://", "").rstrip("/") + + photo = None + for key in ("heroImage", "buildingImage"): + src = (s.get(key) or {}).get("src") if isinstance(s.get(key), dict) else None + if src and (site / "public" / src.lstrip("/")).exists(): + photo = site / "public" / src.lstrip("/") + break + + img = Image.new("RGB", (W, H), INK) + panel_w = 700 if photo else W + img.paste(gradient((panel_w, H), VIOLET, NAVY), (0, 0)) + if photo: + ph = ImageOps.fit(Image.open(photo).convert("RGB"), (W - panel_w, H), Image.LANCZOS, centering=(0.5, 0.4)) + img.paste(ph, (panel_w, 0)) + d = ImageDraw.Draw(img) + x, max_w = 72, panel_w - 72 * 2 + d.text((x, 78), "SUPPORTERS · FOR INTERNATIONAL PATIENTS", font=font("SemiBold", 24), fill=LAVENDER) + name_f = playfair(72) + while max(d.textlength(w, font=name_f) for w in name.split(" ")) > max_w and name_f.size > 44: + name_f = playfair(name_f.size - 4) + y = 150 + for line in wrap(d, name, name_f, max_w): + d.text((x, y), line, font=name_f, fill="white") + y += int(name_f.size * 1.18) + y += 30 + title_f = font("SemiBold", 42) + for line in wrap(d, "Answers to the questions\npatients ask first.", title_f, max_w): + d.text((x, y), line, font=title_f, fill="white") + y += int(title_f.size * 1.32) + d.text((x, H - 96), "Recovery planner · Getting here · Clinic facts", font=font("Medium", 26), fill=LAVENDER) + if host: + d.text((x, H - 58), host, font=font("SemiBold", 24), fill="white") + pub = site / "public" + # JPEG 로 낸다. WhatsApp 등 일부 미리보기는 300KB 를 넘는 이미지를 버린다. + img.save(pub / "og.jpg", quality=86, optimize=True, progressive=True) + if (pub / "og.png").exists(): + (pub / "og.png").unlink() + # 템플릿 기본(Astro) 파비콘 제거. 로고 기반 favicon.svg 가 있어도 16px 에서 읽히지 않아 모노그램으로 통일한다. + for old in ("favicon.svg",): + if (pub / old).exists(): + (pub / old).unlink() + return ["og.jpg", *save_favicons(pub, name[0].upper())] + + +def main(): + ap = argparse.ArgumentParser() + sub = ap.add_subparsers(dest="mode", required=True) + a = sub.add_parser("discovery"); a.add_argument("--out", default="public") + b = sub.add_parser("supporters"); b.add_argument("--site", required=True) + args = ap.parse_args() + if args.mode == "discovery": + out = Path(args.out); out.mkdir(parents=True, exist_ok=True) + files = discovery(out) + else: + files = supporters(Path(args.site).expanduser()) + print("공유 이미지·파비콘: " + ", ".join(files)) + + +if __name__ == "__main__": + main() diff --git a/supporters/briefs/oracle/clinic.json b/supporters/briefs/oracle/clinic.json index eae5fe3..99985db 100644 --- a/supporters/briefs/oracle/clinic.json +++ b/supporters/briefs/oracle/clinic.json @@ -38,7 +38,8 @@ "alt": "오라클피부과의원 본사 건물 외관. 흰색 외벽 건물 상단과 1층 입구에 오라클 간판", "caption": "본사 건물 외관. 출처: 오라클메디컬그룹 홈페이지" }, - "naverSiteVerification": "f083f28e6b117805e9722f0a1adf7834a8219688" + "naverSiteVerification": "f083f28e6b117805e9722f0a1adf7834a8219688", + "shareNameEn": "Oracle Dermatology" }, "excludeImages": [ "sub_0" @@ -46,5 +47,6 @@ "_logoNote": "2026-09-10 haewon 지적(녹색 배너형 GIF는 완성도가 떨어짐) → 그룹 사이트 oraclemedicalgroup.com/images/logo_oracle_02.png (176×68, 투명 배경 워드마크)로 교체. 클리닉 사이트에는 CI 페이지가 없음(메뉴 CI소개가 빈 링크). 이전 배너형은 logo-horizontal.png 로 보존. haewon 제안(2026-09-10)대로 원본 배너에서 왼쪽 문구 영역을 잘라낸 logo-horizontal-cropped.png(133×49, 녹색 배경 유지)도 보관. 녹색 박스형을 쓰려면 logo 값을 이 파일로 바꾸고 --from youtube 재실행.", "_imageNote": "2026-09-10: 본사 건물 외관은 그룹 사이트 oraclemedicalgroup.com/images/company_02.jpg (렌더링 이미지, 간판 오라클피부과의원). 같은 페이지의 다른 사진(화장품·모델·장비·전자차트)은 제외.", "_factSheetNote": "상호 고정. 홈 제목 추정은 슬로건을 상호로 삼을 수 있다. 근거: supporters-oracle 기존 배포본 표기.", - "_verifyNote": "네이버 서치어드바이저 소유 확인 값(2026-09-14 발급, oracle.webforai.kr 용). 사이트마다 값이 달라 다른 병원에 옮겨 쓰면 확인되지 않는다." + "_verifyNote": "네이버 서치어드바이저 소유 확인 값(2026-09-14 발급, oracle.webforai.kr 용). 사이트마다 값이 달라 다른 병원에 옮겨 쓰면 확인되지 않는다.", + "_shareNameEnNote": "shareNameEn: 링크 공유 이미지(og.jpg)의 영문 병원명. 출처: 공식 영문 사이트 en.cdoracleclinic.com/about 'Introduction to Oracle Dermatology' (2026-09-15 확인)" } diff --git a/supporters/briefs/viewclinic/clinic.json b/supporters/briefs/viewclinic/clinic.json index ac50036..add343c 100644 --- a/supporters/briefs/viewclinic/clinic.json +++ b/supporters/briefs/viewclinic/clinic.json @@ -24,8 +24,10 @@ "width": 886, "height": 885 }, - "naverSiteVerification": "e47011473eef74d7b2c4f20e93f97a889cb699cc" + "naverSiteVerification": "e47011473eef74d7b2c4f20e93f97a889cb699cc", + "shareNameEn": "VIEW Plastic Surgery" }, "_siteNote": "홈 히어로가 가슴 라인 일러스트로 잡혀 있었고 건물 사진의 alt 도 '가슴확대 시설 사진'으로 잘못 붙어 있었다. 건물 외관으로 고정한다.", - "_verifyNote": "네이버 서치어드바이저 소유 확인 값(2026-09-14 발급, viewpl.webforai.kr 용). 사이트마다 값이 다르므로 다른 병원에 옮겨 쓰면 확인되지 않는다. 구글은 webforai.kr 도메인 속성을 DNS TXT 로 확인해 서브도메인 전부가 함께 확인된다." + "_verifyNote": "네이버 서치어드바이저 소유 확인 값(2026-09-14 발급, viewpl.webforai.kr 용). 사이트마다 값이 다르므로 다른 병원에 옮겨 쓰면 확인되지 않는다. 구글은 webforai.kr 도메인 속성을 DNS TXT 로 확인해 서브도메인 전부가 함께 확인된다.", + "_shareNameEnNote": "shareNameEn: 링크 공유 이미지(og.jpg)의 영문 병원명. 출처: 병원 홈페이지 로고·본문 표기 VIEW PLASTIC SURGERY (근거 수집 OCR)" } diff --git a/supporters/briefs/wonjin/clinic.json b/supporters/briefs/wonjin/clinic.json index 6444ef8..2908efe 100644 --- a/supporters/briefs/wonjin/clinic.json +++ b/supporters/briefs/wonjin/clinic.json @@ -16,9 +16,11 @@ "width": 1600, "height": 633 }, - "naverSiteVerification": "5df40b24e88fd3fdf7ece9dd0fb69cf83439ad44" + "naverSiteVerification": "5df40b24e88fd3fdf7ece9dd0fb69cf83439ad44", + "shareNameEn": "WONJIN Plastic Surgery" }, "_siteNote": "2026-09-12 haewon 지정. 랜딩 히어로를 img_about_cover_03(글로벌 허브 리셉션·대기 공간)으로 고정한다. 이전 값 img_about_cover_01 은 원장이 모니터를 가리키는 사진이라 글 카드와 겹쳐 보였다. alt 는 수집 원문 대신 무엇을 찍은 것인지만 밝히는 문구로 쓴다.", "_imageReviewNote": "2026-09-12 haewon 육안 검토: 원진 수집 이미지 66장 전부 사용 가능. 제외할 것 없음.", - "_verifyNote": "네이버 서치어드바이저 소유 확인 값(2026-09-14 발급, wonjin.webforai.kr 용). 사이트마다 값이 다르므로 다른 병원에 옮겨 쓰면 확인되지 않는다." + "_verifyNote": "네이버 서치어드바이저 소유 확인 값(2026-09-14 발급, wonjin.webforai.kr 용). 사이트마다 값이 다르므로 다른 병원에 옮겨 쓰면 확인되지 않는다.", + "_shareNameEnNote": "shareNameEn: 링크 공유 이미지(og.jpg)의 영문 병원명. 출처: 병원 로고 표기 WJ WONJIN PLASTIC SURGERY (근거 수집 OCR)" } diff --git a/supporters/src/layouts/Base.astro b/supporters/src/layouts/Base.astro index ef27302..76a3c1f 100644 --- a/supporters/src/layouts/Base.astro +++ b/supporters/src/layouts/Base.astro @@ -1,5 +1,6 @@ --- import '../styles/global.css'; +import { existsSync } from 'node:fs'; import { SITE_NAME, SITE_TAGLINE, INDEXABLE, fact, site as S, surface, reservationUrl, editor, has, v } from '../lib'; import { UI, switchHref } from '../lib/i18n'; import EN from '../data/factSheetEn.json'; @@ -16,7 +17,9 @@ interface Props { lang?: 'ko' | 'en'; alternates?: { lang: string; href: string }[]; } -const { title, description, jsonLd, ogImage = S.buildingImage?.src || '/favicon.svg', type = 'website', noindex = false, lang = 'ko', alternates = [] } = Astro.props; +// 공유 미리보기 기본 이미지: 워커 build 단계가 만드는 public/og.jpg(1200x630, scripts/make_share_assets.py). 없으면 건물 사진. +const shareCard = existsSync('public/og.jpg'); +const { title, description, jsonLd, ogImage = shareCard ? '/og.jpg' : (S.buildingImage?.src || '/favicon-512.png'), type = 'website', noindex = false, lang = 'ko', alternates = [] } = Astro.props; const site = Astro.site?.toString().replace(/\/$/, '') ?? ''; const cleanPath = Astro.url.pathname.replace(/\/index\.html$/, '/').replace(/\.html$/, ''); const canonical = (new URL(cleanPath, Astro.site).toString().replace(/\/$/, '') || site); @@ -54,6 +57,13 @@ const ld = jsonLd ? JSON.stringify({ '@context': 'https://schema.org', ...(Array + {ogImage === '/og.jpg' && } + {ogImage === '/og.jpg' && } + + + + + {alternates.map((a) => )} diff --git a/supporters/src/pages/robots.txt.ts b/supporters/src/pages/robots.txt.ts index 360359b..a351b2f 100644 --- a/supporters/src/pages/robots.txt.ts +++ b/supporters/src/pages/robots.txt.ts @@ -1,10 +1,13 @@ import type { APIRoute } from 'astro'; -// 샘플: 전면 차단. 프로덕션(PUBLIC_INDEXABLE=true): 전면 허용 + AI 크롤러 명시 허용. +// 샘플: 검색·AI 크롤러 전면 차단. 프로덕션(PUBLIC_INDEXABLE=true): 전면 허용 + AI 크롤러 명시 허용. +// 링크 미리보기 봇은 샘플에서도 허용한다. 막으면 카카오톡·슬랙·iMessage 에 주소를 붙였을 때 제목·이미지가 안 나온다. +// 이 봇들은 붙여 넣은 주소 한 장만 읽고 색인하지 않는다. noindex 메타·X-Robots-Tag 는 그대로다. +const PREVIEW_BOTS = ['kakaotalk-scrap', 'facebookexternalhit', 'Facebot', 'Twitterbot', 'Slackbot', 'Slackbot-LinkExpanding', 'Discordbot', 'TelegramBot', 'WhatsApp', 'LinkedInBot']; const AI_BOTS = ['GPTBot', 'OAI-SearchBot', 'ChatGPT-User', 'PerplexityBot', 'ClaudeBot', 'Claude-SearchBot', 'Google-Extended', 'Applebot-Extended', 'Bingbot', 'Yeti', 'Googlebot']; export const GET: APIRoute = ({ site }) => { const indexable = import.meta.env.PUBLIC_INDEXABLE === 'true'; const body = indexable ? [...AI_BOTS.map((b) => `User-agent: ${b}\nAllow: /`), 'User-agent: *\nAllow: /', `Sitemap: ${site}sitemap.xml`].join('\n\n') + '\n' - : `# 샘플 사이트. 색인 금지.\nUser-agent: *\nDisallow: /\n`; + : [`# 샘플 사이트. 색인 금지. 링크 미리보기만 허용.`, ...PREVIEW_BOTS.map((b) => `User-agent: ${b}\nAllow: /`), 'User-agent: *\nDisallow: /'].join('\n\n') + '\n'; return new Response(body, { headers: { 'Content-Type': 'text/plain; charset=utf-8' } }); }; diff --git a/templates/supporters-astro/src/layouts/Base.astro b/templates/supporters-astro/src/layouts/Base.astro index ef27302..76a3c1f 100644 --- a/templates/supporters-astro/src/layouts/Base.astro +++ b/templates/supporters-astro/src/layouts/Base.astro @@ -1,5 +1,6 @@ --- import '../styles/global.css'; +import { existsSync } from 'node:fs'; import { SITE_NAME, SITE_TAGLINE, INDEXABLE, fact, site as S, surface, reservationUrl, editor, has, v } from '../lib'; import { UI, switchHref } from '../lib/i18n'; import EN from '../data/factSheetEn.json'; @@ -16,7 +17,9 @@ interface Props { lang?: 'ko' | 'en'; alternates?: { lang: string; href: string }[]; } -const { title, description, jsonLd, ogImage = S.buildingImage?.src || '/favicon.svg', type = 'website', noindex = false, lang = 'ko', alternates = [] } = Astro.props; +// 공유 미리보기 기본 이미지: 워커 build 단계가 만드는 public/og.jpg(1200x630, scripts/make_share_assets.py). 없으면 건물 사진. +const shareCard = existsSync('public/og.jpg'); +const { title, description, jsonLd, ogImage = shareCard ? '/og.jpg' : (S.buildingImage?.src || '/favicon-512.png'), type = 'website', noindex = false, lang = 'ko', alternates = [] } = Astro.props; const site = Astro.site?.toString().replace(/\/$/, '') ?? ''; const cleanPath = Astro.url.pathname.replace(/\/index\.html$/, '/').replace(/\.html$/, ''); const canonical = (new URL(cleanPath, Astro.site).toString().replace(/\/$/, '') || site); @@ -54,6 +57,13 @@ const ld = jsonLd ? JSON.stringify({ '@context': 'https://schema.org', ...(Array + {ogImage === '/og.jpg' && } + {ogImage === '/og.jpg' && } + + + + + {alternates.map((a) => )} diff --git a/templates/supporters-astro/src/pages/robots.txt.ts b/templates/supporters-astro/src/pages/robots.txt.ts index 360359b..a351b2f 100644 --- a/templates/supporters-astro/src/pages/robots.txt.ts +++ b/templates/supporters-astro/src/pages/robots.txt.ts @@ -1,10 +1,13 @@ import type { APIRoute } from 'astro'; -// 샘플: 전면 차단. 프로덕션(PUBLIC_INDEXABLE=true): 전면 허용 + AI 크롤러 명시 허용. +// 샘플: 검색·AI 크롤러 전면 차단. 프로덕션(PUBLIC_INDEXABLE=true): 전면 허용 + AI 크롤러 명시 허용. +// 링크 미리보기 봇은 샘플에서도 허용한다. 막으면 카카오톡·슬랙·iMessage 에 주소를 붙였을 때 제목·이미지가 안 나온다. +// 이 봇들은 붙여 넣은 주소 한 장만 읽고 색인하지 않는다. noindex 메타·X-Robots-Tag 는 그대로다. +const PREVIEW_BOTS = ['kakaotalk-scrap', 'facebookexternalhit', 'Facebot', 'Twitterbot', 'Slackbot', 'Slackbot-LinkExpanding', 'Discordbot', 'TelegramBot', 'WhatsApp', 'LinkedInBot']; const AI_BOTS = ['GPTBot', 'OAI-SearchBot', 'ChatGPT-User', 'PerplexityBot', 'ClaudeBot', 'Claude-SearchBot', 'Google-Extended', 'Applebot-Extended', 'Bingbot', 'Yeti', 'Googlebot']; export const GET: APIRoute = ({ site }) => { const indexable = import.meta.env.PUBLIC_INDEXABLE === 'true'; const body = indexable ? [...AI_BOTS.map((b) => `User-agent: ${b}\nAllow: /`), 'User-agent: *\nAllow: /', `Sitemap: ${site}sitemap.xml`].join('\n\n') + '\n' - : `# 샘플 사이트. 색인 금지.\nUser-agent: *\nDisallow: /\n`; + : [`# 샘플 사이트. 색인 금지. 링크 미리보기만 허용.`, ...PREVIEW_BOTS.map((b) => `User-agent: ${b}\nAllow: /`), 'User-agent: *\nDisallow: /'].join('\n\n') + '\n'; return new Response(body, { headers: { 'Content-Type': 'text/plain; charset=utf-8' } }); }; diff --git a/vite.config.ts b/vite.config.ts index 7b5641f..a84cb6c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -25,6 +25,21 @@ export default defineConfig(({mode}) => { const verify = isDiscovery ? [''] : []; + // 링크 공유 미리보기 이미지와 파비콘(scripts/make_share_assets.py discovery 로 생성). + // og:image 는 절대 주소여야 카카오톡·슬랙이 읽는다. public/ 은 infinith-demo 와 공용이라 discovery 빌드에만 넣는다. + const share = isDiscovery + ? [ + '', + '', + '', + '', + '', + '', + '', + '', + '', + ] + : []; const headHtml = [ `${head.title}`, ``, @@ -32,6 +47,7 @@ export default defineConfig(({mode}) => { ``, ``, ``, + ...share, ...verify, ].join('\n '); diff --git a/workers/supporters-build/run.mjs b/workers/supporters-build/run.mjs index d125d9e..2316609 100644 --- a/workers/supporters-build/run.mjs +++ b/workers/supporters-build/run.mjs @@ -489,6 +489,9 @@ await phase('build', () => { // 주소·색인 설정을 먼저 적용한다. 원격 빌드가 이 값으로 canonical·사이트맵을 만든다. applySiteUrl(); const refreshed = refreshTemplateCode(); + // 링크 공유 미리보기 이미지(og.png)와 파비콘. 실패해도 빌드는 계속한다(Base.astro 가 건물 사진으로 대신 낸다). + const share = run('python3', [join(ROOT, 'scripts', 'make_share_assets.py'), 'supporters', '--site', SITE]); + status.report = { ...(status.report ?? {}), shareAssets: share.ok ? tail(share.out, 1) : `공유 이미지 생성 실패\n${tail(share.out, 3)}` }; const inst = run('npm', ['ci', '--no-audit', '--no-fund'], { cwd: SITE }); if (!inst.ok) throw new Error(`npm ci 실패\n${tail(inst.out)}`); const b = run('npx', ['astro', 'build'], { cwd: SITE });