RenderShortcodes
Syntax
PAGE.RenderShortcodes
Returns
template.HTML
在短代码模板中使用此方法可以从多个内容文件组合页面,同时保留脚注和目录的全局上下文。
例如:
layouts/shortcodes/include.html
{{ $p := site.GetPage (.Get 0) }}
{{ $p.RenderShortcodes }}
然后在您的 markdown 中:
content/about.md
{{% include "/snippets/services.md" %}}
{{% include "/snippets/values.md" %}}
{{% include "/snippets/leadership.md" %}}
每个包含的 markdown 文件都可以包含其他短代码的调用。
短代码表示法
在上面的示例中,重要的是理解调用短代码时使用的两个分隔符之间的区别:
{{< myshortcode >}}
告诉 Hugo 渲染的短代码不需要进一步处理。例如,短代码内容为 HTML。{{% myshortcode %}}
告诉 Hugo 渲染的短代码需要进一步处理。例如,短代码内容为 markdown。
在上述"include"的短代码中使用后者。
进一步解释
要了解RenderShortcodes
方法返回的内容,请考虑以下内容文件
content/about.md
+++
title = 'About'
date = 2023-10-07T12:28:33-07:00
+++
{{< ref "privacy" >}}
一个 *强调的* 单词。
使用以下模板代码:
{{ $p := site.GetPage "/about" }}
{{ $p.RenderShortcodes }}
Hugo 将渲染如下内容:
https://example.org/privacy/
一个 *强调的* 单词。
请注意,内容文件中的短代码已经被渲染,但周围的 markdown 内容被保留。