Evidenzia il codice bash / shell nel markdown


304

Come evidenziare i comandi bash / shell nei file markdown?


Ad esempio per evidenziare jsscrivo:

```js
function () { return "This code is highlighted as Javascript!"}
```

Per evidenziare il codice HTML che uso ```html.

Come possiamo evidenziare i comandi bash / shell?

Risposte:


308

Dipende dal motore di rendering markdown e dal sapore markdown. Non esiste uno standard per questo. Se vuoi dire markdown al gusto di github, per esempio, shelldovrebbe funzionare bene. Gli alias sono sh, basho zsh. Puoi trovare l'elenco dei lexer di sintassi disponibili qui


1
Ho fornito ulteriori dettagli su come dedurre gli identificatori di lingua per Markdown dal file collegato qui sopra: stackoverflow.com/a/45786100/6884590 , nel caso sia utile a chiunque trovi questa domanda.
pchaigno,

256

Se stai cercando di evidenziare una sequenza di comandi della sessione della shell come appare all'utente (con prompt, non solo come contenuto di un ipotetico file di script), l'identificatore giusto da usare al momento è console :

```console
foo@bar:~$ whoami
foo
```

Schermata della scheda di anteprima di GitHub Markdown


13
Questa è una risposta più accurata. L'evidenziazione include il prompt, mentre bash, sh, zsh e shell non considerano l'inizio della riga il prompt e non lo colorano correttamente. Grazie!
Mikesigs,

1
Bello! C'è un riferimento per questo standard? È git al gusto md o qualcos'altro? Grazie!
Jorge Orpinel,

1
@JorgeOrpinel Credo di averlo scavato nell'elenco delle lingue supportate dall'evidenziatore della sintassi di GitHub qui .
Anton Strogonoff,

27

Trovo una buona descrizione su https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code

I blocchi di codice fanno parte delle specifiche Markdown, ma l'evidenziazione della sintassi no .

Tuttavia, molti renderer - come Github e Markdown Here - supportano l'evidenziazione della sintassi. Quali lingue sono supportate e come devono essere scritti quei nomi delle lingue varieranno da renderer a renderer. Markdown Qui supporta l'evidenziazione per dozzine di lingue (e lingue non proprio, come diff e intestazioni HTTP); per vedere l'elenco completo e come scrivere i nomi delle lingue, vedere la pagina demo highlight.js .

Anche se non sono riuscito a trovare alcun documento ufficiale di git hub sull'uso highlight.js, ho testato molte lingue e sembrava funzionare

Per vedere l'elenco delle lingue che ho usato https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#language-names-and-aliases

Alcuni esempi di shell:

Shell:      console, shell
Bash:       bash, sh, zsh
Powershell: powershell, ps
Dos:        dos, bat, cmd

Esempio:

```bat
cd \
copy a b
ping 192.168.0.1
```

14

usando il pacchetto knitr :

```{r, engine='bash', code_block_name} ...

per esempio:

```{r, engine='bash', count_lines}
wc -l en_US.twitter.txt 
```

puoi anche usare:

  • engine='sh' per shell
  • engine='python' per pitone
  • engine='perl', engine='haskell'E un mucchio di altri linguaggi C-like e anche gawk, awkecc

2
Non fa nulla su un file .md locale? Deve essere un documento web servito per funzionare?
javadba,

9

Secondo la documentazione di GitHub relativa ai blocchi di codice evidenziati dalla sintassi GFM

Usiamo Linguist per eseguire il rilevamento della lingua e l'evidenziazione della sintassi. Puoi scoprire quali parole chiave sono valide nel file YAML delle lingue .

Resi su GitHub, consolerende le linee dopo la console blu. bash, sho shellnon sembrano "evidenziare" molto ... e puoi usarlo poshper PowerShell o CMD.


7

Se ho solo bisogno di evidenziare la prima parola come comando, quindi uso spesso properties:

```properties
npm run build
```  

Ottengo qualcosa del tipo:

npm run build


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.