内容摘要
使用.Summary
页面变量,Hugo可以生成内容摘要作为摘要视图中的简短版本。
摘要分割选项
- 自动摘要分割
- 手动摘要分割
- 前置摘要
在摘要中加入原始内容的链接是很自然的,常见的设计模式是将这个链接以“阅读更多…”按钮的形式展示。请参考.RelPermalink
、.Permalink
和.Truncated
页面变量。
自动摘要分割
默认情况下,Hugo自动提取你的内容的前70个单词作为摘要,并将其存储在.Summary
页面变量中供模板使用。你可以通过在站点配置中设置summaryLength
来自定义摘要长度。
手动摘要分割
或者,你可以在想要分割文章的地方添加<!--more-->摘要分割线。
对于Org模式的内容,请在想要分割文章的地方使用# more
。
出现在摘要分割线之前的内容将被用作该内容的摘要,并以保留所有HTML格式的方式存储在.Summary
页面变量中。
- 优点:
- 可自由、精确和改进渲染效果。所有的HTML标签和格式都将被保留。
- 缺点:
- 对于内容作者来说需要额外工作,因为他们需要记住在每个内容文件中输入<!--more-->(或对于org内容,是
# more
)。这可以通过在原型的元数据下方添加摘要分割线来自动完成。
前置摘要
你可能希望摘要不仅仅是文章开头的文本。在这种情况下,你可以在文章元数据的summary
变量中提供一个单独的摘要。
- 优点:
- 文章的摘要可以完全独立于内容而选择。摘要中可以使用标记语言。
- 缺点:
- 对于内容作者来说需要额外工作,因为他们需要编写一段完全独立于文章内容的文本作为摘要。
摘要选择顺序
由于存在多种指定摘要的方式,了解Hugo在决定.Summary
返回的文本时遵循的顺序是很有用的。它如下所示:
- 如果文章中存在<!--more-->摘要分割线,则根据手动摘要分割方法提供分割线之前的文本。
- 如果文章元数据中存在
summary
变量,则根据前置摘要方法提供该变量的值。 - 根据自动摘要分割方法提供文章开头的文本。
示例:显示单个分类下的前10篇文章及其摘要
你可以使用以下代码展示内容摘要。例如,你可以在一个[部分模板]中使用以下代码片段。
page-list-with-summaries.html
{{ range first 10 .Pages }}
<article>
<!-- 这个<div>包括标题摘要 -->
<div>
<h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
{{ .Summary }}
</div>
{{ if .Truncated }}
<!-- 这个<div>包括阅读更多链接,只有当摘要被截断时才显示... -->
<div>
<a href="{{ .RelPermalink }}">阅读更多…</a>
</div>
{{ end }}
</article>
{{ end }}
请注意,当内容没有被截断时,即摘要包含整篇文章时,.Truncated
布尔变量的值可以用来隐藏“阅读更多…”链接。