Post

Chirpy 主题使用指南

全面介绍 Jekyll Chirpy 主题的安装、写文章规范、Markdown 与 Kramdown 扩展语法,以及常用配置,是其他文章的参考模版。

Chirpy 主题使用指南

Chirpy 是面向技术写作的 Jekyll 主题,默认支持目录、暗色模式、数学公式、Mermaid、脚注与社交分享等。官方用一篇「文字与排版」文章集中演示这些能力,在线版见 Text and Typography,源码在主题的 _posts/2019-08-08-text-and-typography.md

本仓库已在 Gemfile 中通过 jekyll-theme-chirpy 使用该主题(当前锁定版本与官方仓库 README 中的安装说明一致)。下面说明如何从零搭站、如何写文章,以及常用 Markdown 与 Kramdown 扩展写法;细节与完整示例仍以官方演示文为准。

资源链接

说明 链接
主题仓库 cotes2020/jekyll-theme-chirpy
快速开始 / 配置说明 仓库内 README 与 Wiki
排版与语法演示(网页) chirpy.cotes.page — Text and Typography
演示文 Markdown 源码 同上仓库中 text-and-typography 对应 post 文件
如何写文章(Front Matter、媒体、内嵌等) Writing a New Post

新建站点与本地预览

推荐使用官方维护的 Starter,减少手工对齐目录与配置的成本:

  1. 使用 GitHub 上的 chirpy-starter 生成仓库(Use this template),或按该仓库 README 克隆后安装依赖。
  2. 在项目根目录执行 bundle install,再执行 bundle exec jekyll serve(或本仓库提供的 ./optools start 等脚本)本地预览。

已有 Jekyll 站点若要换成 Chirpy,需按主题 README 调整 _config.yml、目录结构(如 _tabs、资源路径)与插件列表;步骤以官方文档为准,升级大版本前请阅读主题的 Release notes

命名与存放路径

  • 在站点根目录的 _posts/ 下新建文件,文件名形如 YYYY-MM-DD-TITLE.EXTENSION
  • 扩展名只能是 mdmarkdown
  • 想少敲样板命令时,可用 Jekyll-Compose 等插件生成 post 骨架(见 Writing a New Post — Naming and Path)。

文章 Front Matter

Chirpy 默认把文章的 layout 设为 postFront Matter 里可以不写 layout;写上 layout: post 也合法,与官方说明一致。

每篇文章顶部使用 YAML。下面字段与 Writing a New Post 及官方演示文对齐:

--- title: "文章标题" date: 2026-03-21 12:00:00 +0800 # 建议带时区 +/-TTTT,与 _config.yml 的 timezone 配合 description: "摘要;用于 SEO、列表、Further Reading、RSS;也会显示在标题下方" categories: [大类, 子类] # 最多两个层级;也可单个字符串 tags: [标签一, 标签二] # 数量任意;官方建议标签名小写 # 可选 toc: false # 关闭本页右侧目录(全站默认见 _config.yml 的 toc) comments: false # 关闭本页评论(全站见 comments.provider) author: author_id # 或 authors: [id1, id2];见下文「作者」 pin: true # 置顶;多篇置顶时按发布日期倒序 math: true mermaid: true media_subpath: /path/to/media/ # 本页资源路径前缀,可与 site.cdn 组合 image: # 顶部预览图;也可简写为 image: /path/to/cover.png path: /path/to/cover.png alt: 封面说明 lqip: /path/to/lqip-or-base64 # 可选:低质量占位图 ---

日期与时区:除在 _config.yml 配置 timezone 外,建议在每篇文章的 date 里写出时区(如 +0800),便于准确记录发布时间。

分类与标签categories 设计上最多两个元素(如 [Animal, Insect]);tags 可以为空到任意多个。

作者:默认取自 _config.ymlsocial.namesocial.links 首项。若要按文章指定作者,可在 _data/authors.yml 中定义条目(nametwitterurl 等),再在 Front Matter 里写 author: <id>authors: [id1, id2]。这样页面可带上 twitter:creator 等 meta,利于 Twitter Card 与 SEO。

描述 description:不写则首页列表、Further Reading、RSS 等会用正文开头自动生成;写了则统一用你提供的摘要,并显示在文章标题下方。

目录 TOC:全站默认在 _config.ymltoc;单篇关闭用 toc: false

评论:全站启用某提供商后,单篇可用 comments: false 关闭。

  • 仅当文中含 数学公式 时设 math: true;含 ** ``mermaid ** 代码块时设 mermaid: true`,避免全站不必要的脚本加载。
  • categoriestags 会参与归档与分类页(需主题与 jekyll-archives 等配置配合,与本仓库 _config.ymljekyll-archives 段一致)。

MathJax 配置:自 Chirpy v7.0.0 起,MathJax 选项在 assets/js/data/mathjax.js;若用 chirpy-starter 建站,可从 gem 安装目录拷贝该文件到仓库(bundle info --path jekyll-theme-chirpy)。

Markdown 与主题扩展

下列写法摘自主题官方演示,可直接复制到文章中试用(更多变体见 Text and Typography 源码)。

提示块(Prompt)

在引用块后接 Kramdown 属性,类型为 tip / info / warning / danger

> 这是一条提示。 {: .prompt-tip } > 这是一条信息。 {: .prompt-info } > 这是一条警告。 {: .prompt-warning } > 这是一条危险/重要提醒。 {: .prompt-danger }

行内「文件路径」样式

编辑 `config.yml`{: .filepath} 以修改站点配置。

代码块:语言高亮与文件名

主题推荐使用 围栏代码块 ``语言 ),**不要用** Jekyll 自带的 **highlight / endhighlight` 这一对 Liquid 标签**(即文档里那种带花括号的代码高亮指令;Liquid 会先于 Markdown 解析这些标签,且与 Chirpy 文档建议不一致;见 Writing a New Post — Code Block)。

默认除 plaintextconsoleterminal 外会显示行号。若要去掉行号,在代码块后加 {: .nolineno }

```shell echo 'No more line numbers!' ``` {: .nolineno }

若要为块标题显示「文件名」,在代码块一行使用 file=

```bash echo "hello" ``` {: file="scripts/hello.sh" }

文中若要展示 Liquid 源码,请用 Liquid 的 raw / endraw 标签整段包裹,或在 Front Matter 加 render_with_liquid: false(需 Jekyll 4+)。

数学公式(需 math: true

启用后(见 Writing a New Post — Mathematics):

  • 块级公式:用 $$ … $$,且 $$ 前后必须有空行
  • 编号公式$$\begin{equation}…\label{eq:foo}\end{equation}$$,文中用 \eqref{eq:foo} 引用。
  • 行内公式(段落中):$$ … $$与前后文字之间不要空行
  • 列表里的行内公式:第一个 $ 写成 \$$,例如 \$$ E=mc^2 $$

更完整的排版示例仍以 Text and Typography 为准。

Mermaid(需 mermaid: true

```mermaid flowchart LR A[开始] --> B[结束] ```

媒体 URL 前缀(CDN 与 media_subpath

  • 全站 CDN:在 _config.yml 设置 cdn: https://example.com,头像与文章资源 URL 会带上该域名。
  • 单篇前缀:Front Matter 设 media_subpath: /path/to/media/,与本页相关的资源可写相对该路径的文件名。
  • 最终地址形如:[site.cdn/][page.media_subpath/]file.ext,两者可单独或组合使用(见 Writing a New Post — Media)。

图片:题注、尺寸、位置、明暗与阴影

  • 题注:图片下一行写斜体,会显示为图片说明。
  • 宽高:避免布局抖动建议写尺寸,例如 ![说明](/path/to/img.png){: width="700" height="400" };v5+ 可用缩写 w / h。SVG 至少要指定 width,否则可能不渲染。
  • 位置:默认居中;可用 {: .normal }(偏左对齐)、{: .left }{: .right } 浮动。官方说明:一旦指定位置,不要再加题注
  • 明暗:准备两张图时,分别加 {: .light }{: .dark },随主题切换。
  • 阴影:窗口截图等可用 {: .shadow }

文章顶部预览图(image

  • 推荐分辨率约 1200×630,宽高比约 1.91 : 1;不符合时会被缩放裁剪。
  • 复杂写法:image.path + image.alt;若已设 media_subpathpath 可只写文件名。
  • 简单写法:image: /path/to/image
  • LQIP:预览图可在 image.lqip 写占位图路径或 base64;正文内图片也可用 {: lqip="/path/to/file" }(参见官方「Text and Typography」预览图示例)。

更多变体仍以 Text and TypographyWriting a New Post — Images 为准。

脚注

正文中的引用[^fn1]。 [^fn1]: 脚注内容。

本仓库 _config.ymlkramdown.footnote_backlink 可自定义返回正文符号样式。

交叉引用(锚点与内部链接)

Kramdown 支持为标题或任意位置定义锚点,实现同一文章内部或跨文章的引用。

定义锚点

在目标标题后添加 {#anchor-id}

## 我的章节标题 {: #my-section }

同一文章内部引用

跳转到[我的章节标题](#my-section)

跨文章引用

使用 Jekyll 的 post_url 标签(需加 relative_url 或裸 post_url):

跳转到 [另一篇文章的章节]({% post_url 2026-02-28-minimax-in-action %}#在-openclaw-中使用-minimax-m2-5)

post_url 会自动生成文章的绝对路径,再拼接 #锚点 即可定位到目标章节。)

注意事项

  • 锚点 ID 应使用英文不含空格(空格会被转为连字符 -),建议全小写。
  • 链接中的锚点部分需与定义的 ID 匹配(连字符规则 Kramdown 会自动处理)。
  • 若不确定目标文章的 URL 格式,优先使用 post_url 方式,而非手写相对路径。

内嵌社交平台音视频

统一形式为:include 主题的 embed/<platform>.html,并传入 id='<ID>'<platform> 为小写平台名)。示例(YouTube):

{% include embed/youtube.html id='H-B46URT4mg' %}

常见对应关系(摘自 Writing a New Post — Social Media Platforms):

示例 URL Platform ID
youtube.com/watch?v=… youtube 视频 ID
twitch.tv/videos/… twitch 视频数字 ID
bilibili.com/video/… bilibili BV…
Spotify 曲目链接 spotify 曲目 ID

Spotify 还可加 compact=1(紧凑播放器)、dark=1(深色)。

内嵌本地视频 / 音频文件

{% include embed/video.html src='/path/to/video.mp4' %} {% include embed/audio.html src='/path/to/audio.mp3' %}
  • 视频 可选参数:postertitleautoplayloopmutedtypes(同目录下其它格式,用 | 分隔,如 ogg|mov)。
  • 音频 可选参数:titletypes(如 ogg|wav|aac)。

完整属性列表见 Writing a New Post — Video Files / Audio Files

标题与目录

若不希望某标题出现在侧边目录中,可为该标题添加属性,例如:

## 附录 {: data-toc-skip='' }

(与官方演示文中对标题的写法一致。)

站点级配置(_config.yml

与本主题相关的常见项包括:

  • theme: jekyll-theme-chirpy(或通过 remote_theme 引入)。
  • cdn:媒体与头像等资源的 URL 前缀(与单篇 media_subpath 组合方式见上文)。
  • toc:是否默认开启文章目录。
  • theme_mode:浅色 / 深色 / 跟随系统(空字符串常表示跟随主题默认逻辑,以当前版本文档为准)。
  • comments:Disqus、Utterances、giscus 等,填好对应字段后启用。
  • analytics:各统计平台 id 或配置块。

修改主题默认值时,仍建议将自定义样式与脚本放在站点目录(如 assets_sass)中覆盖主题文件,而不是直接改 gem 内文件,便于升级。

小结

This post is licensed under CC BY 4.0 by the author.
Share