You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
749 B
HTML

{{ $page := . }}
{{ $result := $page.Content }}
{{ $matches := findRESubmatch "<h([1-6])[ >]" $result }}
{{ with $matches }}
{{ $max := 0 }}
{{ range . }}
{{ $level := index . 1 | int }}
{{ if gt $level $max }}
{{ $max = $level }}
{{ end }}
{{ end }}
{{ if and $max (lt $max 6) }}
{{ $shift := sub 6 $max }}
{{ range seq $max | collections.Reverse }}
{{ $old := . }}
{{ $new := add $old $shift }}
{{ $result = replaceRE (printf "<h%d([ >])" $old) (printf "<h%d$1" $new) $result }}
{{ $result = replaceRE (printf "</h%d>" $old) (printf "</h%d>" $new) $result }}
{{ end }}
{{ end }}
{{ end }}
{{ return $result }}