Destacar código bash / shell na remarcação

304

Como destacar os comandos bash / shell nos arquivos de marcação?


Por exemplo, para destacar js, escrevo:

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

Para destacar o código HTML que eu uso ```html.

Como podemos destacar comandos bash / shell?

Ionică Bizău
fonte

Respostas:

308

Depende do mecanismo de renderização da remarcação e do sabor da remarcação. Não há um padrão para isso. Se você quer dizer markdown com sabor do github, por exemplo, shelldeve funcionar bem. Aliases são sh, bashou zsh. Você pode encontrar a lista de lexers de sintaxe disponíveis aqui

hek2mgl
fonte
1
Forneci um pouco mais de detalhes sobre como deduzir especificadores de idioma para o Markdown do arquivo vinculado acima aqui: stackoverflow.com/a/45786100/6884590 , caso isso seja útil para qualquer pessoa que encontre essa pergunta.
pchaigno
256

Se você deseja destacar uma sequência de comandos da sessão do shell conforme visualizada para o usuário (com prompts, não apenas como conteúdo de um arquivo de script hipotético), o identificador correto a ser usado no momento é o console :

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

Captura de tela da guia de visualização do GitHub Markdown

Anton Strogonoff
fonte
13
Esta é uma resposta mais precisa. O destaque inclui o prompt, enquanto bash, sh, zsh e shell não consideram o início da linha o prompt e não o colorem corretamente. Obrigado!
Mikeigs # 26/18
1
Agradável! Existe uma referência para este padrão? É md com sabor git ou algo mais? Obrigado!
Jorge Orpinel 19/04/19
1
@JorgeOrpinel Acredito que o desenterrei na lista de idiomas suportados pelo marcador de sintaxe do GitHub aqui .
Anton Strogonoff
27

Acho uma boa descrição em https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code

Os blocos de código fazem parte da especificação do Markdown, mas o destaque da sintaxe não é .

No entanto, muitos renderizadores - como o Github e o Markdown Here - suportam o destaque da sintaxe. Quais idiomas são suportados e como esses nomes de idiomas devem ser escritos variará de renderizador para renderizador. Markdown Aqui suporta realce para dezenas de idiomas (e não idiomas de verdade, como diffs e cabeçalhos HTTP); para ver a lista completa e como escrever os nomes dos idiomas, consulte a página de demonstração do destaque.js .

Embora eu não tenha encontrado nenhum documento oficial do git hub sobre o uso highlight.js , testei vários idiomas e parecia estar funcionando

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

Algumas amostras de shell:

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

Exemplo:

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

usando o pacote knitr :

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

por exemplo:

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

você também pode usar:

  • engine='sh' para concha
  • engine='python' para python
  • engine='perl', engine='haskell'E um grupo de outras linguagens C-like e, mesmo gawk, awketc.
irJERAD
fonte
2
Não faz nada em um arquivo .md local? Ele precisa ser um documento exibido na Web para funcionar?
Javadba
9

De acordo com a documentação do GitHub sobre blocos de código destacados da sintaxe GFM

Usamos o Linguist para executar a detecção de idiomas e o destaque da sintaxe. Você pode descobrir quais palavras-chave são válidas no arquivo YAML de idiomas .

Renderizado no GitHub, consoletorna as linhas após o console azuis. bash,, shou shellparece não "destacar" muito ... e você pode usar o poshPowerShell ou o CMD.

Sr. Kennedy
fonte
7

Se precisar apenas destacar a primeira palavra como comando, então eu frequentemente uso properties:

```properties
npm run build
```  

Eu obtenho algo como:

npm run build

g.annunziata
fonte