#!/usr/bin/env python3
"""컨셉 #01 '제약을 캔버스로' HTML → PNG 캡처 스크립트"""

from pathlib import Path
from playwright.sync_api import sync_playwright

TEMPLATE_PATH = Path(__file__).parent / "template.html"
OUTPUT_PATH = Path(__file__).parent / "sample.png"


def capture() -> None:
    with sync_playwright() as p:
        browser = p.chromium.launch()
        try:
            page = browser.new_page(viewport={"width": 1080, "height": 1080})
            template_url = f"file://{TEMPLATE_PATH.resolve()}"
            print(f"[로드] {template_url}")
            page.goto(template_url, wait_until="networkidle")
            # 웹폰트 로딩 대기
            page.wait_for_timeout(3000)
            OUTPUT_PATH.parent.mkdir(parents=True, exist_ok=True)
            page.screenshot(path=str(OUTPUT_PATH), type="png")
            print(f"[완료] {OUTPUT_PATH}  ({OUTPUT_PATH.stat().st_size / 1024:.0f} KB)")
        finally:
            browser.close()


if __name__ == "__main__":
    capture()
