Skip to main content

Download entire blogs for offline reading with working internal links

Project description

Blogpack

Blog → Book!

Download entire blogs for offline reading. Generates PDF, EPUB, and HTML with working internal links and embedded images.

Absolutely ideal for long flights, distraction free reading, digital detoxes, or pretending you'll finally catch up on that Substack.

Works with Substack, Ghost and Wordpress blogs.

Installation

pip install blogpack

Note: PDF export requires additional system libraries. If PDF generation fails:

  • Ubuntu/Debian: sudo apt install libpango-1.0-0 libpangocairo-1.0-0
  • macOS: brew install pango
  • Windows: Install GTK3 from MSYS2

EPUB and HTML exports work without these dependencies.

Usage

blogpack https://www.cold-takes.com/

Downloads the blog to ./cold-takes/ with HTML, EPUB, and PDF formats.

Options

blogpack https://example.com/ -o ./my-folder   # Custom output directory
blogpack https://example.com/ -f epub          # Only generate EPUB
blogpack https://example.com/ -n 50            # Limit to 50 posts
blogpack https://example.com/ --no-images      # Skip images
blogpack https://example.com/ --no-verify-ssl  # Disable SSL verification

Web App

A browser-based interface is included in blogpack-web/.

Run Locally

cd blogpack-web
pip install -r requirements.txt
uvicorn app:app --reload
# Open http://localhost:8000

Deploy with Docker

docker build -t blogpack-web .
docker run -p 8000:8000 blogpack-web

Output Structure

<blog-name>/                  # Derived from blog URL
├── html/
│   ├── index.html           # Table of contents
│   ├── post-slug.html       # Individual posts
│   └── images/              # Downloaded images
├── <blog-name>-archive.epub # For e-readers
└── <blog-name>-archive.pdf  # Single PDF

License

GPL-3.0 - See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blogpack-0.1.4.tar.gz (68.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blogpack-0.1.4-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file blogpack-0.1.4.tar.gz.

File metadata

  • Download URL: blogpack-0.1.4.tar.gz
  • Upload date:
  • Size: 68.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for blogpack-0.1.4.tar.gz
Algorithm Hash digest
SHA256 df596a21ef2ad96e8e0aa1e13e500779509aa90f8c5b432a69120d3496647077
MD5 bae6199f294d945141467ea173211c72
BLAKE2b-256 48033ef66e8529af4f7655b90fa5de4a5d23ebaab66e3b822a2ff2df258e711e

See more details on using hashes here.

File details

Details for the file blogpack-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: blogpack-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for blogpack-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ede9ae2e7cb10b1d6a4bee319c0bc6f501792450f90b218e33388b32c05dd335
MD5 d824ecef35e948ca4f20460fa10e2c83
BLAKE2b-256 afcfd3504e1a58bc3d8572e060cd03e33a675731da46c5f4610c95f4fda91933

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page