Skip to content

tsoniclang/tsumo

Repository files navigation

tsumo

A Hugo-inspired static site generator.

tsumo is implemented in TypeScript and compiled to native code with Tsonic (TS → C# → .NET).

Documentation

  • docs/README.md — end-user docs (getting started, CLI, config, templates, docs mode)
  • examples/basic-blog/README.md — minimal blog example
  • examples/docs-site/README.md — multi-repo docs example (mounts + nav + search)

Hugo compatibility (subset)

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

Data model

tsumo parses configuration, front matter, docs manifests, template contexts, and resource metadata into closed engine models. JSON input is accepted for supported schemas and then narrowed into typed Tsonic classes before build or template execution.

This keeps generated native code deterministic while preserving Hugo-style authoring for normal site content.

Repo layout

  • packages/engine — core build + server engine (Tsonic library)
  • packages/clitsumo CLI (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)

Coding standards

See CODING-STANDARDS.md.

Build

npm install
npm run build

Source builds use sibling checkout file: dependencies for ../tsonic and ../tsbindgen.

Selftest

npm run selftest

The selftest uses local first-party package overlays when sibling package repos are available and keeps generated verification artifacts out of git.

Try the example

# 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-blog

Commands

  • tsumo new site <dir> — scaffold a new site
  • tsumo new <path.md> [--source <dir>] — create new content under content/
  • tsumo build [--source <dir>] — build site into public/
  • tsumo server [--source <dir>] — serve public/ (watch + rebuild by default)

Native AOT (optional)

npm run -w tsumo-cli build:aot
./packages/cli/out/tsumo-aot --help

About

A hugo-inspired blog engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors