A MoonBit-native static site generator for technical publishing.
Dependencies
yuegui init my-site # scaffold site project + wrapper scripts
cd my-site
moon update # fetch dependencies
yuegui build # build to public/ (WASM, no C compiler needed)
yuegui dev # preview server (needs `--target native`)my-site/
moon.mod ← dependency on Anxiu0101/yuegui
main.mbt ← @yuegui.dispatch({ title: "My Site", ... })
moon.pkg ← is-main: true
yuegui.bat ← wrapper: moon run . -- %*
content/ ← markdown source files
theme/ ← layout templates + assets
public/ ← build output (gitignored)git clone https://github.com/Anxiu0101/yuegui
cd yuegui
moon run cmd/main -- build # build test content
moon run cmd/main -- check # validate without output
moon run cmd/main -- init x # test scaffolding///|
test "dispatch accepts YueguiConfig" {
let config : @core.YueguiConfig = {
title: "test",
description: "",
language: "en",
base_url: "",
source_dir: "content",
theme_dir: "theme",
output_dir: "public",
auto_navigation: false,
navigation: { nav: [], sidebar: {} },
markdown_extensions: {},
plugins: [],
extra: {},
typst_mode: "semantic-html",
typst_fallback: "svg-embed",
dev_port: 3000,
dev_host: "127.0.0.1",
}
ignore(config)
}| Command | Description |
|---|---|
| yuegui init <name> | Scaffold a new site project |
| yuegui build | Build static site to output directory |
| yuegui check | Validate content, report diagnostics |
| yuegui dev | Start preview server with live reload (needs native backend) |
| yuegui new page <slug> | Scaffold a new page stub |
| yuegui new post <slug> | Scaffold a new blog post stub |
moon build cmd/main --target nativecore Content model, diagnostics, route/link validation
format_markdown Markdown parser and renderer (CommonMark via mizchi/markdown)
format_typst Typst adapter (experimental)
theme Layout loader, template engine, Prism.js syntax highlighting
runtime Filesystem, server, watcher
cli Command parsing and dispatchA MoonBit-native static site generator for technical publishing.
Dependencies