短代码

details

用 details 短代码在正文中插入 HTML details 折叠元素。

details 短代码把一段内容包进 HTML 的 details 元素,折叠与展开由浏览器原生实现,不需要 JavaScript。自 Hugo 0.140.0 起可用。适合放置补充说明、较长的清单或常见问题等次要内容:默认只显示一行摘要,读者点击后才展开正文。

示例

正文里这样写:

{{< details summary="查看细节" >}}
这是一个 **粗体** 词。
{{< /details >}}

Hugo 渲染出这样的 HTML:

<details>
  <summary>查看细节</summary>
  <p>这是一个 <strong>粗体</strong> 词。</p>
</details>

summary 参数的值会先由 Markdown 渲染为 HTML,再放进子 summary 元素,因此摘要里同样可以使用 Markdown 标记。开闭标记之间的内容按普通 Markdown 渲染。

参数

参数名 类型 说明
summary string 子 summary 元素的内容,由 Markdown 渲染为 HTML。默认值为 Details。
open bool 是否在初始状态下展开 details 元素的内容。默认值为 false。
class string details 元素的 class 属性。
name string details 元素的 name 属性。
title string details 元素的 title 属性。

把 open 设为 true,可以让这段内容在页面载入时就处于展开状态:

{{< details summary="查看细节" open=true >}}
这是一个 **粗体** 词。
{{< /details >}}

样式

details 元素、summary 元素以及内容本身都可以用 CSS 定制:

/* 选中 details 元素 */
details { }

/* 选中 summary 元素 */
details > summary { }

/* 选中 summary 元素的子元素 */
details > summary > * { }

/* 选中内容 */
details > :not(summary) { }

折叠标记由浏览器自行绘制,各浏览器的默认外观并不一致,若全站需要统一效果,应显式设置 summary 的样式。