我有一个基于Blogdown的Jekyll网站,并使用从.Rmd到.md的knitr。我的Jekyll主题有一个辅助液体标签,用于添加图形和标题。这是签名:
{% include figure image_path="file.svg" alt="Lorem ipsum" caption="Dolor sic" %}
因此,我想更改plot的默认输出以自动具有该语法。
我已经设置了此钩子:
knitr::knit_hooks$set(figure = function(before, options, envir) {
if (!before) {
## after a chunk has been evaluated
name <- paste(options$fig.path, options$label, sep = '')
message(name)
return(sprintf("{%% include figure image_path=\"%s\" alt=\"%s\" caption=\"%s\" %%}", name, options$fig.alt, options$fig.cap))
}
})
但这是我进入.md文件的输出:
![A scatterplot of the cars data](assets/figures/cars-1.svg){% include figure image_path="assets/figures/cars" alt="Test" caption="A scatterplot of the cars data" %}
这里有两个问题:
我的自定义输出已添加到用于绘图的默认md输出中,但应该代替它(当然,该文件必须在磁盘上生成)
文件名。当然,“标签”不起作用,但是如何获取块的第一个图的文件名(当然,我知道它不适用于多个图,但我将避免使用它)