Próbuję wygenerować raport HTML za pomocą RStudio, R Markdown i knitr. W raporcie chciałbym wyświetlić kod bash
. Nie chcę uruchamiać kodu, ale chciałbym go podświetlić.Podkreślanie kodu bash za pomocą knitr/rmarkdown
Zostało wspomniane w another question, ale sugestia nie działa dla mnie. Oto, co próbowałem do tej pory:
---
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
```
Żadne z nich nie podświetla mnie w dokumencie HTML. Wiem, że to możliwe, ponieważ pamiętam, że widziałem go gdzieś tydzień temu, ale już go nie mogę znaleźć! Czy ktoś wie, jak mogę to osiągnąć?
Dzięki za czytanie,
Tom
Edit: Właśnie znalazłem this answer, co sugeruje zastosowanie następujący blok kodu w .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>
Działa to dla kodu w bash dokument, ale zabija podświetlanie kodu 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
O [Przykłady Yihui dotyczących GitHub] (http://yihui.name/knitr/demo/engines/), wydaje się GitHub renderuje [liczbę języków na własny] (http: // stackoverflow.com/a/14697529/322912). Możesz dodać własny plik [css] (http://stackoverflow.com/a/14710957/322912). Trzecią opcją byłoby renderowanie pliku md przy użyciu np. pandoc. –
Aby użyć pandoc, użyłbyś 'pandoc -s 027-engine-bash.md -t html -o bash.html', ale zobacz [demos] (http://pandoc.org/demos.html) dla miriady opcji. –
@Roman Tak, kod dodany do mojego pytania używa pliku css z 'highlight.js'. Działa całkiem nieźle, ale podkreślenie R z 'highlight.js' nie jest tak miłe jak podświetlenie z' RStudio'. Muszę teraz zrobić, aby plik css ** był stosowany ** do fragmentów kodu innego niż R. Jeszcze raz dziękuję za odpowiedzi. –