Markdown 選項
Jekyll 支援的各種 Markdown 渲染器有時會有額外的可用選項。
Kramdown
Kramdown 是 Jekyll 的預設 Markdown 渲染器,通常無需額外組態即可順利運作。但是,它支援許多組態選項。
Kramdown 處理器
預設情況下,Jekyll 使用 GitHub 風格 Markdown (GFM) 處理器 進行 Kramdown。(指定 input: GFM
也可以,但多餘。)GFM 支援一些額外的 Kramdown 選項,由 kramdown-parser-gfm 記錄。這些選項可以直接在您的 Kramdown Jekyll 組態中使用,如下所示
kramdown:
gfm_quirks: [paragraph_end]
您也可以變更 Kramdown 使用的處理器(如 Kramdown RDoc 中的 input
鍵所指定的)。例如,若要在 Jekyll 中使用非 GFM Kramdown 處理器,請將以下內容新增至您的組態。
kramdown:
input: Kramdown
Kramdown 剖析器的文件在 Kramdown 文件 中提供。如果您使用 Kramdown 或 GFM 以外的 Kramdown 剖析器,您需要新增其 gem。
語法高亮(CodeRay)
若要將 CodeRay 語法高亮器與 Kramdown 搭配使用,您需要新增對 kramdown-syntax-coderay
gem 的依賴關係。例如,bundle add kramdown-syntax-coderay
。然後,您就能在 syntax_highlighter
組態中指定 CodeRay
kramdown:
syntax_highlighter: coderay
CodeRay 支援數個其自己的組態選項,在 kramdown-syntax-coderay 文件 中有說明,可以像這樣傳遞為 syntax_highlighter_opts
kramdown:
syntax_highlighter: coderay
syntax_highlighter_opts:
line_numbers: table
bold_every: 5
進階 Kramdown 選項
Kramdown 支援各種其他相對進階的選項,例如 header_offset
和 smart_quotes
。這些選項在 Kramdown 組態文件 中有說明,可以像這樣新增至您的 Kramdown 組態
kramdown:
header_offset: 2
有數個不支援的 kramdown 選項
請注意,Jekyll 使用 Kramdown 的 HTML 轉換器。僅由其他轉換器使用的 Kramdown 選項,例如 remove_block_html_tags
(由 RemoveHtmlTags 轉換器使用),將無法運作。
CommonMark
CommonMark 是 Markdown 語法的合理化版本,以 C 實作,因此比以 Ruby 實作的預設 Kramdown 更快。它與原始 Markdown 稍有不同,而且不支援 Kramdown 中實作的所有語法元素,例如區塊內聯屬性清單。
它有兩種形式:基本 CommonMark,搭配jekyll-commonmark 外掛程式,以及GitHub Pages 支援的 GitHub 風味 Markdown。
自訂 Markdown 處理器
如果您有興趣建立自訂 Markdown 處理器,您運氣真好!在Jekyll::Converters::Markdown
命名空間中建立一個新的類別
class Jekyll::Converters::Markdown::MyCustomProcessor
def initialize(config)
require 'funky_markdown'
@config = config
rescue LoadError
STDERR.puts 'You are missing a library required for Markdown. Please run:'
STDERR.puts ' $ [sudo] gem install funky_markdown'
raise FatalException.new("Missing dependency: funky_markdown")
end
def convert(content)
::FunkyMarkdown.new(content).convert
end
end
建立好類別並妥善設定為_plugins
資料夾中的外掛程式或 gem 之後,在您的_config.yml
中指定它
markdown: MyCustomProcessor