mirror of
https://github.com/tiennm99/tsuki.git
synced 2026-06-05 12:14:18 +00:00
e19bb67c88da8f44870a66e3d76ec91f7f46f0dc
- 9 CSS files (tokens, reset, typography, layout, components, home, archive, toc, view-transitions) bundled via resources.Concat - 3 ES module JS files (theme-toggle, code-copy, toc-active); toc-active loaded only on long posts - @view-transition: navigation auto for cross-page morph (CSS-only) - TOC partial gated by WordCount>400 and Params.toc!=false; sticky on wide viewports, framed block on narrow - render-heading.html adds cosmetic anchor links - Hugo asset pipeline: resources.Concat | minify | fingerprint (no SCSS, no PostCSS, no Node) - i18n/vi.yml extended with prev/next/posts/archiveEmpty/toggleTheme - Bundle sizes: CSS 3.3 KB gz (budget 15), JS 0.8 KB gz (budget 8) Config: github-ascii heading IDs, :contentbasename permalink token for clean ASCII URLs, pagination.pagerSize migration (Hugo 0.128+).
tsuki (月)
A Hugo blog + personal portfolio theme. The homepage is the portfolio — bio, featured projects, recent posts. Posts live at /post/. Vietnamese-first typography, View Transitions on navigation, Pagefind search, Giscus comments.
月 (tsuki): the moon. Quiet, observed, returned to. Companion to
bonsaiin the same naming family.
→ Live demo (after first deploy)
Status
🚧 Under construction — initial scaffold. See the implementation plan for what's coming.
Features
- Blog — posts, tags, categories, year-grouped archive
- Personal portfolio on the homepage — driven by
data/profile.yaml+data/projects.yaml, no separate/portfoliosection - Search — Pagefind, zero-runtime, indexed at build time
- Comments — Giscus (GitHub Discussions)
- Vietnamese-first — diacritic-safe typography, native vi date formats, Be Vietnam Pro fallback
- Dark mode —
prefers-color-scheme+ persistent toggle, no flash of wrong theme - View Transitions API — smooth same-document navigation in supporting browsers
- No build step — pure Hugo + browser ES modules. No SCSS, no TypeScript, no bundler in the theme.
- Light — target ≤ 15 KB CSS gzipped, ≤ 8 KB JS gzipped (excluding Pagefind UI)
Quick start
As a git submodule
git submodule add https://github.com/tiennm99/tsuki.git themes/tsuki
Add to your site's hugo.yaml:
theme: tsuki
As a Hugo Module
hugo mod init github.com/<you>/<your-site>
hugo mod get github.com/tiennm99/tsuki
Then add to hugo.yaml:
module:
imports:
- path: github.com/tiennm99/tsuki
Configuration
Documented in docs/config.md (coming soon). For now, see exampleSite/hugo.yaml and exampleSite/data/.
License
Description
月 — Hugo blog + personal portfolio theme. Vietnamese-first typography, View Transitions API, Pagefind search, Giscus comments. Companion to bonsai.
Languages
HTML
47.6%
CSS
36.7%
Shell
9.9%
JavaScript
5.8%