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.
  • 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

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.2.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.2.0
File Actions
webolator-0.2.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for webolator-0.2.0-py3-none-win_amd64.whl
webolator-0.2.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.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
webolator-0.2.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for webolator-0.2.0-py3-none-macosx_11_0_arm64.whl
webolator-0.2.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for webolator-0.2.0-py3-none-macosx_10_12_x86_64.whl

Total release size: 7.5 MB

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

Download URL webolator-0.2.0-py3-none-win_amd64.whl
Size 1.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
c4c586e7a5a4c5ae564ad8bfa6f54e7b63b70c0dbe3a1f28f5b05e850075ad7b
BLAKE2b-256 checksum
How to use checksums
b40c05bd066115fe0a267e622015ad8445d8c9d81f80a1a8c63988adf6c875ed
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.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL webolator-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.9 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
ff5e2d9549f66a07bfedb888805e8b2d53a9f38df60699f6bff4e76066c0c12e
BLAKE2b-256 checksum
How to use checksums
143f79bb1c629906a7bcc524b9d71202d16cc536ae4745ccef2cbc379dba09a7
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.2.0-py3-none-macosx_11_0_arm64.whl

Download URL webolator-0.2.0-py3-none-macosx_11_0_arm64.whl
Size 1.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a4f6b4a9a2bdc8146d99221ef4db534c0b1274d19d54b038a32740645594bc6d
BLAKE2b-256 checksum
How to use checksums
c02befa0a58fa23e4ce6c560c46955b2b4ea9c38fe30eb7901efa706443a0f9e
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.2.0-py3-none-macosx_10_12_x86_64.whl

Download URL webolator-0.2.0-py3-none-macosx_10_12_x86_64.whl
Size 1.9 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f7ae8d0b6c3fdde5e8f74826cc8be36912699d430624391db8f238fd8843d04e
BLAKE2b-256 checksum
How to use checksums
2eb0f8da17faf790ecfa7ed411d0aa359295cca78e3ad0d777684c176eaf74c3
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.2.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.2.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