Skip to main content

webolator

Turn a folder of markdown, or a single .md file, into a browsable website. No config file, no index file, no SUMMARY.md.

Docs: https://vivainio.github.io/webolator/ (built with webolator, of course)

  • Zero config. Point it at a folder and the navigation comes from the directory tree. Page titles come from the first # heading.
  • Mermaid. ```mermaid blocks become diagrams, rendered in the browser.
  • Syntax highlighting happens at build time (syntect), with light and dark themes and no JavaScript.
  • Cross-file links work. other.md, dir/, ../x.md#some-heading and /root/relative.md are rewritten to the right pages and anchors. Broken links print a warning.
  • Sibling files are kept. Raw .html, .txt/.log/code files, PDFs and images are copied and linked. HTML, text and PDF files also appear in the sidebar.
  • --single writes one self-contained .html with everything embedded (images, text files, HTML files, PDFs), which is easy to email or attach.
  • --serve runs a local preview with live reload.
  • Reading features: an "On this page" sidebar, previous/next links, "last updated" and "Edit this page" from git, a light/dark toggle, copy buttons on code, image zoom and a mobile menu.
  • Writing extras: $math$ (KaTeX), :emoji:, [[wikilinks]], and optional front matter (title, order, hidden). See the syntax reference for every supported form.
  • --check fails the build on broken links, for CI.
  • --files assets/ shows a folder as a plain file list (name, size, date) instead of rendering it. Useful for downloads and attachments.
  • Custom CSS. A webolator.css in the docs root is applied automatically, or you can pass --css file.css. Colors are CSS variables, so a theme can be a few lines. See styling.
  • GitHub-flavored markdown: tables, task lists, footnotes, strikethrough, autolinks and > [!NOTE] alerts.
  • Light and dark mode follow the OS setting.

Installation

Using uv (easiest)

Install the published wheel from PyPI as a standalone tool:

uv tool install webolator

This puts the webolator command on your PATH. To try it without installing anything:

uvx webolator docs/ --serve

Pre-built binaries

Download the latest release for your platform from the GitHub Releases page:

  • Linux (x86_64): webolator-linux-x86_64.tar.gz
  • Windows (x86_64): webolator-windows-x86_64.zip
  • macOS (Intel): webolator-macos-x86_64.tar.gz
  • macOS (Apple Silicon): webolator-macos-arm64.tar.gz

Extract the archive and place the webolator binary in your PATH.

From source

cargo install --git https://github.com/vivainio/webolator

Usage

webolator docs/                     # static site in ./site
webolator docs/ -o public           # ...or somewhere else
webolator docs/ --single            # one self-contained docs.html
webolator notes.md --single         # a single file, plus anything it links to
webolator docs/ --serve             # http://127.0.0.1:8000 with live reload

Try it on the bundled demo:

cargo run -- examples/demo --serve

How the site is put together

Source Result
index.md or README.md in a folder that folder's index.html
folder with no index a generated listing page
foo.md foo.html (or foo.md.html if a raw foo.html already exists)
any other file copied as is
hidden files and folders, node_modules, target, venv skipped
anything in .gitignore, .webolatorignore or --exclude skipped (--no-ignore turns off the .gitignore part)

Number prefixes like 01-usage.md or 02-guides/ set the sidebar order. They don't appear in labels and are removed from URLs, so 02-guides/01-setup.md becomes guides/setup.html.

If you pass a single file, webolator follows its local links, including links to parent folders. The site then contains that file, which becomes the home page, plus everything reachable from it.

In --single mode, each page becomes a section with hash routing, so the back and forward buttons and deep links like docs.html#p-guide-install--setup work. Images are inlined. Linked HTML files are shown in an iframe and text files as preformatted text, and PDFs and other files open from embedded blobs.

Mermaid offline

By default mermaid.js is loaded from the jsDelivr CDN, and only on pages that contain a diagram. To work fully offline, pass a local copy:

webolator docs/ --single --mermaid-js mermaid.min.js

In static mode the file is copied to _webolator/. In --single mode it is inlined.

Metadata

Release files for webolator 0.3.0

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

Built distributions (wheels)

Table of built distributions (wheels) for webolator 0.3.0
File Actions
webolator-0.3.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for webolator-0.3.0-py3-none-win_amd64.whl
webolator-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for webolator-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
webolator-0.3.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for webolator-0.3.0-py3-none-macosx_11_0_arm64.whl
webolator-0.3.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for webolator-0.3.0-py3-none-macosx_10_12_x86_64.whl

Total release size: 8.7 MB

Release files / webolator-0.3.0-py3-none-win_amd64.whl

Download URL webolator-0.3.0-py3-none-win_amd64.whl
Size 2.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
5eaaef9a9212578f6c528f9dddcd12cf108a8a93b1e05d2d589ca2336411e74b
BLAKE2b-256 checksum
How to use checksums
22cdfa10fe42c448752c1b20b6ebd93d57495155920d87ab6e291103eff3df59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / webolator-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL webolator-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
83cc24667187f276b790b7ca3e86d769edc423dd56000fde7cdce4c261785522
BLAKE2b-256 checksum
How to use checksums
f56a5bac8d465b15b8a23ce930ea69fbe7fe99cd82063328b9b8edf3242627d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / webolator-0.3.0-py3-none-macosx_11_0_arm64.whl

Download URL webolator-0.3.0-py3-none-macosx_11_0_arm64.whl
Size 2.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7cd548074231b72407ba6b8cc98345009698858ed7ee7f8d9cb1bb639ec25e7b
BLAKE2b-256 checksum
How to use checksums
c487a21a4262ffea5ddf67966ba1b4f68d97a00b2c201e21af089e67d3f2d2d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / webolator-0.3.0-py3-none-macosx_10_12_x86_64.whl

Download URL webolator-0.3.0-py3-none-macosx_10_12_x86_64.whl
Size 2.1 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f97615fb542facdcb674db6801ff595dd20533e7e7f99c3894121034968b1550
BLAKE2b-256 checksum
How to use checksums
2f365f6bcd06b59e954ebb64ed6f30392756bfcbfeb703145958a9ac011ecf57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Security for webolator 0.3.0

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.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for webolator-0.3.0-py3-none-win_amd64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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