1

有一個page on GitHub Help描述如何使用語法高亮的代碼塊。在該頁面上,有說明如何將語言與其關鍵字匹配用於此目的:如何使用語言YAML文件來確定哪些關鍵字適用於任何給定的語言?

我們使用Linguist來執行語言檢測和語法高亮顯示。你可以在the languages YAML file找出哪些關鍵字是有效的。

但是,該YAML中有很多數據,我不清楚究竟如何使用它來確定哪些關鍵字適用於任何給定的語言。

我寫了一個簡單Bootscript嘗試這個YAML解析從每種語言的有效關鍵字列表的可讀性更強JSON文件映射:

curl https://raw.githubusercontent.com/github/linguist/f75c5707a62a3d66501993116826f4e64c3ca4dd/lib/linguist/languages.yml | ./languages.boot > languages.json 

但我並不相信這是正確的。例如,許多我的腳本生成包含空格的關鍵字,而我的印象是,those would not work

代碼柵欄的內容被當作文字文本,而不是解析爲內聯。 info string的第一個單詞通常用於指定代碼示例的語言,並在code標記的class屬性中呈現。

我在找的是對這個YAML文件的「模式」的理解,因爲它涉及到GitHub Markdown中的語法高亮。理想情況下,我希望能夠使用這種理解來編寫一個程序,該程序需要語言YAML文件並生成類似於list of language codes for Stack Exchange syntax highlighting的內容,但對於GitHub上的Markdown。 我該如何編寫這樣的程序?

回答

1

我在找的是對這個YAML文件的「模式」的理解。

對於在languages.yml file每一種語言,你可以爲使用:

  1. 語言名
  2. 任何語言aliases
  3. 的任何文件擴展名,有或無的領先的.

白空間必須由破折號來代替(例如,emacs-lispEmacs Lisp一個說明符)。具有tm_scope: none條目的語言沒有定義語法,並且不會在github.com上突出顯示。

我該怎麼寫這樣的程序?

其實,有人已經寫了這樣的程序。在github/linguist#2278中,jmm詳細介紹了他的調查結果,並收到了GitHub的一名工程師的確認(同一主題)。他還給出了他自己的program to compute identifiersa wiki page with the results(可能不是最新的)的鏈接。

相關問題