post
Show HN: Kage - 웹사이트를 오프라인 열람용 단일 바이너리로 섀도잉
kage는 실제 headless Chrome에서 페이지를 열고 안정화될 때까지 기다린 뒤 사람이 본 최종 DOM을 저장하며, JavaScript를 제거하고 CSS·이미지·폰트를 로컬 경로로 내려받아 오프라인에서 탐색 가능한 폴더를 만드는 도구임 kage clone 은 스크립트 없는 미러를 만들고, kage serve [dir]는 복제된 폴더를 로컬 HTTP 서버로 미리 보며, kage pack 는 미러를 ZIM 아카이브 또는 자체 포함 뷰어 바이너리로 묶고, kage open file.zim은 ZIM을 오프라인 열람용으로 서빙함
한 줄 요약
kage는 실제 headless Chrome에서 페이지를 열고 안정화될 때까지 기다린 뒤 사람이 본 최종 DOM을 저장하며, JavaScript를 제거하고 CSS·이미지·폰트를 로컬 경로로 내려받아 오프라인에서 탐색 가능한 폴더를 만드는 도구임
핵심 내용
kage는 실제 headless Chrome에서 페이지를 열고 안정화될 때까지 기다린 뒤 사람이 본 최종 DOM을 저장하며, JavaScript를 제거하고 CSS·이미지·폰트를 로컬 경로로 내려받아 오프라인에서 탐색 가능한 폴더를 만드는 도구임
kage clone 은 스크립트 없는 미러를 만들고, kage serve [dir]는 복제된 폴더를 로컬 HTTP 서버로 미리 보며, kage pack 는 미러를 ZIM 아카이브 또는 자체 포함 뷰어 바이너리로 묶고, kage open file.zim은 ZIM을 오프…
복제는 너비 우선 크롤링으로 동작하며 robots.txt를 읽고 sitemap.xml에서 시드를 얻고, 기본적으로 시드 호스트 안에 머물며, 같은 페이지가 http/https 또는 trailing slash 차이로 도달돼도 한 번만 가져오는 구조임
--max-pages, --max-depth, --scope-prefix, --subdomains, --exclude, --scroll, --workers, --refresh, --force, --chrome 같은 옵션으로 페이지 수, 깊이, 경로 범위, 서브도메인,…
kage pack은 미러를 ZIM 파일로 만들 수 있으며, ZIM은 압축·색인·읽기 전용 파일 형식이고 Kiwix 생태계에서 열 수 있으나 kage가 만든 아카이브는 Kiwix 자체 팩처럼 전체 텍스트 검색 색인을 만들지는 않음
왜 중요한가
kage clone 은 스크립트 없는 미러를 만들고, kage serve [dir]는 복제된 폴더를 로컬 HTTP 서버로 미리 보며, kage pack 는 미러를 ZIM 아카이브 또는 자체 포함 뷰어 바이너리로 묶고, kage open file.zim은 ZIM을 오프라인 열람용으로 서빙함 복제는 너비 우선 크롤링으로 동작하며 robots.txt를 읽고 sitemap.xml에서 시드를 얻고, 기본적으로 시드 호스트 안에 머물며, 같은 페이지가 http/https 또는 trailing slash 차이로 도달돼도 한 번만 가져오는 구조임 --max-pages, --max-depth, --scope-prefix, --subdomains, --exclude, --scroll, --workers, --refresh, --force, --chrome 같…
참조한 것 · 가져온 것
원문: https://github.com/tamnd/kage
GeekNews: https://news.hada.io/topic?id=30497
