Skip to main content

参考范围

样式化范围

通用范围旨在用于任何语言,但在语义正确时也可以使用其他范围。例如,如果您有一种允许内联 URL 的通用语言:

var GOOGLE = 'https://www.google.com/'

即使您的语言不是标记语言,使用link类也是合理的。但是,许多主题在设计时可能没有考虑到这一点,所以更好的选择(为了获得最佳主题支持)可能是string

一般用途
keyword常规 Algol 风格语言中的关键字
built_in内置或库对象(常量、类、函数)
type数据类型,如:stringint
literal特殊字符,如:truefalse
number数字
operator运算符
punctuation标点符号
property对象属性,如:obj.prop1.prop2.value
regexp正则表达式
string字符串,字符
char.escape转义字符\n
subst子字符串
symbolsymbol
class
function函数
variable变量
variable.language语言关键字,如:thiswindowsuper
variable.constant常量
title类或函数的名称
title.class类名称
title.class.inherited继承的类名称
title.function函数名
title.function.invoke函数名(被调用时)
params声明的函数参数
comment注释
doctag注释中的文档标记,如:@params
Meta
meta标志、修饰符、注释、处理指令、预处理器指令等
meta promptREPL或shell提示或类似
meta keyword内嵌在meta中的关键字
meta string内嵌在meta中的字符串
标签,属性,配置
section配置文件中章节的标题,文本标记中的标题
tagXML/HTML标签
nameXML标签名称
attr没有语言定义语义的属性名称,如JSON键
attribute后跟结构化值部分的属性名称,如CSS属性
文本标记
bullet列表项符号
code代码
emphasis强调
strong强烈强调
formula数学公式
link超链接
quote引用或块引用
CSS
selector-tag标签选择器
selector-id#id选择器
selector-class.class选择器
selector-attr[attr]选择器
selector-pseudo:pseudo选择器
模板
template-tag模板标签
template-variable模板变量
差异
addition添加或修改线
deletion删除线

子作用域

上面的一些作用域名称具有一个.,我们使用这种表示法来指定子作用域。在生成的HTML中,这将输出多个计算出来的类名。嵌套的深度决定了附加到子作用域名称的下划线的数量。例如,我们说的作用域title.class.other

生成的CSS类名如下:

  • hljs-title
  • class_
  • other__

顶层作用域始终是应用了配置前缀的作用域。

生成的HTML将是:

<span class="hljs-title class_ other__">Render</span>

然后一个主题可以简单地使用以下CSS:

.hljs-title.class_.other__ {
color: blue;
}

新增作用域

最近添加的一些作用域不支持通用主题。对于没有支持的主题,这些项目将不会被高亮显示。这并不意味着不使用它们,只是随着支持的改进,它们会被更好地高亮显示。

这些作用域的列表:

  • 运算符
  • 标点符号
  • 属性

保留项

下面的作用域(ReasonML)出于文档的扩展目的留在这里,但可能不会用于其他语法,因为它们在所有主题中都没有得到很好的支持。

ReasonML
pattern-match模式匹配器
typing对函数参数进行类型签名
constructor类型构造函数
module-access对模块的范围访问
module范围访问中的模块引用