_____ ______________ __________ ___________________ ___
| / | | | | | |
| _/ __ _| __ | | ___ ___ |__| |
| | | | | | | | | | | |
| | /| |__| _ |__| |____| | | | | __ |
| | ___/ | | | | | | | | |
|___| |__________| _____________________| |___| |___| |___|
ความฝันของผู้กักตุนข้อมูลเป็นจริง: รวมหน้าเว็บใดๆ ไว้ในไฟล์ HTML ไฟล์เดียว ในที่สุดคุณก็สามารถแทนที่แท็บที่เปิดอยู่นับพันล้านด้วยไฟล์ .html กว่าพันล้านไฟล์ที่จัดเก็บไว้ในไดรฟ์อันมีค่าของคุณ
แตกต่างจาก “บันทึกหน้าเป็น” ทั่วไป monolith
ไม่เพียงบันทึกเอกสารเป้าหมายเท่านั้น แต่ยังฝังเนื้อหา CSS รูปภาพ และ JavaScript ทั้งหมดในคราวเดียว ทำให้เกิดเอกสาร HTML5 เดียวที่จัดเก็บและแบ่งปันได้อย่างเพลิดเพลิน
หากเปรียบเทียบกับการบันทึกเว็บไซต์ด้วย wget -mpk
เครื่องมือนี้จะฝังเนื้อหาทั้งหมดเป็น URL ข้อมูล ดังนั้นจึงช่วยให้เบราว์เซอร์แสดงผลหน้าที่บันทึกไว้ในลักษณะเดียวกับบนอินเทอร์เน็ต แม้ว่าจะไม่มีการเชื่อมต่อเครือข่ายก็ตาม
cargo install monolith
brew install monolith
choco install monolith
scoop install main/monolith
winget install --id=Y2Z.Monolith -e
sudo port install monolith
snap install monolith
guix install monolith
nix-env -iA nixpkgs.monolith
flox install monolith
pacman -S monolith
apk add monolith
xbps-install -S monolith
pkg install monolith
cd /usr/ports/www/monolith/
make install clean
cd /usr/pkgsrc/www/monolith
make install clean
docker build -t y2z/monolith .
sudo install -b dist/run-in-container.sh /usr/local/bin/monolith
การพึ่งพา: libssl
cargo
cargo -v
หากสินค้ายังไม่ได้ติดตั้ง ให้ติดตั้งและเพิ่มลงใน $PATH
ที่มีอยู่ของคุณ (ถอดความคำแนะนำในการติดตั้งอย่างเป็นทางการ):
curl https://sh.rustup.rs -sSf | sh
. "$HOME/.cargo/env"
ดำเนินการติดตั้งจากแหล่งที่มา:
git clone https://github.com/Y2Z/monolith.git
cd monolith
make install
ทุกรีลีสประกอบด้วยไบนารีที่สร้างไว้ล่วงหน้าสำหรับ Windows, GNU/Linux รวมถึงแพลตฟอร์มที่มีสถาปัตยกรรม CPU ที่ไม่ได้มาตรฐาน
monolith https://lyrics.github.io/db/P/Portishead/Dummy/Roads/ -o portishead-roads-lyrics.html
cat some-site-page.html | monolith -aIiFfcMv -b https://some.site/ - > some-site-page-with-assets.html
-a
: ไม่รวมแหล่งเสียง-b
: ใช้ custom base URL
-B
: ห้ามเรียกทรัพย์สินจากโดเมนที่ระบุ-c
: ไม่รวม CSS-C
: อ่านคุกกี้จาก file
-d
: อนุญาตให้ดึงเนื้อหาจาก domain(s)
ที่ระบุเท่านั้น-e
: ละเว้นข้อผิดพลาดของเครือข่าย-E
: บันทึกเอกสารโดยใช้ custom encoding
-f
: ละเว้นเฟรม-F
: ไม่รวมแบบอักษรของเว็บ-h
: พิมพ์ข้อมูลวิธีใช้-i
: ลบภาพ-I
: แยกเอกสาร-j
: ไม่รวม JavaScript-k
: ยอมรับใบรับรอง X.509 (TLS) ที่ไม่ถูกต้อง-M
: อย่าเพิ่มการประทับเวลาและข้อมูล URL-n
: แยกเนื้อหาขององค์ประกอบ NOSCRIPT-o
: เขียนเอาต์พุตไปยัง file
(ใช้ “-” สำหรับ STDOUT)-s
: เงียบๆ-t
: ปรับ network request timeout
-u
: ระบุ custom User-Agent
-v
: ไม่รวมวิดีโอ ตัวเลือก -d
และ -B
ให้การควบคุมว่าโดเมนใดที่สามารถใช้เพื่อดึงข้อมูลเนื้อหามาได้ เช่น:
monolith -I -d example.com -d www.example.com https://example.com -o example-only.html
monolith -I -B -d .googleusercontent.com -d googleanalytics.com -d .google.com https://example.com -o example-no-ads.html
Monolith ไม่มีคุณลักษณะของเอ็นจิ้น JavaScript ดังนั้นเว็บไซต์ที่ดึงและแสดงข้อมูลหลังจากโหลดครั้งแรกอาจต้องใช้เครื่องมือเพิ่มเติม
ตัวอย่างเช่น Chromium (Chrome) สามารถใช้เป็นตัวประมวลผลล่วงหน้าสำหรับหน้าดังกล่าวได้:
chromium --headless --window-size=1920,1080 --run-all-compositor-stages-before-draw --virtual-time-budget=9000 --incognito --dump-dom https://github.com | monolith - -I -b https://github.com -o github.html
โปรดตั้งค่าตัวแปรสภาพแวดล้อม https_proxy
, http_proxy
และ no_proxy
โปรดเปิดประเด็นหากมีอะไรผิดปกติ ซึ่งช่วยให้โครงการนี้ดีขึ้น
เท่าที่เป็นไปได้ภายใต้กฎหมาย ผู้เขียนได้อุทิศลิขสิทธิ์ที่เกี่ยวข้องกับลิขสิทธิ์และสิทธิ์ใกล้เคียงทั้งหมดของซอฟต์แวร์นี้ให้เป็นสาธารณสมบัติทั่วโลก ซอฟต์แวร์นี้เผยแพร่โดยไม่มีการรับประกันใดๆ