靜態語法突顯


靜態語法高亮是指為使用者_無法_更改的程式碼加上高亮。 這包括程式碼片段、疊代,以及更多內容。

Note

線上編輯器_不_使用靜態語法高亮,因為使用者可以即時更改程式碼。 如果你想進一步了解我們如何在線上編輯器處理語法高亮,請參閱動態語法高亮文件。

實作

靜態語法高亮是使用 highlightjs 函式庫完成的。

在為你的語言新增支援時,有三種情況:

  1. 該語言由 highlightjs _內建_支援(也就是列在支援的語言中)。 若是如此,請繼續閱讀設定軌道一節。
  2. 該語言可透過現有的 highlightjs 外掛支援。 若是如此,請繼續閱讀使用現有的外掛一節。
  3. 該語言_不_受支援。 這時有三種選擇:
    1. 從頭撰寫 highlightjs 外掛,做法如建立新外掛一節所述。
    2. 你的語言語法(大致)類似另一種語言的語法(例如 Unison 的語法類似 Haskell),這種情況下你可以考慮用那種語言的語法高亮來處理你的語言。 詳見設定軌道一節。
    3. 不使用靜態語法高亮。

設定軌道

若要為你的軌道語言啟用 highlightjs 支援,你需要修改軌道的 config.json 檔案。 在config.json檔案中,將online_editor.highlightjs_language鍵新增或設為對應的 highlightjs 語言識別碼(可在 highlightjs 文件中找到)。

範例

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

使用現有的外掛

若要使用現有的外掛,該外掛必須已發佈到 NPM 上。 如果外掛沒有發佈到 NPM,你可以:

  1. 詢問外掛作者是否願意發佈到 NPM。
  2. 將儲存庫分支出來並自行發佈。
  3. 由我們(Exercism)將儲存庫分支並代為發佈。 若要如此,請在論壇上開一個主題提出請求。

下一步是啟用外掛。

啟用外掛

若要啟用外掛(該外掛必須已發佈到 NPM),請在論壇上開一個主題,請我們將該外掛的支援加入網站。 接著我們(Exercism)會建立一個 Pull Request,將該外掛加入網站。 PR 合併之後,你就能依照設定軌道一節的說明啟用 highlightjs 支援。

建立新外掛

如果你想建立外掛,有兩種代管方式:

  1. 在個人帳號下建立一個儲存庫並自行發佈。
  2. 由我們(Exercism)建立儲存庫並交由我們發佈。 若要如此,請在論壇上開一個主題提出請求。

有了儲存庫之後,請依照語言貢獻說明實作外掛。

接著你需要將外掛發佈到 NPM。 下一步是啟用外掛。

使用其他語言

你的語言語法(大致)類似另一種語言的語法,這種情況下你可以考慮用那種語言的語法高亮來處理你的語言。 若要如此,請將軌道設定為使用另一種語言的 highlightjs 語言識別碼。 詳見設定軌道一節。