在Markdown中突出显示bash / shell代码


304

如何在Markdown文件中突出显示bash / shell命令?


例如,要强调js我写:

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

为了突出显示我使用的HTML代码 ```html

我们如何突出显示bash / shell命令?

Answers:


308

取决于markdown渲染引擎和markdown风格。没有标准。如果您以github风格的markdown为例,shell应该可以正常工作。别名shbashzsh。您可以在此处找到可用语法词法器的列表


1
我在此处的链接文件stackoverflow.com/a/45786100/6884590中提供了有关如何推断Markdown的语言说明的更多详细信息,以防万一对发现此问题的人有用。
pchaigno

256

如果您希望突出显示一个shell会话命令序列(向用户显示)(带有提示,而不仅仅是提示脚本文件的内容),那么当前要使用的正确标识符是console

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

GitHub Markdown预览选项卡屏幕截图


13
这是一个更准确的答案。突出显示包括提示,而bash,sh,zsh和shell则不认为行的开头是提示,并且不能正确地为其上色。谢谢!
mikesigs

1
真好!这个标准有参考吗?是git味md还是其他?谢谢!
Jorge Orpinel '19

1
我@JorgeOrpinel相信我在荧光笔通过GitHub的语法支持的语言列表中挖起来这里
安东·斯特罗戈诺夫

27

我在https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code找到了很好的描述

代码块是Markdown规范的一部分,但语法高亮不是

但是,许多渲染器(例如Github和Markdown Here)都支持语法突出显示。支持哪种语言以及应如何书写这些语言名称将随渲染器的不同而不同。Markdown Here支持突出显示多种语言(以及非真正的语言,例如diff和HTTP标头);要查看完整列表以及如何编写语言名称,请参见Highlight.js演示页面。

尽管我找不到任何有关的官方git hub文档highlight.js,但我已经测试了许多语言,并且似乎可以正常工作

要查看语言列表,我使用了https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#language-names-and-aliases

一些外壳样本:

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

例:

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

14

使用knitr软件包:

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

例如:

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

您还可以使用:

  • engine='sh' 用于外壳
  • engine='python' 对于python
  • engine='perl'engine='haskell'以及一堆其他类似C的语言,甚至gawkawk等等。

2
在本地.md文件上不做任何事情?它必须是网络提供的文档才能工作吗?
javadba

9

根据GitHub上有关GFM语法突出显示的代码块的文档

我们使用语言学家执行语言检测和语法突出显示。您可以在语言YAML文件中找出哪些关键字有效。

在GitHub上渲染,console使控制台后的行变为蓝色。bashshshell似乎不太“突出” ...并且可以posh用于PowerShell或CMD。


7

如果只需要突出显示第一个单词作为命令,那么我经常使用properties

```properties
npm run build
```  

我得到类似的东西:

npm运行构建


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.