.Rmarkdown to .markdown:使用{{<figure>}}短代码代替<img> HTML

com*_*cho 2 r knitr r-markdown hugo blogdown

我一直在考虑将blogdown用于我现有的Hugo博客,我想我已将其缩小到一个缺点.我正在使用.Rmarkdown文件扩展名,因为我想使用Blackfriday降价处理器来利用Hugo功能.

其中包括我添加到我的主题中的自定义,它使用嵌入了内置短代码的任何图像使用PhotoSwipe使它们在点击时出现在灯箱中.我已经做到这一点,任何使用{{<figure>}}短代码的东西都可以做到这一点.

有没有可能通过blogdown或knitr(假设knitr是渲染Rmarkdown过程的一部分)来定制绘图的输出,以便它们包含在短代码而不是HTML标签中?我认为甚至可以用Go/Blackfriday来做这个,如果我至少可以在Markdown中格式化图表![](/path/to/img.jpg),如果这样会更容易.

Yih*_*Xie 5

有两种方法:要么重新定义knitrplot钩子(需要更多关于knitr的知识),要么使用以下技巧:

```{r cars-plot, fig.show='hide'}
plot(cars)
```

{{< figure src="`r knitr::fig_chunk('cars-plot', 'png')`" >}}
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,绘图生成但隐藏在块输出中(fig.show='hide';如果要隐藏整个代码块,请使用include=FALSE).然后通过函数检索其路径knitr::fig_chunk()并插入figure短代码中.