簡體   English   中英

在RMarkdown中將CSS類添加到單個代碼塊中

[英]Add a CSS class to single code chunks in RMarkdown

是否可以將CSS類添加到某個代碼塊?

假設以下文件:

---
title: "Untitled"
output: html_document
---


```{r cars}
summary(cars)
```

我想給標記為'cars'的塊一個CSS類,例如.myClass 有沒有可能像

```{r cars} {.myClass}
summary(cars)
```

或者? 我知道黑客喜歡將整個塊包裝在另一個<div> 我對一個直接的解決方案感興趣。

編輯:此功能是在knitr v.1.16(05/18/17)中引入的
class.sourceclass.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是否有更直接的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM