是否可以将CSS类添加到特定代码块?
假定以下文件:
--- title: "Untitled" output: html_document --- ```{r cars} summary(cars) ```
我想给标记为“ cars”的块提供特定的CSS类,例如.myClass。有没有可能
.myClass
```{r cars} {.myClass} summary(cars) ```
或者?我知道黑客喜欢将整个块包装在另一个<div>。我对直接解决方案感兴趣。
<div>
编辑:此功能是knitr v.1.16(05/18/17)中引入的,class.source并且class.output选项将其他HTML类应用于源和输出块请参阅[knitr文档。 要添加myClass到源块:
class.source
class.output
myClass
```{r cars, class.source='myClass'} summary(cars) ```
启发这些class.source选项的先前答案 您可以使用fenced_code_attributespandoc的扩展名(用于向<pre>标签添加属性,请参见此处)和一个knitr 输出hook添加类。
fenced_code_attributes
<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文档如下所示:
.Rmd
HTML
<pre class="r myClass1 myClass2"> <code> summary(cars) </code> </pre>
该fenced_code_attributes扩展是默认启用:在标准情况下,你并不需要包括线md_extensions: +fenced_code_attributes在你的YAML头。
md_extensions: +fenced_code_attributes
YAML
我不知道是否使用更加直接的解决方案knitr。