不能在 Blogdown 的 Rmd 文件中使用 Markdown 简码
Cannot use Markdown shortcodes in Blogdown's Rmd files
我正在使用 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"
,它仍然呈现完全相同的输出。这到底是怎么回事?
正如我在 the Github issue 中提到的,Hugo 改变了 {{% %}}
的行为。个人感觉是破损。在修复之前,我认为您唯一的选择是
将您的网站项目锁定到较低版本的 Hugo,例如
blogdown::install_hugo('0.54.0', force = TRUE)
如果您之前通过 Homebrew 安装了 Hugo,您最好将其卸载:brew remove hugo
.
或者在您的短代码中手动将 .Inner
转换为 Markdown:{{ .Inner | markdownify }}
。请注意,这种方法有一个潜在的风险:如果 Hugo 作者决定恢复 {{% %}}
短代码的行为,您将不得不删除 markdownify
.
我正在使用 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"
,它仍然呈现完全相同的输出。这到底是怎么回事?
正如我在 the Github issue 中提到的,Hugo 改变了 {{% %}}
的行为。个人感觉是破损。在修复之前,我认为您唯一的选择是
将您的网站项目锁定到较低版本的 Hugo,例如
blogdown::install_hugo('0.54.0', force = TRUE)
如果您之前通过 Homebrew 安装了 Hugo,您最好将其卸载:
brew remove hugo
.或者在您的短代码中手动将
.Inner
转换为 Markdown:{{ .Inner | markdownify }}
。请注意,这种方法有一个潜在的风险:如果 Hugo 作者决定恢复{{% %}}
短代码的行为,您将不得不删除markdownify
.