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?

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í


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


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
```

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.

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.


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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.