Sto provando a generare un report HTML utilizzando RStudio, R Markdown e knitr. Nel report mi piacerebbe visualizzare il codice bash
. Non voglio eseguire il codice ma vorrei che fosse evidenziato.Evidenzia codice bash con knitr/rmarkdown
E 'stato menzionato in another question ma il suggerimento non funziona per me. Ecco cosa ho provato fino ad ora:
---
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
```
Nessuno di questi mi consente di evidenziare nel documento HTML. So che è possibile perché ricordo di averlo visto da qualche settimana circa, ma non riesco più a trovarlo! Qualcuno sa come posso ottenerlo?
Grazie per la lettura,
Tom
Edit: Ho appena trovato this answer, che suggerisce di utilizzare il seguente blocco di codice nel .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>
Questo funziona per il codice bash nella documenta ma uccide l'evidenziazione per il codice 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
Chi [esempi di yihui su GitHub] (http://yihui.name/knitr/demo/engines/), sembrerebbe GitHub rende un [numero di lingue sul proprio] (http: // stackoverflow.com/a/14697529/322912). Quello che potresti fare è aggiungere il tuo [file css] (http://stackoverflow.com/a/14710957/322912). Una terza opzione sarebbe quella di rendere il file md usando ad es. Pandoc. –
Per usare pandoc, si usa 'pandoc -s 027-engine-bash.md -t html -o bash.html', ma si veda [demo] (http://pandoc.org/demos.html) per la miriade di opzioni. –
@Roman Sì, il codice che ho aggiunto alla mia domanda utilizza un file css con 'highlight.js'. Funziona piuttosto bene ma l'evidenziazione R di 'highlight.js' non è bella come l'evidenziazione di' RStudio'. Quello che devo fare ora è che il file css si applica ** solo ** ai pezzi del codice non-R. Grazie ancora per le risposte. –