交互组件以内容形式存在:guide 旁的 widgets/<id>/ 文件夹被自动发现、构建并只在该页加载,正文用 {{< widget >}} 挂载,figure.html 提供无 JS 视图
taiga — Hugo 博客模板
作者 justskiv
taiga 是一个面向教学类站点的极简 Hugo 主题,用 rubric、课程系列和正文内嵌交互组件组织内容,不依赖 Node 或外部 CDN。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
图表和条形图由数据生成:{{< bars >}} 包裹表格画条形,{{< chart >}} 用表格或 YAML 画折线图并带读数面板,> [!stats] 生成大数字行
内部链接由 render hook 校验,可设为 error 或 warn,断链可让构建失败
构建时用 images.Text 生成 Open Graph 封面,封面样式以 assets/og/<style>/ 文件夹形式提供,无需外部服务
Pagefind 为构建产物建立全文索引,⌘K 在主题自带弹窗中检索正文,支持词干匹配和摘要
系列作为一等机制:rubric 下的文件夹即可生成系列落地页、系列面板、“第 N 篇 / 共 M 篇”标识和按阅读时长缩放的底部衔接
模板详细介绍
taiga 是 justskiv 开发的 Hugo 主题,定位是教学平台类站点:内容按 rubric → 课程系列 → guide 三层组织,guide 正文中可以嵌入实时 JavaScript 组件。演示站点完全由 taiga 构建,且每篇 guide 讲的都是 taiga 自身的机制。
构建方式上,主题只需要 hugo 和 pagefind 两个可执行文件,不使用 Node、npm、CDN 或跟踪脚本。JavaScript 由 Hugo 内置 esbuild 打包,样式为纯 CSS,字体为自托管 woff2,搜索使用静态索引。
功能方面:交互组件以内容形式存在,在 guide 的 index.md 旁放 widgets/<id>/{widget.js, widget.css} 即可被自动发现、构建并只在该页加载,正文用 {{< widget >}} 挂载,widgets/<id>/figure.html 提供无 JS 视图,Taiga.widget 运行时隔离单个组件的失败;图表和条形图由数据而非 HTML 生成,{{< bars >}} 包裹表格画条形,{{< chart >}} 配合表格或 YAML 画折线图并带 Grafana 风格读数面板,> [!stats] 生成大数字行;内部链接由 render hook 校验,可配置为 error 或 warn;Open Graph 封面在构建时用 images.Text 绘制,样式以 assets/og/<style>/ 文件夹形式提供;Pagefind 为构建产物建立全文索引,⌘K 在主题自带弹窗中检索正文并给出词干匹配和摘要;系列作为一等机制,rubric 下的一个文件夹即可生成系列落地页、系列面板、“第 N 篇 / 共 M 篇”标识和按阅读时长缩放的底部衔接;代码高亮在构建时由 Chroma 完成,配色对齐主题调色板,支持 hl_lines;七套调色板各是一个 data/themes/<id>.toml 文件,站点加一个文件即可新增并出现在 CSS 与主题选择器中,内置深色、灰色、浅色;界面字符串、日期和 JS 字符串提供英语和俄语,站点配置第二语言后语言切换器自动出现,增加第三语言只需内容、配置和一个 i18n 文件。
限制与状态:README 明确标注 v0.0.1 为 beta 且不稳定,参数、模板名和 CSS token 可能在没有弃用路径的情况下改名,hugo mod get -u 可能在任何提交上破坏站点,作者不建议现在基于它建站。要求 Hugo ≥ 0.146,不需要 extended 版本;搜索需要 Pagefind 作为第二个构建步骤。字体 Inter 和 JetBrains Mono 采用 SIL Open Font License,与主题代码的 MIT 许可分开。
适合你的项目吗?
适用场景
- 编写带课程系列和 rubric 分类的教学类站点
- 在教程正文中嵌入可交互的 JavaScript 组件、条形图、折线图或统计数字行
- 需要构建时校验内部链接、避免发布断链的文档站点
- 希望不引入 Node、npm、CDN 或跟踪脚本,仅用 Hugo 与 Pagefind 完成构建与搜索的站点
- 需要英语与俄语双语界面,并计划通过内容、配置和 i18n 文件扩展更多语言的站点
适合人群
- 以 guide 和课程系列为核心内容结构的学习平台
- 接受 beta 状态、愿意固定提交版本并承担后续破坏性变更风险的 Hugo 用户
- 偏好纯 CSS、自托管字体和静态搜索索引、不依赖 Node 工具链的开发者
- 需要在正文中嵌入数据驱动图表或交互组件,同时保留无 JS 降级视图的教程作者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
要求 Hugo ≥ 0.146,不需要 extended 版本;搜索需要额外安装 Pagefind 并作为第二个构建步骤运行
- 2
安装方式三选一:Hugo Module(推荐,配置 module.imports 后不要再设 theme)、Git submodule 或直接复制到 themes/taiga 并设置 theme = "taiga"
- 3
运行仓库自带演示:hugo server -s exampleSite --themesDir ../..
- 4
完整构建含搜索:hugo -s exampleSite --themesDir ../.. --gc --minify 后执行 pagefind --site exampleSite/public
- 5
README 标注 v0.0.1 为 beta 且不稳定,参数、模板名和 CSS token 可能无弃用路径地改名,建议固定提交版本
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 项目当前为 v0.0.1 beta 版,作者明确表示不稳定,不建议现在基于它建站;若使用需固定提交版本并自行承担风险。
- 参数、模板名和 CSS token 可能在没有弃用路径的情况下被重命名,升级时可能直接破坏现有站点配置与自定义样式。
- 使用 Hugo Module 方式安装时,执行 hugo mod get -u 更新可能在任何提交上破坏站点,需固定版本。
- 要求 Hugo 版本不低于 0.146,低于该版本无法使用;不需要 extended 构建。
- 全文搜索功能依赖外部工具 Pagefind,需额外安装并作为第二个构建步骤运行,否则无搜索能力。
- 内置字体 Inter 与 JetBrains Mono 采用 SIL Open Font License,与主题代码的 MIT 许可分开,使用字体需遵守 OFL 条款。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
v0.0.1 — beta. Unstable, and honestly so.
README 原文
Params, template names and CSS tokens can still be renamed **without a > deprecation path**
README 原文
a `hugo mod get -u` may break your site on any commit
README 原文
**Hugo** | ≥ 0.146 (developed against v0.154.x).
README 原文
**[Pagefind](https://pagefind.app/)** | For search. A second build step, and still no Node.
README 原文
https://github.com/justskiv/taiga/blob/main/LICENSEhttps://github.com/justskiv/taiga/blob/main/README.mdThe bundled fonts (Inter, JetBrains Mono) are under the SIL Open Font License
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Hugo
- 网站类型
- 博客 · 文档 · 企业官网
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-02
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Hugo。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 53ec357324d9df7a0224d25a325f6b630f593e4ed407eab3ab191d4200e929a2
2026-10-02T10:07:59.962Z
来源文件 / 仓库<p align="center">
<img src="images/banner.svg" alt="taiga" width="100%" />
</p>
<p align="center">
A minimal Hugo theme for <b>learning platforms</b> — rubrics, course series,<br>
and interactive widgets living inside the text.
</p>
<div align="center">
[](https://github.com/gohugoio/hugo/releases)
[](#status)
[](#requirements)
[](https://t.me/ntuzov)
**English** · [Русский](README.ru.md)
</div>
---
## Status
> [!WARNING]
> **v0.0.1 — beta. Unstable, and honestly so.**
>
> Params, template names and CSS tokens can still be renamed **without a
> deprecation path**, and a `hugo mod get -u` may break your site on any commit.
> I do not recommend building on it yet — if you do, pin a commit and accept the
> risk. A stable release is coming, and from that point breaking changes get a
> major bump and a migration note. Until then, treat every version as provisional.
## What it is
taiga is a theme for sites that **teach**: content is organised as rubrics →
course series → guides, and a guide can carry live JavaScript widgets in the
middle of its prose.
The demo is built on nothing but taiga, and every guide on it is about taiga — so
each mechanism runs on the very page that describes it. The page is its own proof.
**[Live demo →](https://justskiv.github.io/taiga/)**
<p align="center">
<img src="images/screenshot.png" alt="taiga — the demo site" width="100%" />
</p>
## Two binaries and you're done
`hugo` and `pagefind`. No Node, no npm, no CDN, no trackers, no build pipeline to
babysit. Vanilla JS bundled by Hugo's built-in esbuild, plain CSS, self-hosted
woff2 fonts, a static search index. That constraint is not an accident — it is the
whole design, and every feature below is built to live inside it.
## Features
- **Interactive widgets as content.** Drop `widgets/<id>/{widget.js, widget.css}`
next to a guide's `index.md` — one folder per widget, plus a `_shared/` folder
for code more than one of them needs — and the bundle is found, built and
loaded on that page only. One `{{< widget >}}` in the text mounts it,
`widgets/<id>/figure.html` supplies the no-JS view, and the `Taiga.widget`
runtime isolates failures so one broken widget never takes down its neighbours.
- **Charts and bars from data, not HTML.** A table between `{{< bars >}}` tags
draws bars; a table or a YAML file behind `{{< chart >}}` draws a line chart
with a Grafana-style reading panel (Observable Plot, loaded only where a chart
is, only as it scrolls near); `> [!stats]` over a list is a row of big numbers.
The Markdown stays readable anywhere, and every chart ships its data as a table.
- **A broken internal link fails the build.** A render hook checks every internal
link against real pages (`linkcheck = "error" | "warn"`).
- **Open Graph covers with no external service.** `images.Text` draws a cover per
guide at build time — backdrop, series kicker, title, minutes. Cover styles are
*folders* (`assets/og/<style>/`); a site adds or overrides one without forking.
- **Full-text search without a server.** Pagefind indexes the built site; ⌘K finds
terms *inside* articles, with stemming and a snippet, in the theme's own modal.
- **Series as a first-class mechanic.** A series is a folder inside its rubric —
that alone gives you a series landing page, the series panel, "part N of M"
kickers, and a bottom bridge scaled by reading time — all server-rendered from
one source of truth.
- **Server-side syntax highlighting.** Go is highlighted at build time (Chroma,
recoloured to the palette) with `hl_lines`. No client-side highlighter, no flash.
- **Palettes are data.** Each of the seven palettes is one `data/themes/<id>.toml`
file; a site adds its own with a single file and it appears in the CSS and in the
theme picker. Dark, grey and light ship in the box.
- **Bilingual, and the demo proves it.** English and Russian ship as UI strings,
dates and JS strings; the language switcher appears by itself once a site has a
second language. Adding a third is content + config + one i18n file — no template
edits.
## Requirements
| | |
|---|---|
| **Hugo** | ≥ 0.146 (developed against v0.154.x). The `extended` build is **not** required — this is a plain-CSS theme. |
| **[Pagefind](https://pagefind.app/)** | For search. A second build step, and still no Node. |
## Install
Pick one.
**Hugo Module** (recommended). Add the import to your site config — with a module
import you do **not** also set `theme`:
```toml
[module]
[[module.imports]]
path = "github.com/justskiv/taiga"
```
Then `hugo mod get -u`.
**Git submodule.** Add it under `themes/`, then set `theme = "taiga"`:
```sh
git submodule add https://github.com/justskiv/taiga.git themes/taiga
```
**Copy.** Clone or download into `themes/taiga`, then set `theme = "taiga"`.
## Quick start
```sh
hugo new site mysite && cd mysite
# install the theme by one of the methods above, then:
hugo new content howto/get-started --kind guides
hugo server
```
To run the bundled demo from a clone of this repo:
```sh
hugo server -s exampleSite --themesDir ../..
```
For the full build, with search:
```sh
hugo -s exampleSite --themesDir ../.. --gc --minify
pagefind --site exampleSite/public
```
## Documentation
| | |
|---|---|
| [docs/params.md](docs/params.md) | Every parameter, with defaults. |
| [docs/authoring.md](docs/authoring.md) | Writing a guide: front matter, shortcodes, code, diagrams, widgets. |
| [docs/customizing.md](docs/customizing.md) | Restyling without a fork: params, `custom.css`, palettes, hooks, partials. |
| [docs/i18n.md](docs/i18n.md) | Adding a language. |
Russian mirrors live in [`docs/ru/`](docs/ru/). The commented
[`exampleSite/hugo.toml`](exampleSite/hugo.toml) is a second, copy-ready reference
config — every key in it is annotated.
## License
MIT — see [LICENSE](LICENSE). The bundled fonts (Inter, JetBrains Mono) are under
the SIL Open Font License; see the `.txt` files beside them in `assets/fonts/`.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

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

hugo-book
Hugo Book 是一个面向文档场景的 Hugo 主题,定位很直接:把文档站点做得像一本朴素的书。
Hugo · 文档

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

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

docsy
Hugo theme for open source documentation
Hugo · 文档

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