{{- $content := trim .Inner "\n" -}} {{- $classList := slice -}} {{- with .Get "class" -}} {{- $classList = $classList | append . -}} {{- end -}} {{- $tag := .Get "tag" | default "div" -}} {{- if .Get "code" -}} {{- /* highlight code content without line number */ -}} {{- $content = highlight $content (.Get "code") "lineNos=false, noClasses=false" -}} {{- /* delete outer label */ -}} {{- $content = replaceRE `.*]*>(?s)(.*).*` "$1" $content -}} {{- if .Get "code-link" -}} {{- /* parsing code links */ -}} {{- $content = replaceRE `(]*>)([^<>]*)\[([^<>]+)\]\(([^<>]+)\)([^<>]*)()` "$1$2$6$3$1$5$6" $content -}} {{- end -}} {{- /* split multiline string */ -}} {{- $content = split $content "\n" -}} {{- $classList = $classList | append "highlight" -}} {{- else -}} {{- $content = $content | .Page.RenderString -}} {{- end -}} {{- /* trim the newline */ -}} {{- $id := dict "Content" $content "Scratch" .Page.Scratch | partial "function/id.html" -}} {{- $key := .Get "group" | string | default $id -}} {{- $typeitMap := (.Page.Scratch.Get "this").typeitMap | default dict -}} {{- $group := index $typeitMap $key -}} {{- $group = $group | default slice | append $id -}} {{- dict $key $group | merge $typeitMap | .Page.Scratch.SetInMap "this" "typeitMap" -}} {{- $attrs := printf `id="%v"` $id -}} {{- with $classList -}} {{- $attrs = delimit $classList " " | printf `%v class="%v"` $attrs -}} {{- end -}}
{{- printf `<%v %v>` $tag $attrs $tag | safeHTML -}}