{{ if and (gt .WordCount 400) (.Param "toc") }} {{- /* 正規表現でh[1-6]を探す */ -}} {{- $header := (findRE "(?:.|\n)*?" .Content) -}} {{- /* 最初に出現するh[1-6]を取得 */ -}} {{- $firstH := index $header 0 -}} {{- if ne $firstH nil -}} {{- /* ヘッダーの前にToCを結合した「新しいヘッダー」を作成 */ -}} {{- $newH := printf `%s%s` .TableOfContents $firstH -}} {{- /* 古いヘッダーを新しいヘッダーに置換して出力 */ -}} {{- replace .Content $firstH $newH | safeHTML -}} {{- else -}} {{- /* そもそもヘッダーがない時は普通に出力 */ -}} {{- .Content -}} {{- end -}} {{ else }} {{ .Content }} {{ end }}