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?

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


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


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

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.

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.


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


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.