首页即作品集,由 data/profile.yaml 与 data/projects.yaml 驱动,不设独立 /portfolio 区块
tsuki — Hugo 作品集模板
作者 tiennm99dev
tsuki(月)是一个 Hugo 博客与个人作品集主题,首页即作品集,文章位于 /post/,支持越南语优先排版、Pagefind 搜索与 Giscus 评论。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
博客支持文章、标签、分类、按年份分组的归档与分页列表
Pagefind 在构建时生成索引,搜索无运行时依赖
Giscus 评论基于 GitHub Discussions,默认关闭,需配置后启用
越南语优先排版:变音符号处理、越南语日期格式、ASCII 标题 ID
深色模式与 View Transitions 渐进增强,长文章自动挂载目录
模板详细介绍
tsuki 是一个 Hugo 主题,把博客与个人作品集合并在同一站点中:首页本身就是作品集,展示个人简介、精选项目与近期文章,文章统一放在 /post/ 路径下,不单独设立 /portfolio 区块。首页内容由 data/profile.yaml 与 data/projects.yaml 两个数据文件驱动。
博客功能包括文章、标签、分类、按年份分组的归档以及分页的文章列表。搜索使用 Pagefind,在构建后生成索引,不引入运行时依赖;评论使用 Giscus,基于 GitHub Discussions,默认关闭,需要在站点配置中填入 giscus.app 生成的参数后启用。
主题面向越南语优先的排版:处理变音符号、使用越南语原生日期格式,标题 ID 采用 ASCII 形式。此外提供深色模式(跟随 prefers-color-scheme 并带持久化切换)、基于 View Transitions API 的同文档导航过渡,以及长文章自动挂载的目录(宽视口下吸附,使用 IntersectionObserver 高亮当前章节)。主题本身不使用 SCSS、TypeScript 或打包器,只有 Hugo 模板与浏览器 ES 模块。
当前状态为 v0.1.0 初始版本。View Transitions 与 :has() 属于渐进增强,在不支持的浏览器中主题仍可正常使用。演示图片、字体、图标等第三方素材的许可需单独核对。
适合你的项目吗?
适用场景
- 搭建个人博客并同时展示个人简介与精选项目
- 以越南语为主要内容语言的写作站点
- 需要静态构建时搜索索引、不引入搜索服务的博客
- 使用 GitHub Discussions 承载文章评论的站点
适合人群
- 使用 Hugo 建站的个人博客与作品集作者
- 以越南语内容为主的写作者
- 希望首页直接呈现作品集、不额外维护独立作品集页面的用户
- 偏好无 SCSS、无 TypeScript、无打包器构建流程的开发者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
以 git submodule 方式添加主题并在站点配置中设置 theme: tsuki
- 2
搜索需在 Hugo 构建后运行 npx pagefind --site public 生成索引;Hugo Module 方式需自行安装 Pagefind
- 3
评论默认关闭,需在 giscus.app 生成配置并填入 params.comments.giscus.*
- 4
exampleSite/hugo.yaml 是完整可用的配置示例,安装与配置细节见 docs/installation.md 与 docs/config.md
- 5
主题代码为 Apache-2.0,演示图片、字体、图标等第三方素材需按各自许可单独核对
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 Apache-2.0 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发;分发时需随附 Apache-2.0 许可证。
- 修改过的文件需显著标明改动,并保留相关版权、专利、商标及归属声明。
- 若原项目附有 NOTICE 文件,分发衍生作品时需保留其中适用的归属声明。
- 许可包含适用的贡献者专利授权;发起许可所述专利诉讼会终止该专利授权,且不授予商标使用权。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 评论功能依赖第三方服务 Giscus(基于 GitHub Discussions),默认关闭;需先在 giscus.app 生成配置并填入 params.comments.giscus.* 才能启用,属于外部服务依赖。
- 搜索功能需在 Hugo 构建后额外运行 npx pagefind --site public 生成索引;Hugo Module 方式使用者需自行安装 Pagefind,属于额外构建步骤与外部工具依赖。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 Apache-2.0 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
no-charge, royalty-free, irrevocable copyright license
许可证原文
Comments use Giscus. Generate config at [giscus.app](https://giscus.app) and add to `params.comments.giscus.*` to enable. Defaults to off.
README 原文
https://github.com/tiennm99dev/tsuki/blob/main/LICENSEhttps://github.com/tiennm99dev/tsuki/blob/main/README.mdSearch uses Pagefind, built post-Hugo via `npx pagefind --site public`.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-03。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Hugo
- 网站类型
- 作品集 · 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-07-25
- 截图检查日期
- 2026-10-03
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Hugo。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-04
查看当时使用的来源资料
SHA-256: 0bfe55898e96f402b19796d78c370d9ed55b8d72923d6fd90c23df9484af05da
2026-10-03T22:38:10.160Z
来源文件 / 仓库# tsuki (月) [](https://github.com/tiennm99/tsuki/actions/workflows/pages.yml) [](LICENSE) [](https://gohugo.io) [](https://github.com/tiennm99/tsuki/actions/workflows/pages.yml) [](docs/accessibility.md) 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 [`bonsai`](https://github.com/tiennm99/bonsai) in the same naming family. **→ [Live demo](https://tiennm99.github.io/tsuki/)** ## Status `v0.1.0` — initial release. See [CHANGELOG.md](CHANGELOG.md). ## Features - **Blog** — posts, tags, categories, year-grouped archive, paginated post list - **Personal portfolio on the homepage** — driven by `data/profile.yaml` + `data/projects.yaml`, no separate `/portfolio` section - **Search** — [Pagefind](https://pagefind.app), zero-runtime, indexed at build time - **Comments** — [Giscus](https://giscus.app) (GitHub Discussions) - **Vietnamese-first** — diacritic-safe typography, native vi date formats, ASCII heading IDs - **Dark mode** — `prefers-color-scheme` + persistent toggle, no flash of wrong theme - **View Transitions API** — smooth same-document navigation in supporting browsers - **Table of contents** — auto-mounted on long posts, sticky on wide viewports, IntersectionObserver active highlight - **No build step** — pure Hugo + browser ES modules. No SCSS, no TypeScript, no bundler in the theme - **Light** — CSS ≤ 4 KB gz, JS ≤ 1 KB gz (excluding Pagefind UI) ## Quick start ```bash git submodule add https://github.com/tiennm99/tsuki.git themes/tsuki echo 'theme: tsuki' >> hugo.yaml ``` Full installation guide (submodule, Hugo Module, Pagefind setup, required site config): [`docs/installation.md`](docs/installation.md). `exampleSite/hugo.yaml` is a complete working example. ## Documentation - [`docs/installation.md`](docs/installation.md) — submodule + Hugo Module + Pagefind setup - [`docs/config.md`](docs/config.md) — full params reference - [`docs/data-schemas.md`](docs/data-schemas.md) — `profile.yaml` + `projects.yaml` - [`docs/customization.md`](docs/customization.md) — override layouts, tokens, fonts, callouts - [`docs/migrating-from-stack.md`](docs/migrating-from-stack.md) — for users coming from `hugo-theme-stack` ## Search and comments Search uses Pagefind, built post-Hugo via `npx pagefind --site public`. tsuki pins Pagefind in its own `package.json` for submodule consumers; Hugo Module consumers install Pagefind in their own site (see [`docs/installation.md`](docs/installation.md)). No runtime dependency. Comments use Giscus. Generate config at [giscus.app](https://giscus.app) and add to `params.comments.giscus.*` to enable. Defaults to off. ## Browser support Modern evergreen browsers. View Transitions and `:has()` are progressive enhancements; the theme remains functional without them. ## License [Apache-2.0](LICENSE)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

hugo-PaperMod
PaperMod 是 Hugo 生态里知名度较高的主题之一,定位很明确:给博客和轻量作品集站点提供一套干净、响应式的阅读界面。
Hugo · 作品集

LoveIt
❤️A clean, elegant but advanced blog theme for Hugo 一个简洁、优雅且高效的 Hugo 主题
Hugo · 博客

hugo-coder
A minimalist blog theme for hugo.
Hugo · 博客

blowfish
Personal Website & Blog Theme for Hugo
Hugo · 博客

hugo-paper
🪺 A simple, clean, customizable Hugo theme
Hugo · 博客

hextra
Hextra 是一个 Hugo 主题,定位在文档站与博客之间:既提供侧边栏导航、目录、面包屑、分页这类文档站结构,也能承载博客内容。
Hugo · 文档
