CONTENT MANAGEMENT

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 }}