Hugo博客文档企业官网

taiga — Hugo 博客模板

作者 justskiv

taiga 是一个面向教学类站点的极简 Hugo 主题,用 rubric、课程系列和正文内嵌交互组件组织内容,不依赖 Node 或外部 CDN。

看看你的网站会是什么样

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

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

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

全部页面与视图 3

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

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

值得关注的模板亮点

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

01

交互组件以内容形式存在:guide 旁的 widgets/<id>/ 文件夹被自动发现、构建并只在该页加载,正文用 {{< widget >}} 挂载,figure.html 提供无 JS 视图

02

图表和条形图由数据生成:{{< bars >}} 包裹表格画条形,{{< chart >}} 用表格或 YAML 画折线图并带读数面板,> [!stats] 生成大数字行

03

内部链接由 render hook 校验,可设为 error 或 warn,断链可让构建失败

04

构建时用 images.Text 生成 Open Graph 封面,封面样式以 assets/og/<style>/ 文件夹形式提供,无需外部服务

05

Pagefind 为构建产物建立全文索引,⌘K 在主题自带弹窗中检索正文,支持词干匹配和摘要

06

系列作为一等机制: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 许可分开。

Hugo博客文档企业官网

适合你的项目吗?

适用场景

  • 编写带课程系列和 rubric 分类的教学类站点
  • 在教程正文中嵌入可交互的 JavaScript 组件、条形图、折线图或统计数字行
  • 需要构建时校验内部链接、避免发布断链的文档站点
  • 希望不引入 Node、npm、CDN 或跟踪脚本,仅用 Hugo 与 Pagefind 完成构建与搜索的站点
  • 需要英语与俄语双语界面,并计划通过内容、配置和 i18n 文件扩展更多语言的站点

适合人群

  • 以 guide 和课程系列为核心内容结构的学习平台
  • 接受 beta 状态、愿意固定提交版本并承担后续破坏性变更风险的 Hugo 用户
  • 偏好纯 CSS、自托管字体和静态搜索索引、不依赖 Node 工具链的开发者
  • 需要在正文中嵌入数据驱动图表或交互组件,同时保留无 JS 降级视图的教程作者

上手与定制指南

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

  1. 1

    要求 Hugo ≥ 0.146,不需要 extended 版本;搜索需要额外安装 Pagefind 并作为第二个构建步骤运行

  2. 2

    安装方式三选一:Hugo Module(推荐,配置 module.imports 后不要再设 theme)、Git submodule 或直接复制到 themes/taiga 并设置 theme = "taiga"

  3. 3

    运行仓库自带演示:hugo server -s exampleSite --themesDir ../..

  4. 4

    完整构建含搜索:hugo -s exampleSite --themesDir ../.. --gc --minify 后执行 pagefind --site exampleSite/public

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

The bundled fonts (Inter, JetBrains Mono) are under the SIL Open Font License

README 原文
https://github.com/justskiv/taiga/blob/main/LICENSEhttps://github.com/justskiv/taiga/blob/main/README.md

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">

[![Hugo](https://img.shields.io/static/v1?label=Hugo&message=v0.146.0%2B&color=FF4088&logo=hugo&logoColor=white)](https://github.com/gohugoio/hugo/releases)
[![Status](https://img.shields.io/badge/status-beta-orange)](#status)
[![No Node](https://img.shields.io/badge/node-not_required-3c3b38)](#requirements)
[![Telegram](https://img.shields.io/badge/Telegram-@ntuzov-blue?logo=telegram&logoColor=white)](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/`.
反馈内容错误

看看同类模板

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