内部模板是 Hugo 自带的预构建、即用型模板,用于提供常见的网站功能。它们可以处理社交媒体集成、SEO 元数据、评论系统和分页等任务,而无需您从头开始实现这些功能。
与您在网站布局目录中创建的常规模板不同,内部模板嵌入在 Hugo 的源代码中,可以从您的任何模板中调用。
有关您可以在模板中使用的常规模板函数的详细信息,请参阅模板函数。
内部模板使用 template 动作调用,路径前缀为 _internal/。
来源: hugolib/template_test.go724-725
您可以通过在网站的 layouts/_internal/ 目录中创建同名文件来覆盖任何内部模板。Hugo 的模板查找系统将优先使用您的自定义模板而不是内置模板。
来源: hugolib/template_test.go718-731
Hugo 提供了三个主要的 SEO 相关内部模板
_internal/twitter_cards.html)生成 Twitter Cards 元数据标签,允许您将富媒体附加到链接到您内容的推文。
示例输出
_internal/opengraph.html)为您的页面添加 Open Graph 协议元数据,以便更好地与 Facebook 等社交媒体平台集成。
示例输出
_internal/schema.html)使用 Schema.org 词汇表添加结构化数据标记,以改善搜索引擎对您内容的理解和显示方式。
示例输出
来源: hugolib/embedded_templates_test.go20-96
SEO 模板在查找要包含在元数据中的图片时遵循特定的顺序
images 参数)featured-sunset.jpg)来源: hugolib/embedded_templates_test.go20-96
_internal/disqus.html)将 Disqus 评论集成到您的网站中。要使用它,请在您的站点配置中设置您的 Disqus 短名称。
用途
来源: docs/content/en/content-management/comments.md9-38
_internal/pagination.html)为 Hugo 中的内容列表提供标准化的分页方式。分页模板支持不同的格式
default:具有第一页、上一页、下一页和最后一页按钮的完整分页功能terse:更简单的分页格式,导航元素较少基本用法
使用自定义格式
默认格式的示例输出
来源: hugolib/embedded_templates_test.go98-135
内部模板通常期望上下文(在模板调用中通常作为 . 提供)是 Page 对象。这使得模板可以访问
一些模板,例如分页模板,可以接受作为字典传递的其他参数
来源: hugolib/embedded_templates_test.go127-134
内部模板是 Hugo 二进制文件自带的嵌入式 Go 模板。当您调用内部模板时,Hugo 会执行以下过程:
layouts/_internal/ 中该系统在便利性(使用预构建模板)和定制性(能够根据需要覆盖它们)之间取得了平衡。
来源: hugolib/template_test.go718-731
对标准功能使用内部模板:对于 SEO 元数据、评论和分页等常见功能,内部模板提供了经过充分测试的实现。
仅在必要时进行覆盖:仅当您需要与默认行为不同的功能时,才创建内部模板的自定义版本。
检查模板文档:一些内部模板具有可以在站点配置或 front matter 中设置的配置选项。
检查生成的输出:实现内部模板后,检查生成的 HTML 以确保其产生预期的输出。