- 웹 페이지를 단일 HTML 파일로 번들링
- 기존의 "페이지 저장" 기능과 달리,
monolith는 대상 문서뿐만 아니라 CSS, 이미지, 자바스크립트 애셋을 한 번에 포함시켜 저장 - 모든 애셋을 데이터 URL로 내장하여, 네트워크 연결이 없는 상태에서도 인터넷에서와 똑같이 페이지를 렌더링할 수 있게 함
- Rust로 작성되어 맥/윈/리눅스 모두 설치 가능: cargo/brew/choco/snap/apk..
사용 방법
- 명령어 예시:
monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o portishead-roads-lyrics.html - 파이프를 통한 사용 예시:
cat index.html | monolith -aIiFfcMv -b https://original.site/ - > result.html
옵션
-a: 오디오 소스 제외-b: 사용자 정의base URL사용-B: 특정 도메인에서 자산 검색 금지-c: CSS 제외-C:file에서 쿠키 읽기-d: 지정된domain(s)에서만 자산 검색 허용-e: 네트워크 오류 무시-E: 사용자 정의encoding으로 문서 저장-f: 프레임 생략-F: 웹 폰트 제외-h: 도움말 정보 출력-i: 이미지 제거-I: 문서 격리-j: 자바스크립트 제외-k: 유효하지 않은 X.509 (TLS) 인증서 수락-M: 타임스탬프 및 URL 정보 추가 안 함-n: NOSCRIPT 요소의 내용 추출-o: 출력을file로 작성 (STDOUT을 위해 “-” 사용)-s: 조용한 모드-t:network request timeout조정-u: 사용자 정의User-Agent제공-v: 비디오 제외
도메인 화이트리스팅 및 블랙리스팅
-d및-B옵션을 통해 애셋을 검색할 수 있는 도메인을 제어할 수 있음.
동적 콘텐츠
- Monolith에는 자바스크립트 엔진이 없어 초기 로드 후 데이터를 검색하고 표시하는 웹사이트는 추가 도구가 필요할 수 있음.
- 예를 들어, Chromium(Chrome)을 사용하여 이러한 페이지에 대한 사전 처리기로 작동시킬 수 있음.
프록시 설정
https_proxy,http_proxy,no_proxy환경 변수를 설정해야 함.
라이선스
- Creative Commons Zero v1.0 Universal
- 저자는 가능한 법적 범위 내에서 이 소프트웨어의 모든 저작권 및 인접 권리를 전 세계적으로 퍼블릭 도메인에 헌정함
GN⁺의 의견
monolith는 웹 페이지를 오프라인에서도 원본과 동일하게 보존할 수 있는 효과적인 도구로, 연구자나 개발자들에게 유용할 수 있음.- 이 도구는 웹 아카이빙이나 콘텐츠 보존에 관심이 있는 사람들에게 특히 매력적일 수 있으며, 인터넷이 연결되지 않은 환경에서도 웹 페이지를 검토할 수 있는 능력을 제공함.
- 비판적인 시각에서 볼 때, 동적으로 로드되는 콘텐츠를 처리하지 못하는 한계가 있으며, 이는 사용자가 추가적인 도구를 사용해야 하는 번거로움을 초래할 수 있음.
- 비슷한 기능을 제공하는 다른 프로젝트로는 HTTrack이나 Wget이 있으며, 이들도 웹사이트를 오프라인으로 저장하는 데 사용될 수 있음.
monolith를 사용하기 전에, 저장하려는 웹 페이지의 저작권 및 사용 권한을 확인하는 것이 중요하며, 저장된 콘텐츠의 사용 목적이 법적인 문제를 야기하지 않도록 주의해야 함.