简码
什么是简码
Hugo 喜欢 Markdown,因为它内容格式简单,但有时 Markdown 会有不足之处。通常,内容作者会被迫向 Markdown 内容添加原始 HTML(例如,视频 <iframe>
)。我们认为这与 Markdown 语法的简洁性相矛盾。
Hugo 创建了 简码 来规避这些限制。
简码是内容文件中的一个简单代码片段,Hugo 将使用预定义的模板来渲染它。请注意,简码在模板文件中不起作用。如果您需要简码提供的嵌入式功能,但在模板中需要,那么您很可能需要一个 局部模板。
除了更简洁的 Markdown 外,简码还可以随时更新以反映新的类、技术或标准。在站点生成时,Hugo 简码会轻松合并您的更改。您可以避免可能复杂的搜索和替换操作。
使用简码
在您的内容文件中,可以通过调用 {{% shortcodename arguments %}}
来调用简码。简码参数以空格分隔,并且内部有空格的参数必须用引号括起来。
简码声明中的第一个词始终是简码的名称。参数紧随其后。根据简码的定义方式,参数可以是命名的、位置的或两者兼而有之,尽管您不能在单个调用中混合参数类型。命名参数的格式模仿 HTML 的格式,格式为 name="value"
。
某些简码使用或需要闭合简码。同样类似于 HTML,开闭简码匹配(仅限名称),闭合声明前面有一个斜杠。
以下是两个配对简码的示例
{{% mdshortcode %}}Stuff to `process` in the *center*.{{% /mdshortcode %}}
{{< highlight go >}} A bunch of code here {{< /highlight >}}
上面的示例使用了两个不同的分隔符,区别在于第一个是 %
字符,第二个是 <>
字符。
带有原始字符串参数的简码
您可以使用原始字符串文字将多行作为参数传递给简码
{{< myshortcode `This is some <b>HTML</b>,
and a new line with a "quoted string".` >}}
带有 Markdown 的简码
当发送到内容渲染器时,使用 %
作为最外层分隔符的简码将被完全渲染。这意味着来自简码的渲染输出可以是页面目录、脚注等的一部分。
没有 Markdown 的简码
<
字符表示简码的内部内容不需要进一步渲染。通常,没有 Markdown 的简码包括内部 HTML
{{< myshortcode >}}<p>Hello <strong>World!</strong></p>{{< /myshortcode >}}
嵌套简码
您可以通过创建利用 .Parent
方法的自己的模板在其他简码中调用简码。.Parent
允许您检查调用简码的上下文。请参阅 简码模板。
嵌入式简码
请参阅 简码 部分。
隐私配置
要了解如何配置您的 Hugo 站点以符合新的欧盟隐私法规,请参阅 隐私保护。
创建自定义简码
要了解有关创建自定义简码的更多信息,请参阅 简码模板文档。