Podświetl kod bash / shell w Markdown

304

Jak wyróżnić polecenia bash / shell w plikach Markdown?


Na przykład dla podkreślenia jspiszę:

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

Aby podświetlić kod HTML, którego używam ```html.

Jak możemy wyróżnić polecenia bash / shell?

Ionică Bizău
źródło

Odpowiedzi:

308

Zależy od mechanizmu renderowania Markdown i smaku Markdown. Nie ma na to żadnego standardu. Jeśli masz na myśli na przykład markdown o smaku github, shellpowinno działać dobrze. Pseudonimy są sh, bashlub zsh. Listę dostępnych leksykonów składni można znaleźć tutaj

hek2mgl
źródło
1
Podałem tutaj nieco więcej szczegółów na temat tego, jak wydedukować specyfikatory języka dla Markdown z połączonego pliku powyżej: stackoverflow.com/a/45786100/6884590 , na wypadek, gdyby było to przydatne dla każdego, kto znajdzie to pytanie.
pchaigno
256

Jeśli chcesz podświetlić sekwencję poleceń sesji powłoki, tak jak wygląda ona dla użytkownika (z podpowiedziami, a nie tylko jako zawartość hipotetycznego pliku skryptu), to odpowiednim identyfikatorem do użycia w tej chwili jest konsola :

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

Zrzut ekranu zakładki podglądu GitHub Markdown

Anton Strogonoff
źródło
13
To jest dokładniejsza odpowiedź. Podświetlanie obejmuje znak zachęty, natomiast bash, sh, zsh i shell nie uważają początku linii za znak zachęty i nie kolorują go poprawnie. Dzięki!
mikesigs
1
Miły! Czy istnieje odniesienie do tego standardu? Czy to git o smaku md czy coś innego? Dzięki!
Jorge Orpinel,
1
@JorgeOrpinel Wydaje mi się, że wykopałem go na liście języków obsługiwanych przez wyróżnienie składni GitHub tutaj .
Anton Strogonoff,
27

Dobry opis znajduję na https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code

Bloki kodu są częścią specyfikacji Markdown, ale wyróżnianie składni nie .

Jednak wiele programów renderujących - takich jak Github i Markdown Here - obsługuje podświetlanie składni. Które języki są obsługiwane i jak powinny być pisane te nazwy, będą się różnić w zależności od mechanizmu renderującego. Markdown Here obsługuje podświetlanie dla kilkudziesięciu języków (i nie-naprawdę-języków, takich jak diffs i nagłówki HTTP); aby zobaczyć pełną listę i jak pisać nazwy języków, patrz stronę demonstracyjną highlight.js .

Chociaż nie mogłem znaleźć żadnego oficjalnego dokumentu git hub na temat używania highlight.js, przetestowałem wiele języków i wydawało się, że działa

Aby zobaczyć listę używanych przeze mnie języków https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#language-names-and-aliases

Niektóre próbki powłoki:

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

Przykład:

```bat
cd \
copy a b
ping 192.168.0.1
```
Alireza Fattahi
źródło
14

za pomocą pakietu knitr :

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

na przykład:

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

możesz także użyć:

  • engine='sh' dla muszli
  • engine='python' dla python
  • engine='perl', engine='haskell'A kilka innych języków jak C i nawet gawk, awketc.
irJERAD
źródło
2
Nie robi nic na lokalnym pliku .md? Czy to musi być dokument działający w sieci?
javadba
9

Zgodnie z dokumentacją GitHub dotyczącą podświetlonych bloków kodu GFM

Używamy Linguist do wykrywania języka i podświetlania składni. Możesz dowiedzieć się, które słowa kluczowe są prawidłowe w pliku YAML języków .

Renderowane na GitHub consolesprawia , że linie po konsoli stają się niebieskie. bash, shlub shellnie wydają się „podświetlać” zbyt wiele… i możesz używać poshprogramu PowerShell lub CMD.

Pan Kennedy
źródło
7

Jeśli muszę tylko zaznaczyć pierwsze słowo jako polecenie, więc często używam properties:

```properties
npm run build
```  

Otrzymuję coś takiego:

kompilacja npm run

g.annunziata
źródło