Content summaries
您可以手動、在 front matter 中或自動定義摘要。手動摘要優先於 front matter 摘要,front matter 摘要優先於自動摘要。
查看下面的 比較表 以了解每種類型的摘要特徵。
手動摘要
使用 <!--more-->
分隔符來指示摘要的結束。Hugo 不會渲染該摘要分隔符。
content/example.md
+++
title: '範例'
date: 2024-05-26T09:10:33-07:00
+++
這是第一段。
<!--more-->
這是第二段。
當使用 Emacs Org Mode 內容格式 時,使用 # more
分隔符來指示摘要的結束。
Front matter 摘要
使用 front matter 定義摘要,這樣可以不依賴內容。
content/example.md
+++
title: '範例'
date: 2024-05-26T09:10:33-07:00
summary: '這個摘要獨立於內容。'
+++
這是第一段。
這是第二段。
自動摘要
如果您未手動或在 front matter 中定義摘要,Hugo 會根據站點配置中的 summaryLength
自動定義摘要。
content/example.md
+++
title: '範例'
date: 2024-05-26T09:10:33-07:00
+++
這是第一段。
這是第二段。
這是第三段。
例如,當 summaryLength
設為 7 時,自動摘要將為:
<p>這是第一段。</p>
<p>這是第二段。</p>
比較
每種類型的摘要有不同的特徵:
類型 | 優先順序 | 渲染 Markdown | 渲染短代碼 | 包裹單行為 <p> |
---|---|---|---|---|
手動 | 1 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
Front matter | 2 | :heavy_check_mark: | :x: | :x: |
自動 | 3 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
渲染
通過在模板中調用 Page
對象的 Summary
方法來渲染摘要。
{{ range site.RegularPages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
<div class="summary">
{{ .Summary }}
{{ if .Truncated }}
<a href="{{ .RelPermalink }}">更多 ...</a>
{{ end }}
</div>
{{ end }}
替代方法
您也可以不使用 Summary
方法,而是使用 strings.Truncate
函數來精確控制摘要長度。例如:
{{ range site.RegularPages }}
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
<div class="summary">
{{ .Content | strings.Truncate 42 }}
</div>
{{ end }}