euv-docs
A VuePress-style documentation site generator built with
euv + euv-ui, compiled to WebAssembly.
Write markdown in docs/ — get a full docs site with a home hero, navbar,
multi-level collapsible sidebar, right anchor TOC, prev/next links, footer,
dark mode, and i18n.
Quick start
# dev server with hot reload
# production build → www/
Open http://localhost:8080 after euv run.
Writing docs
| Source file | Route |
|---|---|
docs/README.md |
/ (home, with frontmatter hero) |
docs/guide/README.md |
/guide/ (sidebar group index) |
docs/guide/getting-started.md |
/guide/getting-started.html |
docs/zh/README.md |
/zh/ (locale home) |
- Navbar, locales, footer, UI labels —
docs/config.toml - Sidebar — auto-generated from the file tree; order with frontmatter
order: <int> - Home page — frontmatter
home: true+heroText/tagline/actions/features/footer - Static assets — put them in
docs/public/, reference as/logo.png
Building a site from any markdown directory
The euv-docs binary builds any directory containing config.toml and
*.md files into a static site. Use this to ship documentation for a
project without modifying euv-docs itself.
| Argument | Default | Meaning |
|---|---|---|
<SRC_DIR> |
(required) | Directory containing config.toml and *.md files |
--out <DIR> |
./dist |
Output directory; produces <DIR>/index.html and <DIR>/pkg/ |
--name <NAME> |
euv_docs |
Wasm package name (sets the <pkg>_bg.wasm filename) |
--index-html <FILE> |
CLI-bundled | Path to a custom index.html template (forwarded to euv build --index-html); replaces the bundled one |
--release |
enabled | Release wasm profile (default) |
--debug |
Dev wasm profile (faster build, slower runtime) | |
-h, --help |
Print help | |
-v, --version |
Print version |
Example:
The CLI sets EUV_DOCS_SRC_DIR and EUV_DOCS_OUT_DIR for the embedded
build script, then shells out to euv build (the euv-cli package). See
src/bin/euv_docs/main.rs and src/bin/euv_docs/fn.rs for the exact
argument wiring.
Markdown features
- Frontmatter (YAML)
- GFM tables, task lists, strikethrough, footnotes
- Fenced code blocks
- Heading permalinks + right anchor TOC (h2/h3)
- Custom containers:
::: tip/::: warning/::: danger/::: note [title] - Internal
.mdlinks rewritten to routes; external links open in a new tab - Same-page anchors:
[text](#heading-slug)
Internationalization
Add a [[locales]] entry in docs/config.toml (prefix = "/zh/") and a
matching directory docs/zh/. The navbar language dropdown switches locale,
keeping the current page when a translation exists.
License
MIT