R Markdown代码折叠不适用于bash,Python代码块

时间:2016-10-12 19:18:14

标签: python r bash markdown r-markdown

R Markdown现在可以选择在.Rmd文档中自动show or hide code chunks。但是,这似乎只适用于R代码块。

---
output: 
  html_document: 
    code_folding: hide
---

```{r}
print("This code chunk will be hidden")
```

```{r, engine='bash'}
echo "This code chunk will not be hidden"


```{r, engine='python'}
print "Will this code chunk be hidden?"
```

```{r}
system('uname -srv',intern=T)
sessionInfo()
```

Output

我能够提出的唯一解决方案是隐藏空白标签后面的代码

---
output: 
  html_document: 
    code_folding: hide
---

```{r}
print("This code chunk will be hidden")
```

# Source code {.tabset .tabset-pills}

## Hide Code

## Show Code

```{r, engine='bash'}
echo "This code chunk will not be hidden"
```

```{r, engine='python'}
print "Will this code chunk be hidden?"
```

```{r}
system('uname -srv',intern=T)
sessionInfo()
```

Blank Tab

是否有更好的解决方案可以为所有代码块启用代码折叠?

2 个答案:

答案 0 :(得分:2)

也许R版在这里起作用?对我来说,没有任何修改,您的代码按预期工作:

## R version 3.3.3 (2017-03-06)
## Platform: x86_64-apple-darwin13.4.0 (64-bit)
## Running under: macOS Sierra 10.12.6

至于R studio

Version 1.0.136 – © 2009-2016 RStudio, Inc.

enter image description here

当然,我已经改变了(从你最初的帖子开始)

```{r, engine='bash'}
echo "This code chunk will not be hidden"

```{r, engine='bash'}
echo "This code chunk will not be hidden"
```

答案 1 :(得分:1)

您也可以在后期制作中修复它。我使用rmarkdown :: render()(R 3.4.1)和pandoc-1.17.2转换Rmd-> HTML。生成的HTML文件针对不同的语言使用不同的CSS类,但是只有

类“ sourceCode r”支持折叠。 

因此,只需在

标记中将所有非“ r”类更改为“ r”:

perl -i -pe 's/<pre class="sourceCode [^r]+">/<pre class="sourceCode r">/' myfile.html

代码在块中的外观不会改变。