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.

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

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

Total release size: 7.4 MB

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

Download URL webolator-0.1.0-py3-none-win_amd64.whl
Size 1.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
22c1d65ffc8b955a0fbf71e85278194586c5fbc5a14137e952db4532bb7d6f8a
BLAKE2b-256 checksum
How to use checksums
be167db75975f2e4ced2427ddc718b1acc60452c2517ac68c06b5741397b613d
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.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL webolator-0.1.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
557c1181b571a4389c8e94f02a5db1fdbc6ce9018c6df83d9098c46b6d8053d3
BLAKE2b-256 checksum
How to use checksums
25384d6f448e596d04fda0799a9fb2bb8f4b11576919d0e2e9a9ecc68bd46b5e
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.1.0-py3-none-macosx_11_0_arm64.whl

Download URL webolator-0.1.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
d55e784b945e2c3d0a6aa6e4c4f441629c63958ab00e984477a75818794c5297
BLAKE2b-256 checksum
How to use checksums
137efacf150172d916c9d68ae97b3cbcadc2b523344f9f2dad03c72c60f171b6
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.1.0-py3-none-macosx_10_12_x86_64.whl

Download URL webolator-0.1.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
11e1520212b724748551e7cdf70c2bb44277c3900597869e006477e0467bf122
BLAKE2b-256 checksum
How to use checksums
9691af176e45a0b6420c4c182de3c59af3658852de85ec131cfe1487ecc48c78
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.1.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.1.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