在RMarkdown中将CSS类添加到单个代码块中

是否可以将CSS类添加到特定代码块?

假定以下文件:

---

title: "Untitled"

output: html_document

---

```{r cars}

summary(cars)

```

我想给标记为“ cars”的块提供特定的CSS类,例如.myClass。有没有可能

```{r cars} {.myClass}

summary(cars)

```

或者?我知道黑客喜欢将整个块包装在另一个<div>。我对直接解决方案感兴趣。

回答:

class.source并且class.output选项将其他HTML类应用于源和输出块请参阅[knitr文档。 要添加myClass到源块:

```{r cars, class.source='myClass'}

summary(cars)

```


您可以使用fenced_code_attributespandoc的扩展名(用于向<pre>标签添加属性,请参见此处)和一个knitr

输出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扩展是默认启用:在标准情况下,你并不需要包括线md_extensions:

+fenced_code_attributes在你的YAML头。

我不知道是否使用更加直接的解决方案knitr

以上是 在RMarkdown中将CSS类添加到单个代码块中 的全部内容, 来源链接: utcz.com/qa/421485.html

回到顶部