我写了一个简短的代码来创建一个 Bootstrap 可解除的警报框。下面是我的代码,叫做layouts/shortcodes/message.html
。
<div class="alert alert-{{.Get 0}} alert-dismissible fade show" role="alert">
{{.Inner}}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
这就是我如何从我的内容markdown文件调用:
{{% message warning%}}
This can cause build errors
{{% /message %}}
但是,在输出HTML中,会生成以下代码:
<!-- raw HTML omitted -->
<p>This can cause build errors</p>
<!-- raw HTML omitted -->
我不明白这是怎么回事。我已经创建了其他短码(不使用.Inner虽然,这是我的第一次尝试),他们工作得很好eidogg。我为像pinterest这样的图像网格创建了一个短代码,它最多接受10个图像URL并输出HTML。不知道为什么这个特定的。内部短代码失败。请帮帮我我的Hugo版本是v0.74.3/extended darwin/amd64
。
编辑
当我使用标签{{< >}}
而不是{{% %}}
时,它就可以工作了。但是我可能会在Inner Text中放一些markdown,因此我想使用{{% %}}
。
如果我理解正确的话,使用{{% %}}
将首先处理内部文本中的markdown,然后将其传递给短代码.Inner
。
2条答案
按热度按时间kse8i1jr1#
这是过去5天内在Newest 'hugo' Questions - Stack Overflow中最常被问到的问题!¹
在你的Hugo配置文件中,你需要告诉默认的Markdown渲染器,也就是Goldmark,渲染原始的HTML。如果你使用config.yaml,使用这个:
如果您使用config.toml,请使用以下命令:
我在我的网站www.example.com上写了这个http://www.ii.com/hugo-tips-fragments/#_markup。
nfzehxib2#
如果你想保持你的markdown渲染安全(例如如果你的网站上有客座作者,或者想阻止博客作者在他们的文章中添加javascript),那么你可以在你的短代码中使用
markdownify
函数,如下所示:然后在您的内容markdown文件中:
对我们来说,这似乎是最好和最简单的解决方案,因为它不需要我们修改全局配置。