【问题标题】:Syntax highlighting on GitHub's Wiki: Specifying the programming languageGitHub Wiki 上的语法高亮显示:指定编程语言
【发布时间】:2012-07-19 01:34:42
【问题描述】:

GitHub 对消息、问题和 cmets 使用称为“GitHub Flavored Markdown”的东西。我的问题是:

  • GitHub 是否也在他们的 Wiki 中使用这种语法?
  • 据我了解,可以使用以下语法为语法高亮指定编程语言:

    ```ruby  
    require 'redcarpet'  
    markdown = Redcarpet.new("Hello World!")  
    puts markdown.to_html  
    ```
    

    可以在``` 字符串之后指定编程语言(例如```ruby

    我的问题是:如何查找编程语言的说明符?(例如,C 似乎不适用于 C 编程语言)

【问题讨论】:

  • Cc 都应该可以工作。

标签: github markdown github-linguist


【解决方案1】:

有关 github wiki 可以使用的可能的词法分析器列表,请参见此处:http://pygments.org/docs/lexers/

如果您发现某个词法分析器不受支持,github 建议分叉他们的代码并通过拉取请求提交:https://github.com/blog/774-git-powered-wikis-improved

【讨论】:

  • GitHub 一次使用 Pygments 进行语法高亮显示,但 Pygments 的词法分析器列表从未与 GitHub 中可用的词法分析器列表完全匹配。 GitHub 现在依靠 Sublime Text、Atom 和 TextMate 语法来突出显示语法。有关可用的词法分析器列表,请参阅 3D1T0R 的答案。
【解决方案2】:

引用GitHub's documentation on the subject:

我们使用Linguist 来执行语言检测和语法高亮。您可以在the languages YAML file中找出哪些关键字是有效的。

语言学家的“Grammar index”可能也很有用。

【讨论】:

    【解决方案3】:

    如何查找编程语言的说明符?

    最新的语言说明符列表可以从the Linguist repositorylanguages.yml的主配置文件中推导出来。对于该列表中的每种语言,您可以用作说明符:

    1. 语言名称
    2. 任何语言aliases
    3. 任何文件扩展名,带或不带前导 .

    空格必须用破折号代替(例如,emacs-lispEmacs Lisp 的一个说明符)。带有tm_scope: none 条目的语言没有定义语法,不会在 github.com 上突出显示。

    jmm 进行了这项逆向工程,并收到了 GitHub 一位工程师的确认。他用Linguist 上的所有信息打开了一个问题,并维护了a wiki page with the specifiers for all languages(可能不是最新的)。

    GitHub 是否也在他们的 Wiki 中使用这种语法?

    是的,但 github.com 的 wiki 还支持其他几种格式。您可以在the markup repository 上找到完整列表。

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 2012-02-11
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多