Hugo作品集博客

tsuki — Hugo 作品集模板

作者 tiennm99dev

tsuki(月)是一个 Hugo 博客与个人作品集主题,首页即作品集,文章位于 /post/,支持越南语优先排版、Pagefind 搜索与 Giscus 评论。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-03查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

首页即作品集,由 data/profile.yaml 与 data/projects.yaml 驱动,不设独立 /portfolio 区块

02

博客支持文章、标签、分类、按年份分组的归档与分页列表

03

Pagefind 在构建时生成索引,搜索无运行时依赖

04

Giscus 评论基于 GitHub Discussions,默认关闭,需配置后启用

05

越南语优先排版:变音符号处理、越南语日期格式、ASCII 标题 ID

06

深色模式与 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() 属于渐进增强,在不支持的浏览器中主题仍可正常使用。演示图片、字体、图标等第三方素材的许可需单独核对。

Hugo作品集博客

适合你的项目吗?

适用场景

  • 搭建个人博客并同时展示个人简介与精选项目
  • 以越南语为主要内容语言的写作站点
  • 需要静态构建时搜索索引、不引入搜索服务的博客
  • 使用 GitHub Discussions 承载文章评论的站点

适合人群

  • 使用 Hugo 建站的个人博客与作品集作者
  • 以越南语内容为主的写作者
  • 希望首页直接呈现作品集、不额外维护独立作品集页面的用户
  • 偏好无 SCSS、无 TypeScript、无打包器构建流程的开发者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    以 git submodule 方式添加主题并在站点配置中设置 theme: tsuki

  2. 2

    搜索需在 Hugo 构建后运行 npx pagefind --site public 生成索引;Hugo Module 方式需自行安装 Pagefind

  3. 3

    评论默认关闭,需在 giscus.app 生成配置并填入 params.comments.giscus.*

  4. 4

    exampleSite/hugo.yaml 是完整可用的配置示例,安装与配置细节见 docs/installation.md 与 docs/config.md

  5. 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 原文

Search uses Pagefind, built post-Hugo via `npx pagefind --site public`.

README 原文
https://github.com/tiennm99dev/tsuki/blob/main/LICENSEhttps://github.com/tiennm99dev/tsuki/blob/main/README.md

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 (月)

[![build](https://github.com/tiennm99/tsuki/actions/workflows/pages.yml/badge.svg)](https://github.com/tiennm99/tsuki/actions/workflows/pages.yml)
[![license](https://img.shields.io/github/license/tiennm99/tsuki)](LICENSE)
[![Hugo](https://img.shields.io/badge/hugo-%E2%89%A50.146-ff4088?logo=hugo)](https://gohugo.io)
[![CSS](https://img.shields.io/badge/CSS-%E2%89%A44KB%20gz-blue)](https://github.com/tiennm99/tsuki/actions/workflows/pages.yml)
[![a11y](https://img.shields.io/badge/a11y-WCAG%202.2%20AA-success)](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)
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。