Edit: questa funzione è stata introdotta nel knitr v.1.16 (05/18/17)
class.source
e class.output
opzioni si applicano le classi HTML aggiuntivi per sorgente e pezzi d'uscita (vedi knitr documentation).
Per aggiungere myClass
al pezzo fonte:
```{r cars, class.source='myClass'}
summary(cars)
```
risposta precedente che ha ispirato le opzioni class.source
(vedi here)
È possibile aggiungere una classe utilizzando l'estensione del fenced_code_attributes
del Pandoc (che ha lo scopo di aggiungere attributi al tag <pre>
, vedere here e uno knitr
output hook.
L'esempio seguente funziona bene:
---
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)
```
Dopo maglieria questo file .Rmd
, il documento HTML
assomiglia a questo:
<pre class="r myClass1 myClass2">
<code>
summary(cars)
</code>
</pre>
L'estensione fenced_code_attributes
è abilitato di default: in casi normali, non è necessario includere la riga md_extensions: +fenced_code_attributes
nell'intestazione YAML
.
Non so se c'è una soluzione più semplice che utilizza knitr
.