transform.Highlight
highlight
函式使用 Chroma 語法高亮器,支援超過 200 種語言並提供超過 40 種樣式。
參數說明
- INPUT
- 要高亮的程式碼內容。
- LANG
- 要高亮的程式碼語言。請選擇一個 [支援的語言]。不區分大小寫。
- OPTIONS
- 一個映射,或用逗號分隔的選項列表,可以包含零個或多個 [選項]。可在站點設定中設置預設值。
選項
- lineNos
- 布林值。預設為
false
。
在每行開頭顯示行號。 - lineNumbersInTable
- 布林值。預設為
true
。
將高亮的程式碼渲染為一個 HTML 表格,左側儲存格包含行號,右側儲存格包含程式碼,方便用戶選取和複製不帶行號的程式碼。若lineNos
為false
,此項無效。 - anchorLineNos
- 布林值。預設為
false
。
將每個行號渲染為 HTML 錨點元素,並將周圍<span>
的id
屬性設為行號。若lineNos
為false
,此項無效。 - lineAnchors
- 字串。預設為
""
。
當將行號渲染為 HTML 錨點時,會在周圍<span>
的id
屬性前加上此值,確保當頁面中有多個程式碼區塊時,每個區塊的id
屬性唯一。若lineNos
或anchorLineNos
為false
,此項無效。 - lineNoStart
- 整數。預設為
1
。
第一行開頭顯示的行號。若lineNos
為false
,此項無效。 - hl_Lines
- 字串。預設為
""
。
以空格分隔的行號列表,用於強調程式碼中的特定行。例如,若要強調第 2、3、4 和第 7 行,請將此值設為2-4 7
。此選項獨立於lineNoStart
。 - hl_inline
- 布林值。預設為
false
。
在不使用外層容器的情況下渲染高亮的程式碼。 - style
- 字串。預設為
monokai
。
高亮程式碼的 CSS 樣式。參見 樣式庫 獲取範例。區分大小寫。 - noClasses
- 布林值。預設為
true
。
使用內聯 CSS 樣式而非外部 CSS 檔案。若設為false
,可使用 hugo 工具生成樣式檔案。 - tabWidth
- 整數。預設為
4
。
在高亮程式碼中,每個 Tab 字元將替換為的空格數量。若noClasses
為false
,此項無效。 - guessSyntax
- 布林值。預設為
false
。
若LANG
參數為空或為未識別語言,則自動檢測語言(如可能),否則使用預設語言。
範例
{{ $input := `fmt.Println("Hello World!")` }}
{{ transform.Highlight $input "go" }}
{{ $input := `console.log('Hello World!');` }}
{{ $lang := "js" }}
{{ transform.Highlight $input $lang "lineNos=table, style=api" }}
{{ $input := `echo "Hello World!"` }}
{{ $lang := "bash" }}
{{ $opts := dict "lineNos" "table" "style" "dracula" }}
{{ transform.Highlight $input $lang $opts }}