r - 不能在 Blogdown 的 Rmd 文件中使用 Markdown 短代码
问题描述
我正在使用博客。在我的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
是因为无法在 Rmd 文件中使用简码语法。
问题
但是 Markdown.content
没有转换成 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"
。这到底是怎么回事?
解决方案
正如我在您引用的 Github 问题中提到的,Hugo 改变了{{% %}}
. 个人感觉是破绽。在修复之前,我认为您唯一的选择是
将您的网站项目锁定到较低版本的 Hugo,例如
blogdown::install_hugo('0.54.0', force = TRUE)
如果您之前通过 Homebrew 安装过 Hugo,最好将其卸载:
brew remove hugo
.或者在您的简码中手动转向
.Inner
Markdown{{ .Inner | markdownify }}
:. 请注意,这种方法存在潜在风险:如果 Hugo 作者决定恢复短代码的行为{{% %}}
,您将不得不删除markdownify
.
推荐阅读
- google-sheets - Google 表格矢量化操作
- java - 如何使用 JavaCompiler API 在 Maven 项目中包含内部依赖项?
- python - 在 Windows 上使用 Python 绑定和 CUDA、TBB 和 MPI 构建 VTK
- java - AWS 主题订阅:如何过滤要接收的消息?
- regex - 用于匹配关键字和最后出现的字符之间的字符串的正则表达式
- angular - Angular - 数字表单控件未在反应式表单中按预期进行验证
- data-migration - 将数据从一个 Riak 集群迁移到另一个
- javascript - 为什么使用包名从链接的本地 ES 模块包导入适用于“主”属性但因“模块”而失败
- r - 使用文本输入计算闪亮应用程序中另一个文本输入的值
- r - 使用 rclinicaltrials 包的问题