Markdown 在代码围栏的标记中添加类的正确方法是什么

Markdown 在代码围栏的标记中添加类的正确方法是什么,markdown,hugo,prismjs,Markdown,Hugo,Prismjs,我的用例是专门针对PrismJS的,它需要code标签中的某些类来实现一些额外的代码高亮显示功能,例如行号来显示行号,匹配大括号来高亮显示匹配大括号等等。 我正在为我的博客使用HUGO,在markdown文件中,我可以使用以下语法显示一些突出显示的代码块: ```js console.log('Hello World!'); ``` ```js log('helloworld!'); ``` 我搜索了很多,但找不到将类添加到代码围栏的正确方法,如上图所示,因此我是这样做的: ```js&am

我的用例是专门针对
PrismJS
的,它需要code标签中的某些类来实现一些额外的代码高亮显示功能,例如
行号
来显示行号,
匹配大括号
来高亮显示匹配大括号等等。 我正在为我的博客使用
HUGO
,在
markdown
文件中,我可以使用以下语法显示一些突出显示的代码块:

```js console.log('Hello World!'); ``` ```js log('helloworld!'); ``` 我搜索了很多,但找不到将类添加到代码围栏的正确方法,如上图所示,因此我是这样做的:

```js line-numbers match-braces console.log('Hello World!'); ``` ```js行号与大括号匹配 log('helloworld!'); ``` 这就是诀窍,但是当使用代码围栏时,在
markdown
中添加类的正确方法是什么

使用代码围栏时,在
markdown
中添加类的正确方法是什么

无论哪种黑客行为与您正在使用的实现一起工作

首先,隔离代码块只是部分标准化。他们不在房间里。但是,它们是最近添加到的,它只提供一个类来指定一种语言。除此之外,规范规定:

打开代码栏后可以提供信息字符串。虽然 本规范不要求对信息字符串进行任何特殊处理, 第一个单词通常用于指定代码的语言 块在HTML输出中,通常通过添加 类初始化为代码元素,该元素由
语言-
后跟 语言名称

规范中的一个显示了定义的多个项目:

~~~~    ruby startline=3 $%@#$
然而,在输出中,只有第一个字仍然存在。其他一切都失去了


如上所述,fenced代码块是Commonmark规范的最新添加。在指定它们之前,大多数实现已经在不同程度上支持它们。因此,在处理第一个词以外的任何事物时,都会有很多变化。您需要检查您正在使用的特定实现的文档

当您用
[hugo]
标记这个时,我检查了一下,其中的示例表明语言识别只支持一个单词。Hugo的文档还指出,他们使用引擎盖下进行降价解析。Goldmark将自己标记为“符合标准”的Commonmark实现,这表明它将按照规范中记录的方式运行。但是,它确实支持第三方扩展。有人总是可以创建一个扩展,在一个受保护的代码块的信息字符串中支持更多的功能

在第三方扩展之外,您需要借助黑客手段欺骗解析器将多个类视为一个单词

使用代码围栏时,在
markdown
中添加类的正确方法是什么

无论哪种黑客行为与您正在使用的实现一起工作

首先,隔离代码块只是部分标准化。他们不在房间里。但是,它们是最近添加到的,它只提供一个类来指定一种语言。除此之外,规范规定:

打开代码栏后可以提供信息字符串。虽然 本规范不要求对信息字符串进行任何特殊处理, 第一个单词通常用于指定代码的语言 块在HTML输出中,通常通过添加 类初始化为代码元素,该元素由
语言-
后跟 语言名称

规范中的一个显示了定义的多个项目:

~~~~    ruby startline=3 $%@#$
然而,在输出中,只有第一个字仍然存在。其他一切都失去了


如上所述,fenced代码块是Commonmark规范的最新添加。在指定它们之前,大多数实现已经在不同程度上支持它们。因此,在处理第一个词以外的任何事物时,都会有很多变化。您需要检查您正在使用的特定实现的文档

当您用
[hugo]
标记这个时,我检查了一下,其中的示例表明语言识别只支持一个单词。Hugo的文档还指出,他们使用引擎盖下进行降价解析。Goldmark将自己标记为“符合标准”的Commonmark实现,这表明它将按照规范中记录的方式运行。但是,它确实支持第三方扩展。有人总是可以创建一个扩展,在一个受保护的代码块的信息字符串中支持更多的功能


在第三方扩展之外,您需要借助黑客手段诱使解析器将多个类视为一个单词。

Thank you@Waylan:)Thank you@Waylan:)