Markieren Sie Bash / Shell-Code im Markdown


304

Wie hebe ich die bash / shell-Befehle in Markdown-Dateien hervor?


Zum Hervorheben jsschreibe ich zum Beispiel :

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

Zum Hervorheben von HTML-Code verwende ich ```html.

Wie können wir Bash / Shell-Befehle hervorheben?

Antworten:


308

Hängt von der Markdown-Rendering-Engine und dem Markdown-Geschmack ab. Dafür gibt es keinen Standard. Wenn Sie zum Beispiel Markdown mit Github-Geschmack meinen, shellsollte dies gut funktionieren. Aliase sind sh, bashoder zsh. Die Liste der verfügbaren Syntaxlexer finden Sie hier


1
Ich habe hier ein bisschen mehr Details zum Ableiten von Sprachspezifizierern für Markdown aus der oben verlinkten Datei bereitgestellt : stackoverflow.com/a/45786100/6884590 , falls dies für jemanden nützlich ist, der diese Frage findet.
pchaigno

256

Wenn Sie eine Shell-Sitzungsbefehlssequenz so hervorheben möchten, wie sie für den Benutzer aussieht (mit Eingabeaufforderungen, nicht nur als Inhalt einer hypothetischen Skriptdatei), ist die richtige Kennung im Moment die Konsole :

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

Screenshot des GitHub Markdown-Vorschau-Tabs


13
Dies ist eine genauere Antwort. Die Hervorhebung enthält die Eingabeaufforderung, während bash, sh, zsh und shell den Zeilenanfang nicht als Eingabeaufforderung betrachten und ihn nicht richtig einfärben. Vielen Dank!
Mikeigsigs

1
Nett! Gibt es eine Referenz für diesen Standard? Ist es gd aromatisiert md oder etwas anderes? Vielen Dank!
Jorge Orpinel

1
@JorgeOrpinel Ich glaube, ich habe es in der Liste der Sprachen ausgegraben, die von GitHubs Syntax-Textmarker hier unterstützt werden .
Anton Strogonoff

27

Eine gute Beschreibung finde ich unter https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code

Codeblöcke sind Teil der Markdown-Spezifikation, die Syntaxhervorhebung jedoch nicht .

Viele Renderer - wie Github's und Markdown Here - unterstützen jedoch die Syntaxhervorhebung. Welche Sprachen unterstützt werden und wie diese Sprachnamen geschrieben werden sollen, ist von Renderer zu Renderer unterschiedlich. Markdown Hier wird das Hervorheben für Dutzende von Sprachen (und nicht wirklich Sprachen wie Diffs und HTTP-Header) unterstützt. die vollständige Liste zu sehen, und wie man die Sprache Namen zu schreiben, sieht die highlight.js Seite Demo.

Obwohl ich kein offizielles Git Hub-Dokument über die Verwendung finden konnte highlight.js, habe ich viele Sprachen getestet und schien zu funktionieren

Um eine Liste der Sprachen anzuzeigen, habe ich https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#language-names-and-aliases verwendet

Einige Shell-Beispiele:

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

Beispiel:

```bat
cd \
copy a b
ping 192.168.0.1
```

14

mit dem knitr- paket:

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

z.B:

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

Sie können auch verwenden:

  • engine='sh' für Shell
  • engine='python' für Python
  • engine='perl', engine='haskell'Und ein paar anderen C-ähnliche Sprachen und sogar gawk, awkusw.

2
Tut nichts in einer lokalen .md-Datei? Muss es ein Web-Dokument sein, um zu funktionieren?
Javadba

9

Gemäß der Dokumentation von GitHub zur GFM-Syntax werden Codeblöcke hervorgehoben

Wir verwenden Linguist , um die Spracherkennung und Syntaxhervorhebung durchzuführen. Sie können herausfinden, welche Schlüsselwörter in der YAML- Sprachdatei gültig sind .

Auf GitHub gerendert, werden consoledie Zeilen nach der Konsole blau. bash, shOder shellzu „markieren“ nicht viel erscheinen ... und Sie verwenden können , poshfür Powershell oder CMD.


7

Wenn Sie nur das erste Wort als Befehl markieren müssen, verwende ich häufig properties:

```properties
npm run build
```  

Ich erhalte so etwas wie:

npm run build


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.