This release is a pre-release and may not be stable for production use.
yom
yom is a local web viewer for Markdown trees. It scans a directory, renders .md files, and serves them in a sidebar-based browser UI with live reload.
Features
- Recursively discovers Markdown files
- Shows a file tree in the sidebar
- Renders Markdown as HTML
- Resolves relative links and image paths inside Markdown
- Watches for file changes and updates the browser automatically
- Starts a local server with a single command
Installation
Install from PyPI:
pip install yom
If you use uv, you can also run it without a manual virtual environment step:
uv tool install yom
Quick Start
Serve the current directory:
yom .
Serve a specific directory:
yom /path/to/docs
By default, yom starts a local server on http://127.0.0.1:8000 and opens it in your browser.
Usage
yom /path/to/docs --host 127.0.0.1 --port 8000 --interval 0.7 --title "My docs"
Options available through yom --help:
root: directory to scan--host: bind host--port: bind port--interval: polling interval for change detection, in seconds--no-watch: disable file watching--watch-mode {auto,poll,watchdog}: choose the watch backend--title: browser window title--no-open: disable automatic browser launch on startup--markdown-extension NAME: enable an additional Markdown extension--no-default-extensions: disable the built-in Markdown extensions
Enable an extra Markdown extension:
yom /path/to/docs --markdown-extension admonition
--markdown-extension does not enable a yom-specific feature. It passes an additional
extension name through to the underlying Python-Markdown renderer. For example,
admonition enables admonition block syntax supported by Python-Markdown.
By default, yom enables fenced_code, tables, toc, and sane_lists. Use
--no-default-extensions if you want to start from an empty extension set and opt in
only to the extensions you need.
Run with the minimal Markdown configuration:
yom /path/to/docs --no-default-extensions
Relative Paths
- Markdown links such as
./other.mdand../guide.mdare converted into in-app navigation - Image paths such as
./image.pngare served as local assets - References that point outside the scanned directory tree are left unresolved
Watch Behavior
To disable file watching:
yom /path/to/docs --no-watch
To force the watchdog backend:
yom /path/to/docs --watch-mode watchdog
To disable automatic browser opening:
yom /path/to/docs --no-open
Development
For local development with the repository checked out:
uv sync --group dev
make test
make ci-check
The Japanese translation is available at README.ja.md.
Metadata
Release files for yom 0.1.0a0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| yom-0.1.0a0.tar.gz | 21.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yom-0.1.0a0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.3 kB
Release files / yom-0.1.0a0.tar.gz
| Download URL | yom-0.1.0a0.tar.gz |
|---|---|
| Size | 21.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b4c73c902740ed5f82a66fafced4b686c339d393ecbf05dd8433e3ccd15fa00b
|
|
BLAKE2b-256 checksum How to use checksums |
63913e94e7a08f014b5ee6de1225c7ae21f577d271d24f2df6111e6f7ab13265
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / yom-0.1.0a0-py3-none-any.whl
| Download URL | yom-0.1.0a0-py3-none-any.whl |
|---|---|
| Size | 19.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e109f313b95cbcb8d968620872c77f2aa4092c866a0ee0de119d8149277bb1cf
|
|
BLAKE2b-256 checksum How to use checksums |
c96cbd7e79b5c46bb3afac0b244eb65f656d089716700d1667bd41f40d57eedd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for yom 0.1.0a0
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.
To learn more about protecting yourself from malicious actors, visit our package security documentation.