_____ ______________ __________ ___________________ ___
| / | | | | | |
| _/ __ _| __ | | ___ ___ |__| |
| | | | | | | | | | | |
| | /| |__| _ |__| |____| | | | | __ |
| | ___/ | | | | | | | | |
|___| |__________| _____________________| |___| |___| |___|
أصبح حلم مكتنز البيانات حقيقة: قم بتجميع أي صفحة ويب في ملف HTML واحد. يمكنك أخيرًا استبدال هذا العدد الهائل من علامات التبويب المفتوحة بعدد هائل من ملفات .html المخزنة في مكان ما على محرك الأقراص الصغير الثمين لديك.
على عكس "حفظ الصفحة باسم" التقليدية، فإن monolith
لا يحفظ المستند المستهدف فحسب، بل يقوم أيضًا بتضمين أصول CSS والصورة وجافا سكريبت في وقت واحد ، مما يؤدي إلى إنتاج مستند 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، بالإضافة إلى الأنظمة الأساسية ذات بنية وحدة المعالجة المركزية غير القياسية.
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
: استبعاد جافا سكريبت-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
.
يرجى فتح مشكلة إذا كان هناك خطأ ما، فهذا يساعد في تحسين هذا المشروع.
إلى أقصى حد ممكن بموجب القانون، خصص المؤلف (المؤلفون) جميع الحقوق المتعلقة بحقوق الطبع والنشر والحقوق المجاورة لهذا البرنامج للملكية العامة في جميع أنحاء العالم. يتم توزيع هذا البرنامج دون أي ضمان.