A Hugo-inspired static site generator.
tsumo is implemented in TypeScript and compiled to native code with Tsonic (TS → C# → .NET).
docs/README.md— end-user docs (getting started, CLI, config, templates, docs mode)examples/basic-blog/README.md— minimal blog exampleexamples/docs-site/README.md— multi-repo docs example (mounts + nav + search)
| Area | Feature | Status | Notes |
|---|---|---|---|
| Markdown | GitHub Flavored Markdown (GFM) | ✅ | Powered by Markdig (GitHub heading IDs, tables, task lists, autolinks, fenced code blocks, etc.) |
| Content | Sections + nested paths | ✅ | content/posts/series/part-1.md → /posts/series/part-1/ |
| Content | Leaf bundles (index.md) |
✅ | Copies non-.md bundle resources next to the built page |
| Content | Branch bundles (_index.md) |
✅ | Home and nested section list pages |
| Front matter | YAML / TOML / JSON | ✅ | title, date, draft, description, slug, type, layout, tags, categories, params |
| Taxonomies | tags + categories |
✅ | Generates terms + term pages |
| Templates | Hugo-like Go templates (subset) | ✅ | baseof, block, define, partial, if/else/else if, with, range, template |
| Templates | Render hooks | ✅ | layouts/_markup/*.html + layouts/_default/_markup/*.html |
| Shortcodes | {{< >}} + {{% %}} |
✅ | Loaded from layouts/shortcodes/ + layouts/_shortcodes/ |
| Menus | Config + front matter menus | ✅ | Merged + hierarchical (parent, weight) |
| Assets | Hugo-like pipeline (subset) | ✅ | resources.*, css.Sass, Fingerprint, ExecuteAsTemplate (Sass requires TSUMO_SASS/sass) |
| Outputs | index.xml, sitemap.xml, robots.txt |
✅ | Generated unless you provide your own static files |
| CLI | build, server, new site, new |
✅ | server supports watch + rebuild |
| Docs | Multi-repo mounts + nav + search | ✅ | Enabled by tsumo.docs.json (tsumo-specific) |
| Advanced Hugo | Multilingual builds, pagination | ❌ | Not implemented |
packages/engine— core build + server engine (Tsonic library)packages/cli—tsumoCLI (Tsonic executable)packages/markdig— vendored Markdig build (GFM Markdown)examples/basic-blog— example site (Hugo-style layout)examples/docs-site— docs-mode example (mounts + nav + search)
See CODING-STANDARDS.md.
npm install
npm run buildnpm run selftest# Build the example site into examples/basic-blog/public
./packages/cli/out/tsumo build --source ./examples/basic-blog
# Dev server (watch + rebuild)
./packages/cli/out/tsumo server --source ./examples/basic-blogtsumo new site <dir>— scaffold a new sitetsumo new <path.md> [--source <dir>]— create new content undercontent/tsumo build [--source <dir>]— build site intopublic/tsumo server [--source <dir>]— servepublic/(watch + rebuild by default)
npm run -w tsumo-cli build:aot
./packages/cli/out/tsumo-aot --help