Resalte el código bash / shell en markdown

304

¿Cómo resaltar los comandos bash / shell en los archivos de descuento?


Por ejemplo para resaltar jsescribo:

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

Para resaltar el código HTML que uso ```html.

¿Cómo podemos resaltar los comandos bash / shell?

Ionică Bizău
fuente

Respuestas:

308

Depende del motor de procesamiento de rebajas y del sabor de rebajas. No hay un estándar para esto. Si te refieres a Markdown con sabor a github, por ejemplo, shelldebería funcionar bien. Los alias son sh, basho zsh. Puede encontrar la lista de lexers de sintaxis disponibles aquí

hek2mgl
fuente
1
Proporcioné un poco más de detalles sobre cómo deducir los especificadores de idioma para Markdown del archivo vinculado aquí: stackoverflow.com/a/45786100/6884590 , en caso de que sea útil para cualquiera que encuentre esta pregunta.
pchaigno
256

Si está buscando resaltar una secuencia de comandos de sesión de shell tal como se ve para el usuario (con indicaciones, no solo como contenido de un archivo de script hipotético), entonces el identificador correcto para usar en este momento es consola :

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

Captura de pantalla de la pestaña de vista previa de GitHub Markdown

Anton Strogonoff
fuente
13
Esta es una respuesta más precisa. El resaltado incluye el indicador, mientras que bash, sh, zsh y shell no consideran que el inicio de la línea sea el indicador y no lo colorean correctamente. ¡Gracias!
mikesigs
1
¡Agradable! ¿Hay alguna referencia para este estándar? ¿Es gd con sabor md o algo más? ¡Gracias!
Jorge Orpinel
1
@JorgeOrpinel Creo que lo desenterré en la lista de idiomas compatibles con el resaltador de sintaxis de GitHub aquí .
Anton Strogonoff
27

Encuentro una buena descripción en https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code

Los bloques de código son parte de la especificación Markdown, pero el resaltado de sintaxis no lo es .

Sin embargo, muchos renderizadores, como Github y Markdown Here, admiten el resaltado de sintaxis. Los idiomas que se admiten y cómo deben escribirse esos nombres de idiomas variarán de un procesador a otro. Markdown Here admite el resaltado de docenas de idiomas (y no realmente idiomas, como diffs y encabezados HTTP); para ver la lista completa y cómo escribir los nombres de los idiomas, consulte la página de demostración destaque.js .

Aunque no pude encontrar ningún documento oficial de git hub sobre el uso highlight.js, probé muchos idiomas y parecía estar funcionando

Para ver la lista de idiomas usé https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#language-names-and-aliases

Algunas muestras de conchas:

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

Ejemplo:

```bat
cd \
copy a b
ping 192.168.0.1
```
Alireza Fattahi
fuente
14

usando el paquete knitr :

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

p.ej:

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

también puedes usar:

  • engine='sh' para concha
  • engine='python' para python
  • engine='perl', engine='haskell'y un montón de otros lenguajes tipo C e incluso gawk, awketc.
irJERAD
fuente
2
¿No hace nada en un archivo .md local? ¿Tiene que ser un documento web servido para trabajar?
javadba
9

Según la documentación de GitHub sobre bloques de código resaltados de sintaxis GFM

Utilizamos Linguist para realizar detección de idioma y resaltado de sintaxis. Puede averiguar qué palabras clave son válidas en el archivo YAML de idiomas .

Representado en GitHub, consolehace que las líneas después de la consola sean azules. bash, sho shellno parecen "resaltar" mucho ... y puede usarlo poshpara PowerShell o CMD.

Señor kennedy
fuente
7

Si solo necesito resaltar la primera palabra como comando, entonces a menudo uso properties:

```properties
npm run build
```  

Obtengo algo como:

npm run build

g.annunziata
fuente