Skip to main content

BlogMore

BlogMore

A blog-oriented static site generation engine built in Python.

What is BlogMore?

BlogMore is a blog-oriented static site generation engine built in Python. It transforms your Markdown files into a complete, modern blog website with a clean, responsive design—no database, no server-side runtime required.

See my own blog for an example of a site created with BlogMore (the site is hosted on GitHub pages, with the repository over here).

Key Features

  • Static site generator — produces plain HTML/CSS/JS that can be hosted anywhere
  • Markdown-based content — write all your posts in Markdown with support for code highlighting, tables, and footnotes
  • Frontmatter metadata — control post metadata (title, date, tags, category, author) through YAML frontmatter
  • Jinja2 templating — fully customisable templates for complete control over your site's appearance
  • Client-side search — optional full-text search across post titles and content, running entirely in the browser with no external services
  • Automatic icon generation — generate favicons and platform-specific icons (iOS, Android/Chrome, Windows) from a single source image
  • Automatic image optimisation — optional multi-size "ladder" generation and next-gen WebP conversion for local images in Markdown posts; simple <img> tags are replaced with stable, responsive <picture> elements
  • Automated cover images — automatically generate social media sharing images (Open Graph / Twitter Cards) in lossless WebP format using Pillow. Includes customizable layouts (minimalist, split, and editorial), background fills (solid, gradient, or image), typography, and smart visual caching to keep build times fast.
  • CSS minification — optional minification of the generated stylesheet
  • JavaScript minification — optional minification of generated scripts
  • HTML minification — optional minification of every generated HTML page
  • Flexible post URL format — fully configurable post output paths and URLs via the post_path option; choose date-based paths, per-post directories, category-based layouts, and more
  • URL redirection — redirect older or alternative URLs to posts and pages using a redirect_from list in frontmatter
  • Post series — group multi-part articles into a cohesive series with automatic top and bottom navigation banners and paginated series archives
  • Optional reading time display — estimated reading time shown next to the post date, based on 200 words per minute
  • GitHub-style admonitions — alert boxes (note, tip, important, warning, caution) rendered from standard > [!TYPE] blockquote syntax
  • RSS and Atom feeds — built-in feed generation for syndication
  • XML sitemap — optional sitemap.xml for search engine indexing
  • Blog statistics page — optional stats page with histograms, word counts, reading times, lifespan, top linked domains, and more
  • Calendar view — optional full-history year calendar showing all posts, with links to day, month, and year archives; responsive design adapts from four months per row down to one
  • Post graph — optional interactive force-directed graph connecting posts, tags, and categories via internal links; click any node to navigate to it; respects the active light/dark theme
  • Related posts — automatically find and display contextually relevant posts for each entry using a build-time TF-IDF and cosine similarity engine
  • Diagrams (Mermaid) — optional support for rendering Mermaid diagrams and flowcharts from fenced code blocks (enable with with_mermaid: true in configuration)
  • LaTeX Math Rendering — optional support for rendering LaTeX equations and formulas using KaTeX or MathJax (enable with with_maths: true in configuration)
  • SEO optimisation — meta tags, Open Graph tags, and Twitter Card support
  • Automatic organisation — tag pages, category pages, and chronological archives generated automatically
  • GitHub Pages integration — one-command publishing to GitHub Pages (or any git branch)
  • Live preview server — local development server with automatic rebuilding on file changes
  • Built-in linter — check your site for broken internal links, missing metadata, duplicate titles, and other common issues
  • External link checking — check the reachability and HTTP status of all external URLs found in posts to detect broken links
  • External link dumping — export a CSV list of all external links found in posts along with the files they appear in
  • YAML configuration file — keep all your settings in blogmore.yaml instead of repeating them on the command line

Installation

BlogMore requires Python 3.12 or later.

The fastest and most modern way to install BlogMore is with uv:

uv tool install blogmore

If you don't have uv installed you can use uvx.sh to perform the installation. For GNU/Linux or macOS or similar:

curl -LsSf uvx.sh/blogmore/install.sh | sh

or on Windows:

powershell -ExecutionPolicy ByPass -c "irm https://uvx.sh/blogmore/install.ps1 | iex"

Using pipx

pipx install blogmore

From source

git clone https://github.com/davep/blogmore.git
cd blogmore
uv sync

Documentation

Full documentation -- including a getting-started guide, day-to-day usage, a complete configuration reference, and the command-line reference -- is available at blogmore.davep.dev.

Getting Help

Licence

BlogMore is released under the GPL-3.0-or-later licence.

Metadata

Release files for blogmore 2.44.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for blogmore 2.44.2
File Size Uploaded Provenance
blogmore-2.44.2.tar.gz 183.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for blogmore 2.44.2
File Interpreter ABI Platform
blogmore-2.44.2-py3-none-any.whl Python 3 none any Details

Total release size: 408.4 kB

Release files / blogmore-2.44.2.tar.gz

Download URL blogmore-2.44.2.tar.gz
Size 183.5 kB
Tags Source
SHA-256 checksum
How to use checksums
88b310bd2c8c5fe25f9ef9a6547b541f4f46d054621b23e79cccd7e07ade413d
BLAKE2b-256 checksum
How to use checksums
f49b973773e2326ba40eb6623628ac88837f83f57b2da0f3439fe3e888f0475e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / blogmore-2.44.2-py3-none-any.whl

Download URL blogmore-2.44.2-py3-none-any.whl
Size 224.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e30a89cbdeea0e82002b048aa78dbdab671a686e535af19ac97394f93f09959
BLAKE2b-256 checksum
How to use checksums
b41994b56d6f343b99fc262e251b2a894769901884a0fdc6568f914d92d6d947
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for blogmore 2.44.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

2.44.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page