18 lines
No EOL
768 B
HTML
18 lines
No EOL
768 B
HTML
{{ if and (gt .WordCount 400) (.Param "toc") }}
|
|
{{- /* 正規表現でh[1-6]を探す */ -}}
|
|
{{- $header := (findRE "<h2.*?>(?:.|\n)*?</h2>" .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 }} |