GitHub 帮助中有一个页面描述了如何使用语法高亮代码块。在该页面上,有说明如何为此目的将语言与其关键字匹配:
我们使用Linguist来执行语言检测和语法高亮。您可以在语言 YAML 文件中找出哪些关键字是有效的。
但是,该 YAML 中有很多数据,我并不清楚如何使用它来确定哪些关键字适用于任何给定语言。
我编写了一个简单的引导 脚本来尝试将此 YAML 解析为更易读的JSON文件,从每种语言映射到其有效关键字列表:
curl https://raw.githubusercontent.com/github/linguist/f75c5707a62a3d66501993116826f4e64c3ca4dd/lib/linguist/languages.yml | ./languages.boot > languages.json
但我完全不相信这是正确的。例如,我的脚本生成的许多关键字都包含空格,而我的印象是这些关键字不起作用:
代码围栏的内容被视为文字文本,而不是被解析为内联。info 字符串的第一个单词通常用于指定代码示例的语言,并呈现在标记的
class
属性中code
。
我正在寻找的是对这个 YAML 文件的“模式”的理解,因为它与 GitHub Markdown 中的语法突出显示有关。理想情况下,我希望能够使用这种理解来编写一个程序,该程序接受语言 YAML 文件并生成类似于Stack Exchange 语法突出显示的语言代码列表的内容,但用于 GitHub 上的 Markdown。我怎样才能写出这样的程序?