我正在使用Blogdown。在我的post.Rmd
文件中,我需要使用一个简码:
This is me calling a **shortcode**:
`r blogdown::shortcode("mysc", .content = "Find **more** about this shortcode in [here](https://www.wikipedia.com).")`
如您所见,.content
是Markdown,不是纯文本。简码mysc.html
为:
<p class="sc">
{{ if .Inner }}
{{ .Inner }}
{{ end }}
</p>
如您所见,我使用blogdown::shortcode
是因为it is not possible to use shortcode syntax in Rmd files。
但是.content
中的Markdown并未转换为HTML,我将其作为输出得到:
<p>
Find **more** about this shortcode in [here](https://www.wikipedia.com).
</p>
我在做什么错了?
请注意,指定.type
无济于事:
`r blogdown::shortcode("mysc", .content = "...", .type = "markdown")`
也不必要,因为它默认为"markdown"
。如果我指定.type = "html"
,它仍然呈现相同的精确输出。到底是怎么回事?
答案 0 :(得分:1)
正如您在the Github issue中提到的那样,Hugo更改了{{% %}}
的行为。我个人认为这是一个破损。在修复之前,我认为您唯一的选择是
将您的网站项目锁定到较低版本的Hugo,例如
blogdown::install_hugo('0.54.0', force = TRUE)
如果您以前是通过Homebrew安装的Hugo,最好将其卸载:brew remove hugo
。
或手动将.Inner
转换为{{ .Inner | markdownify }}
。请注意,这种方法有潜在的风险:如果Hugo作者决定恢复{{% %}}
短代码的行为,则必须删除markdownify
。