跳转到主要内容

卡片

用带 {.cards} 的链接列表排出导航卡片网格;需要图标、徽章、图片时改用 shortcode。

卡片(Cards)是一组并列的链接:每张卡片一个链接标题加一句描述,网格随容器宽度自适应。适合栏目首页、「接下来读什么」与几条并列路径的入口。不适合排版正文段落(用普通段落)或做图片墙(用画廊)。

最简例子

{.cards} 的链接列表就是卡片。链接是标题, 之后是描述。

源码
- [快速上手](/zh/docs/start/) — 克隆这个文档站,删掉不需要的页面,替换为你的站点信息。
- [创作内容](/zh/docs/write/) — 页面怎么组织、front matter 有哪些键。
- [定制站点](/zh/docs/customize/) — 导航、搜索、品牌、多语言。
{.cards}
  • 快速上手 — 克隆这个文档站,删掉不需要的页面,替换为你的站点信息。
  • 创作内容 — 页面怎么组织、front matter 有哪些键。
  • 定制站点 — 导航、搜索、品牌、多语言。

整张卡片是点击热区,不只是标题文字。没有 columns 参数:列数由容器宽度决定,窄屏收成一列。

只有标题的卡片

描述可以省略。一行一个链接,{.cards} 收尾。

源码
- [提示块](/zh/docs/components/callout/)
- [标签页](/zh/docs/components/tabs/)
- [步骤](/zh/docs/components/steps/)
- [参数表](/zh/docs/components/fields/)
{.cards}

松散列表与多段描述

一句话装不下时改用松散列表:链接单独一段,描述另起一段,列表项之间空一行。标题独占一行,描述在标题下方。{.cards} 仍然紧贴最后一段,中间 不能有空行

源码
- [页面参数](/zh/docs/write/frontmatter/)

  每个页面参数在这里有唯一定义:类型、默认值、取值范围,以及讲它的那一页。

- [配置总览](/zh/docs/customize/config/)

  站点参数按功能分组,同样每行反向链接到讲它的指南页。
{.cards}
  • 页面参数

    每个页面参数在这里有唯一定义:类型、默认值、取值范围,以及讲它的那一页。

  • 配置总览

    站点参数按功能分组,同样每行反向链接到讲它的指南页。

图标与徽章

链接列表不支持图标、徽章、图片与多段描述,这些用 cards / card shortcode。icon 是恰好一对 Font Awesome class,badge 是一段纯文本。

源码
{{< cards >}}
{{< card title="快速上手" link="/zh/docs/start/" icon="fa-solid fa-rocket" badge="从这里开始" >}}
Fork 文档站本身,十分钟内完成本地预览。
{{< /card >}}
{{< card title="发布与下载页" link="/zh/docs/write/releases/" icon="fa-solid fa-box-open" badge="v0.5" >}}
`release` 事实记录 + 资产表 + 校验和,全部本地生成。
{{< /card >}}
{{< card title="键盘导航" link="/zh/docs/customize/keyboard/" icon="fa-solid fa-keyboard" >}}
全站快捷键与焦点顺序。
{{< /card >}}
{{< /cards >}}
快速上手从这里开始

Fork 文档站本身,十分钟内完成本地预览。

release 事实记录 + 资产表 + 校验和,全部本地生成。

图标格式不符(不是 fa-solid fa-xxx 这样的一对 class)时构建失败,不会静默丢弃。

Markdown 正文

card 的正文按页面级 Markdown 渲染:行内代码、强调、链接、列表都可以。titlebadge 这些参数是纯文本,不解析 Markdown。

源码
{{< cards >}}
{{< card title="Hugo Module" icon="fa-brands fa-golang" >}}
`hugo mod get github.com/pgsty/oink`。推荐方式,升级只需改一行版本号。
{{< /card >}}
{{< card title="Git Submodule" icon="fa-solid fa-code-branch" >}}
无需安装 Go:

- `git submodule add`
- 主题落在 `themes/oink`
{{< /card >}}
{{< /cards >}}
Hugo Module

hugo mod get github.com/pgsty/oink。推荐方式,升级只需改一行版本号。

Git Submodule

无需安装 Go:

  • git submodule add
  • 主题落在 themes/oink

不写 link 的卡片渲染成加粗标题,不生成链接。

带图片的卡片

image![alt](src) 的解析顺序一致:页面资源 → 全局资源 assets/ → 静态路径 /images/… → 远程 URL。本地资源带上固有尺寸,避免加载跳版。

image 必须配一个替代文字来源:image_alt="…"(有信息的图)或 decorative=true(纯装饰)。两个都写、两个都不写都会构建失败。

源码
{{< cards >}}
{{< card title="OINK 文档外壳" link="/zh/docs/about/features/" image="images/content-primitives/oink.webp" image_alt="OINK 文档页面:侧栏、正文与目录三栏" >}}
侧栏、正文、目录,三栏可以单独关闭。
{{< /card >}}
{{< card title="发布说明" link="/zh/docs/write/releases/" image="/images/releasenote.webp" decorative=true >}}
装饰性封面:`decorative=true` 输出空 alt,读屏器会跳过它。
{{< /card >}}
{{< /cards >}}

装饰性封面:decorative=true 输出空 alt,读屏器会跳过它。

卡片图片不参与图片缩放,整张卡片本身已经是链接。

栏目首页的自动卡片

栏目首页(_index.md)不需要手写卡片列表:主题读子页的 titledescriptionicon 自动生成一组卡片。本站在 hugo.yml 中全局启用:

hugo.yml
params:
  ui:
    section_index: cards # list | cards

单个栏目可以在自己的 front matter 里覆盖,也可以用 cascade 把选择推给整棵子树:

content/docs/customize/_index.zh.md
section_index: list

自动卡片与手写卡片使用同一套 td-content-card 样式,区别只在数据来源。栏目首页不要手写子页清单:手写清单会与侧栏不同步。要排的内容不是本栏目的子页时(例如混合站外链接、跨栏目推荐),才在正文里手写卡片。相关键的完整定义见配置总览

两种形态的选择

你要的 用哪种
一句话描述的链接网格 {.cards} 链接列表
图标、徽章、图片 cards / card shortcode
描述里要列表、代码、多段 cards / card shortcode
没有链接的卡片 cards / card shortcode
本栏目的子页 什么都不写,靠 section_index: cards

链接列表在 GitHub 上仍是一个链接列表,shortcode 不是。能用原生形态时用原生形态。

输出形态

输出 呈现
HTML 原生形态是 <ul class="cards">;shortcode 形态是 <div class="td-content-cards"> + 每张 <article class="td-content-card">。两者都是纯 CSS 网格,不加载脚本
打印 原生形态竖排,shortcode 形态收成两列;两者的单张卡片都避免跨页断开
Markdown 原生形态原样输出链接列表;shortcode 形态输出 - [标题](链接) (徽章) — 描述
RSS 与 HTML 同样的标记(没有站点 CSS 时是一份可读的链接清单)

参数参考

原生形态:

{.cards} , 列表属性行 , default
写在无序列表 之后 的一行;只对无序列表生效
列表项首个链接 , Markdown 链接 , default
卡片标题,同时是整张卡片的点击目标
其余内容 , Markdown , default
描述。紧凑列表里跟在 后面,松散列表里另起一段

card 的参数(cards 自身不接受任何参数):

title , 纯文本 , default
必填,非空。卡片标题
icon , Font Awesome class 对 , default
例如 fa-solid fa-rocket;格式不符构建失败
badge , 纯文本 , default
标题右侧的小标签
image , 图片来源 , default
页面资源 / 全局资源 / 静态路径 / 远程 URL
image_alt , 纯文本 , default
image 时与 decorative 二选一
decorative , 布尔 , defaultfalse
true 表示装饰图,输出空 alt
正文 , Markdown , default
卡片描述

没有 colscolumnsaccentdesccolor 参数;未知参数一律构建失败。

限制与常见问题

  • {.cards} 只认无序列表:有序列表加了这个标记不会变成卡片。
  • {.cards} 必须紧贴列表:中间空一行、或缩进进列表项,标记被静默丢弃,构建不报错,列表仍是列表。渲染结果不是卡片时先检查这一行。
  • card 只能待在 cards 里:单独使用、或放进别的 shortcode,构建失败并指出位置。
  • 列数不可配:网格按容器宽度自适应,只有栏目首页的自动卡片能用 params.ui.section_index_columns 指定列数。
  • 卡片不放长文:描述超过两行时改用正文段落或提示块