使用 knitr / rmarkdown 突出显示 bash 代码
Highlighting bash code with knitr / rmarkdown
我正在尝试使用 RStudio、R Markdown 和 knitr 生成 HTML 报告。在报告中我想显示一些 bash
代码。我不想 运行 代码,但我希望突出显示它。
another question中提到过,但那里的建议对我不起作用。到目前为止,这是我尝试过的方法:
---
title: "bash highlighting?"
output: html_document
---
```{r, engine = 'bash', eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
```{bash, eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
这些都没有让我在 HTML 文档中突出显示。我知道这是可能的,因为我记得大约一周前在某个地方看到过它,但我再也找不到了!有谁知道我该如何实现?
感谢阅读,
汤姆
编辑:我刚找到 this answer,建议在 .Rmd
中使用以下代码块
<link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script>
<script>
$(document).ready(function() {
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});
</script>
这适用于文档中的 bash 代码,但会破坏 R 代码的突出显示!
## R version 3.2.0 (2015-04-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.2 LTS
##
## locale:
## [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
## [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8
## [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] formatR_1.2 tools_3.2.0 htmltools_0.2.6 yaml_2.1.13
## [5] rmarkdown_0.5.1 knitr_1.10 stringr_0.6.2 digest_0.6.8
## [9] evaluate_0.7
好的,多亏了评论才明白。似乎是 RStudio
不适合突出显示。当我将中间降价文件保存为 in.md
:
---
title: "Bash Highlighting"
output:
html_document:
keep_md: true
---
```{r, engine = 'bash', eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
然后使用 将 html 转换为 html 例如 来自 BioConductor 的 CSS:
pandoc -s in.md \
-c https://hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_1/madman/Rpacks/BiocStyle/inst/resources/html/bioconductor.css \
-t html -o out.html
我得到很好的 R
和 bash
代码突出显示。
谢谢!
默认语法高亮主题不适用于非 R 代码块,您可以使用其他主题,例如pygments
---
title: "Bash Highlighting"
output:
html_document:
highlight: pygments
---
```{r, engine = 'bash', eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
我正在尝试使用 RStudio、R Markdown 和 knitr 生成 HTML 报告。在报告中我想显示一些 bash
代码。我不想 运行 代码,但我希望突出显示它。
another question中提到过,但那里的建议对我不起作用。到目前为止,这是我尝试过的方法:
---
title: "bash highlighting?"
output: html_document
---
```{r, engine = 'bash', eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
```{bash, eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
这些都没有让我在 HTML 文档中突出显示。我知道这是可能的,因为我记得大约一周前在某个地方看到过它,但我再也找不到了!有谁知道我该如何实现?
感谢阅读,
汤姆
编辑:我刚找到 this answer,建议在 .Rmd
中使用以下代码块<link rel="stylesheet" href="http://yandex.st/highlightjs/7.3/styles/default.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="http://yandex.st/highlightjs/7.3/highlight.min.js"></script>
<script>
$(document).ready(function() {
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});
</script>
这适用于文档中的 bash 代码,但会破坏 R 代码的突出显示!
## R version 3.2.0 (2015-04-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.2 LTS
##
## locale:
## [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
## [5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8
## [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] formatR_1.2 tools_3.2.0 htmltools_0.2.6 yaml_2.1.13
## [5] rmarkdown_0.5.1 knitr_1.10 stringr_0.6.2 digest_0.6.8
## [9] evaluate_0.7
好的,多亏了评论才明白。似乎是 RStudio
不适合突出显示。当我将中间降价文件保存为 in.md
:
---
title: "Bash Highlighting"
output:
html_document:
keep_md: true
---
```{r, engine = 'bash', eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```
然后使用 将 html 转换为 html 例如 来自 BioConductor 的 CSS:
pandoc -s in.md \
-c https://hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_1/madman/Rpacks/BiocStyle/inst/resources/html/bioconductor.css \
-t html -o out.html
我得到很好的 R
和 bash
代码突出显示。
谢谢!
默认语法高亮主题不适用于非 R 代码块,您可以使用其他主题,例如pygments
---
title: "Bash Highlighting"
output:
html_document:
highlight: pygments
---
```{r, engine = 'bash', eval = FALSE}
for foo in (ls bar)
do
echo $foo
done
```