基于 PaperMod,要求 Hugo Extended 0.166.0 或更高版本
hugo-theme-sigil — Hugo 启动器模板
作者 ouatis
基于 PaperMod 的 Hugo 文学主题,采用 IBM Plex 排版,提供 Tufte 式边注、圆形揭示暗色切换、全文 RSS 与 JSON Feed,并可按页面启用数学公式、Mermaid 图表和图片灯箱。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
目前有 1 张原始预览,可打开完整图片查看设计细节。
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
宽屏 Tufte 式边注,窄屏自动转为尾注
圆形揭示暗色模式切换与幽灵年归档索引
全文 RSS 与 JSON Feed 1.1 输出
数学公式、Mermaid 图表和图片灯箱按页面选择性加载
支持 llms.txt 和 llms-full.txt 输出,便于 AI 代理读取
模板详细介绍
Sigil 是一个面向 Hugo 的文学风格主题,基于 PaperMod 构建,强调克制的排版与阅读体验。它要求 Hugo Extended 0.166.0 或更高版本,因为 OG 卡片生成依赖扩展版中的 images.Text 功能。主题在宽屏上以 Tufte 风格边注呈现注释,窄屏则转为尾注;提供幽灵年归档索引、圆形揭示暗色模式切换、全文 RSS 与 JSON Feed 1.1。默认使用 IBM Plex 字体,并可选对中日韩文字进行子集化。
功能按需加载:数学公式(KaTeX)、Mermaid 图表和图片灯箱(glightbox)均需在页面 frontmatter 或站点配置中显式开启,未开启的页面不会加载相关资源。主题还支持搜索、分类法、面包屑、目录、代码复制按钮和多语言字符串。外部链接通过渲染钩子标记门形图标,不硬编码域名。
主题提供 llms.txt 和可选的 llms-full.txt 输出,便于 AI 代理读取站点索引。公共契约(参数名、sg-* 类名、输出格式、数据结构和扩展 partial)自 v0.9.0 起冻结,重命名需经过弃用窗口,移除需等待主版本。安装方式支持 git submodule 或 Hugo module,两种模式均在 CI 中验证。
字体子集化脚本支持 latin、corpus 和 full 三种模式:latin 仅含拉丁字符,CJK 回退到系统字体;corpus 额外扫描示例站点字符,生成约 30 KB 的简体中文子集;full 提供完整的简繁日文字形,约 3 MB。主题附带 47 种语言翻译,但多为机器完成,欢迎母语者修正。
适合你的项目吗?
适用场景
- 搭建以长文阅读为主的个人博客或文学站点
- 需要边注、尾注和归档索引的学术或评论类内容发布
- 希望为 AI 代理提供机器可读站点索引的 Hugo 站点
- 需要按页面启用数学公式或 Mermaid 图表的文档型博客
适合人群
- 使用 Hugo Extended 并偏好 PaperMod 生态的开发者
- 重视排版细节与阅读体验的内容创作者
- 需要多语言界面和 CJK 字体子集化的中文站点
- 希望按需加载前端资源、避免全局引入的站点
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需安装 Hugo Extended 0.166.0 或更高版本,普通版无法生成 OG 卡片
- 2
可通过 git submodule 或 Hugo module 两种方式安装,并在 hugo.toml 中设置 theme 或 module.imports
- 3
数学公式、Mermaid 和灯箱默认关闭,需在 frontmatter 或站点配置中显式开启
- 4
CJK 站点应运行 scripts/build-fonts.sh 生成字体子集,或通过 ogCardFont 指定支持中文的 TTF
- 5
示例站点可用 hugo server --themesDir ../.. 在 exampleSite 目录下预览
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 使用该主题必须安装 Hugo Extended 0.166.0 或更高版本,普通版 Hugo 无法生成 OG 卡片。
- 数学公式、Mermaid 图表和图片灯箱默认关闭,需在页面 frontmatter 或站点配置中显式开启,未开启的页面不会加载相关资源。
- Mermaid 图表从固定版本的 CDN 加载,启用该功能的页面需要外部网络访问。
- 启用分析功能需配置第三方统计服务(Plausible、Umami、GoatCounter 或 Fathom),可能涉及外部账户或服务费用。
- 内置拉丁字体无法绘制中日韩文字,CJK 站点需自行准备并指定支持中文的 TTF 字体文件。
- corpus 字体子集化模式仅支持 Shell 脚本,Python 脚本不支持该模式。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
**Requires [Hugo Extended](https://gohugo.io/installation/) ≥ 0.166.0** (the theme uses `images.Text` for OG cards, which needs the extended build).
README 原文
Opt-in per page: KaTeX math (vendored), Mermaid diagrams (pinned CDN), image lightbox (glightbox, vendored)
README 原文
Diagrams: Mermaid, MIT (loaded from a pinned CDN on pages that ask for it).
README 原文
`analytics.*` | hidden | Third-party stats, production only: `analytics.plausible.domain`, `analytics.umami` (`src` + `id`), `analytics.goatcounter.code`, `analytics.fathom.site`
README 原文
The bundled Latin font cannot draw CJK — CJK sites should subset a TTF for their titles and point this at it
README 原文
https://github.com/ouatis/hugo-theme-sigil/blob/main/LICENSEhttps://github.com/ouatis/hugo-theme-sigil/blob/main/README.md**Shell script only** — `scripts/build-fonts.py` covers `latin`/`full` but not `corpus`.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-10。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- Hugo Themes
- 资料与维护参考分
- 资料一般 · 71 / 100
- 技术栈
- Hugo
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-10
- 截图检查日期
- 2026-10-10
目前没有记录演示链接。请依据仓库说明在本地评估;仅凭截图无法确认交互行为。
目录记录的主要技术栈是 Hugo。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-10
查看当时使用的来源资料
SHA-256: 9ab592c4dc628b4b32f215ac93a2680ee152667dcf3324536cf5bec7ea4be9bf
2026-10-10T11:04:42.492Z
来源文件 / 仓库# hugo-theme-sigil
**English** | [中文](README.zh.md) | [日本語](README.ja.md)
<p>
<img src="https://img.shields.io/github/v/release/ouatis/hugo-theme-sigil?style=flat-square&label=version&color=ad3e32" alt="Latest release">
<img src="https://img.shields.io/github/downloads/ouatis/hugo-theme-sigil/total?style=flat-square&label=downloads&color=d0a85c" alt="Downloads">
<img src="https://img.shields.io/github/license/ouatis/hugo-theme-sigil?style=flat-square&label=license&color=2f6754" alt="MIT License">
</p>
A restrained literary theme for [Hugo](https://gohugo.io/), based on
[PaperMod](https://github.com/adityatelange/hugo-PaperMod).
Demo: <https://ouatis.com/hugo-theme-sigil/>

**Requires [Hugo Extended](https://gohugo.io/installation/) ≥ 0.166.0**
(the theme uses `images.Text` for OG cards, which needs the extended build).
> The version badge above reflects the latest **tagged release**; the
> [CHANGELOG](CHANGELOG.md) tracks every change up to the current `main`.
## Features
- Tufte-style sidenotes on wide screens, endnotes on narrow screens
- Ghost-year archive index
- Circular-reveal dark-mode toggle
- Full-text RSS
- IBM Plex typography with CJK font subsetting
- JSON Feed 1.1 (`/feed.json`, alongside RSS, generated at build)
- Search, taxonomies, breadcrumbs, TOC, code-copy buttons, and multilingual strings
- Opt-in per page: KaTeX math (vendored), Mermaid diagrams (pinned CDN), image lightbox (glightbox, vendored)
- Auto-generated OG card images from post titles (`images.Text`, build-time only)
- External links marked with a door glyph via a render hook (host-aware, no hardcoded domains)
- `llms.txt` (and optional `llms-full.txt`) — a machine-readable site index for AI agents
- Maintainers and agents: see [AGENTS.md](AGENTS.md) for build/verify commands and pitfalls; `scripts/check.sh` is the one-shot verification
## Install
As a git submodule:
```bash
git submodule add https://github.com/ouatis/hugo-theme-sigil themes/hugo-theme-sigil
```
```toml
# hugo.toml
theme = "hugo-theme-sigil"
```
Or as a [Hugo module](https://gohugo.io/hugo-modules/):
```bash
hugo mod init github.com/you/your-site # skip if the site already has go.mod
```
```toml
# hugo.toml
[module]
[[module.imports]]
path = "github.com/ouatis/hugo-theme-sigil"
```
Preview the example site:
```bash
git clone https://github.com/ouatis/hugo-theme-sigil
cd hugo-theme-sigil/exampleSite
hugo server --themesDir ../..
```
## Configuration
Common PaperMod options work as usual. Sigil-specific options:
| Parameter | Default | Purpose |
| --- | --- | --- |
| `sgKicker` | hidden | Text above the homepage title |
| `sgHomeTitle` | site title | Homepage title |
| `sgReading` / `sgListening` / `sgWatching` / `sgPlaying` / `sgWriting` / `sgExploring` / `sgMotto` | hidden | Homepage status line |
| `sgSealImage` | `∴` | Homepage seal image |
| `sgDaysInCage` | `false` | Status line day counter — "Day N in the Cage", counted from the earliest post |
| `ShowFullTextinRSS` | `false` | Include full articles in RSS |
| `ShowAllPagesInArchive` | `false` | Include all pages in archives |
| `homePageSize` | all | Homepage posts per page |
| `sgSeriesFrom` | hidden | Series navigation: points to a curation page whose body list defines the reading order; `sgSeriesTab` sets the tab label |
| `math` / `mermaid` / `lightbox` | `false` | Opt-in per page (frontmatter) or site-wide: KaTeX math, Mermaid diagrams, image lightbox. Nothing loads on pages that don't ask. `$$…$$` works out of the box; for inline `\(…\)` also enable goldmark passthrough as in [exampleSite/hugo.toml](exampleSite/hugo.toml) |
| `ogAutoCard` | `false` | Build-time 1200×630 OG card (title + site name on paper, ∴ mark) for pages without any cover/image |
| `ogCardFont` | built-in Plex Serif | `resources.Get` path to a TTF for OG cards. The bundled Latin font cannot draw CJK — CJK sites should subset a TTF for their titles and point this at it |
| `analytics.*` | hidden | Third-party stats, production only: `analytics.plausible.domain`, `analytics.umami` (`src` + `id`), `analytics.goatcounter.code`, `analytics.fathom.site` |
| `llmsTxtIntro` | hidden | Optional one-paragraph introduction inside `llms.txt` |
### Agent-readable output (llms.txt)
Add `LLMSTXT` (an index of pages and posts) and optionally `LLMSFULL` (the
same header, then every post's full text) to the home outputs:
```toml
[outputs]
home = ["HTML", "RSS", "JSONFeed", "LLMSTXT", "LLMSFULL"]
```
The key pages section detects About / Archives / taxonomies / RSS
automatically; override `layouts/home.llmstxt.txt` to curate it.
Frequently used inherited options include `defaultTheme`, `ShowToc`,
`TocOpen`, `ShowCodeCopyButtons`, `ShowBreadCrumbs`, `ShowReadingTime`,
`ShowWordCount`, `ShowPostNavLinks`, `showRelated`, and `socialIcons`.
See [exampleSite/hugo.toml](exampleSite/hugo.toml) for a complete example.
## Fonts
Font subsets (optional — the theme ships Latin and works out of the box):
```bash
bash scripts/build-fonts.sh corpus # or latin / full
```
- `latin` — Latin only; the bootstrap subset already committed to the repo
(CJK text falls back to system fonts). This is the clean-checkout default.
- `corpus` — additionally scans the example site's own characters and subsets
a small SC corpus so the demo's CJK renders in real Plex (~30 KB). **Shell
script only** — `scripts/build-fonts.py` covers `latin`/`full` but not
`corpus`.
- `full` — official SC + JP split shards (for CJK/JP sites that want full
coverage; ~3 MB on a text-heavy page)
## Performance
Measured on the example site, minified build:
- Homepage: ~78 KB total — 16 KB HTML + 57 KB CSS + 5 KB inline JS, **zero external JavaScript**
- Optional, opt-in only: search script 18 KB (search page), KaTeX 332 KB (`math = true`), GLightbox 56 KB (`lightbox = true`)
- Fonts: the demo runs the `corpus` pipeline, so its CJK renders in real Plex — ~104 KB first visit on a text-heavy page (Latin subsets + a small SC corpus). A `latin`-only site is ~85 KB (CJK falls back to system fonts). Sites needing full CJK/JP coverage run `full` (~3 MB, one file cached site-wide, `font-display: swap` covers the wait)
- No frameworks, no jQuery, no runtime CDN dependencies
## Stability
The public contract — parameter names, `sg-*` classes, output formats, data
shapes, extension partials — is **frozen as of v0.9.0**: renames require a
deprecation window and removals wait for a major release. The full contract
and deprecation policy live in [docs/api.md](docs/api.md). Both install modes
(submodule and Hugo module) are exercised in CI.
## Translations
The 47 bundled languages are largely machine-completed. Fixes from native
speakers are very welcome — open an issue or a PR touching `i18n/*.yaml`
only; new keys land in `en` first and fall back everywhere else.
## License
MIT. See [LICENSE](LICENSE).
Based on PaperMod. Fonts: IBM Plex, SIL OFL 1.1. Icons: Phosphor Icons, MIT.
Search: Fuse.js, Apache-2.0. Math: KaTeX, MIT (vendored). Lightbox: glightbox,
MIT (vendored). Diagrams: Mermaid, MIT (loaded from a pinned CDN on pages that
ask for it).
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

hugo-xmin
eXtremely Minimal Hugo theme: about 140 lines of code in total, including HTML and CSS (with no dependencies)
Hugo · 启动器

hugo-theme-gallery
Gallery Theme for Hugo
Hugo · 启动器

reveal-hugo
📽️ Create rich HTML-based presentations with Hugo and Reveal.js
Hugo · 启动器

anatole
Anatole is a minimalistic two-column theme for Hugo.
Hugo · 启动器

hugo-theme-diary
Moments piled up. A Hugo theme ported from SumiMakito/hexo-theme-Journal.
Hugo · 启动器

risotto
A minimalist, responsive hugo theme inspired by terminal ricing aesthetics.
Hugo · 启动器
