编辑:此功能是在knitr v.1.16中引入的(05/18/17)
class.source
和class.output
选项向源代码块和输出块应用附加的HTML类(请参见knitr文档)。
要向源代码块添加myClass
:
```{r cars, class.source='myClass'}
summary(cars)
```
前面的回答启发了 class.source
选项 (参见这里)
您可以使用 fenced_code_attributes
pandoc 扩展添加类 (旨在向 <pre>
标签添加属性,参见这里) 和一个 knitr
输出钩子。
以下示例可正常工作:
---
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
。