マークアップ設定したい([markup] / markup.toml)

1[markup]
2  defaultMarkdownHandler = "goldmark"
3  [markup.goldmark]
4  [markup.goldmark.extensions.cjk]
5    eastAsianLineBreaks = true
6    enable = true
7    escapedSpace = true

HugoのコンテンツはMarkdown記法で作成できます。 Markdownのパーサーにはgoldmarkが使われています (v0.60以前はblackfridayが使われていました)。

パーサーは他にもasciidocext、org、pandoc、rstを使うことができ、 全体のマークアップ設定で変更できます。

基本的にはgoldmarkのデフォルト設定のままで十分ですが、日本語記事を扱うので、CJK設定を有効にしてみました。

raw HTMLしたい

1[markup]
2[markup.goldmark.renderer]
3  unsafe = true

デフォルトでraw HTMLや危なそうなリンクはレンダリングしません。 インラインのHTMLやJavaScriptをたくさん含むサイトを構築するなど、 必要な場合は、markup.goldmark.renderer.unsafe = trueで有効にできます。

シンタックスハイライトしたい

1[markup]
2[markup.highlight]
3codeFences = true
4guessSyntax = false
5lineNos = true
6lineNoStart = 1
7noClasses = false
8style = "solarized-dark"
9tabWidth = 4

シンタックス・ハイライトをmarkup.highlightセクションで設定できます。

codeFencesでコードブロック(```)のハイライトを有効化し、styleでカラーテーマ(Chromaのスタイル一覧)を指定します。 lineNosを有効にすると行番号が表示され、lineNoStartで開始番号を変更できます。

guessSyntax = falseにしておくと、言語指定がないコードブロックは言語推測をせず、プレーンテキストとして表示します。

拡張記法を有効にしたい

 1[markup]
 2[markup.goldmark]
 3[markup.goldmark.extensions]
 4strikethrough = true
 5[markup.goldmark.extensions.extras]
 6[markup.goldmark.extensions.extras.subscript]
 7enable = true
 8[markup.goldmark.extensions.extras.superscript]
 9enable = true
10[markup.goldmark.extensions.typographer]
11disable = false
12[markup.goldmark.extensions.passthrough]
13enable = true

goldmarkはGFM(GitHub Flavored Markdown)をベースに、いくつかの拡張記法をmarkup.goldmark.extensionsでオン・オフできます。

  • strikethrough: ~~取り消し線~~(デフォルト有効)

  • extras.subscript / extras.superscript: H~2~O、x^2^(デフォルトはsubscriptのみ有効)

  • typographer: 引用符やダッシュを自動できれいな記号に変換(デフォルト有効)

  • passthrough: LaTeX数式など、Markdownとして解釈させたくない記法をそのまま通す(デフォルト無効)

注意

subscriptとstrikethroughはどちらも~を使うため、 extras.subscript.enable = trueにする場合はstrikethrough = falseにしないと記法が衝突します。

目次したい

1[markup]
2  [markup.tableOfContents]
3    startLevel = 2
4    endLevel = 3
5    ordered = false

Goldmarkを使っている場合、目次の設定ができます。 デフォルトではh2見出しからh3見出しをulでマークアップします。

リファレンス