编辑:此功能是在 knitr v.1.16 (05/18/17) 中引入的
class.source 和 class.output 选项将额外的 HTML 类应用于源和输出块(请参阅knitr documentation)。
将myClass 添加到源块:
```{r cars, class.source='myClass'}
summary(cars)
```
激发class.source 选项的先前答案(请参阅here)
您可以使用fenced_code_attributes pandoc 的扩展(旨在将属性添加到<pre> 标记,请参阅here)和knitr output hook 添加一个类。
以下示例运行良好:
---
title: "Untitled"
output:
html_document:
md_extensions: +fenced_code_attributes
---
```{r, include=FALSE}
knitr::knit_hooks$set(source = function(x, options) {
return(paste0(
"```{.r",
ifelse(is.null(options$class),
"",
paste0(" .", gsub(" ", " .", options$class))
),
"}\n",
x,
"\n```"
))
})
```
```{r cars, class="myClass1 myClass2"}
summary(cars)
```
编织此.Rmd 文件后,HTML 文件如下所示:
<pre class="r myClass1 myClass2">
<code>
summary(cars)
</code>
</pre>
fenced_code_attributes 扩展默认启用:在标准情况下,您不需要在 YAML 标头中包含行 md_extensions: +fenced_code_attributes。
我不知道是否有更直接的解决方案使用knitr。