{{- $id := .Get "term_id" -}} {{- $length := .Get "length" -}} {{- $prepend := .Get "prepend" -}} {{- $glossaryBundle := site.GetPage "page" "docs/reference/glossary" -}} {{- $glossaryItems := $glossaryBundle.Resources.ByType "page" -}} {{- $term_info := $glossaryItems.GetMatch (printf "%s.md" $id ) -}} {{- $showFullDefinition := false -}} {{- if not $term_info -}} {{- errorf "[%s] %q: %q is not a valid glossary term_id, see ./docs/reference/glossary/* for a full list" site.Language.Lang .Page.Path $id -}} {{- end -}} {{- if or (eq "long" $length) (eq "all" $length) -}} {{- $showFullDefinition = true -}} {{- else if (eq "short" $length) -}} {{- $showFullDefinition = false -}} {{- else -}} {{- errorf "[%s] %q: invalid glossary definition length %q" site.Language.Lang .Page.Path $length -}} {{- end -}} {{- with $term_info.Content -}} {{- if not $showFullDefinition -}} {{- $firstPara := index (findRE "(?s)
.*?
" . 1) 0 -}} {{- $firstPara := $firstPara | strings.TrimSuffix "" | strings.TrimPrefix "" -}} {{- $first := slicestr $firstPara 0 1 | lower -}} {{- if $prepend -}} {{- $prepended := printf "
%s %s%s
" $prepend $first (slicestr $firstPara 1) -}} {{- $prepended | safeHTML -}} {{- else -}} {{- $firstPara | safeHTML -}} {{- end -}} {{- else -}} {{- if $prepend -}} {{- $firstPara := index (findRE "(?s).*?
" . 1) 0 -}} {{- $firstPara := $firstPara | strings.TrimSuffix "" | strings.TrimPrefix "" -}} {{- $first := slicestr $firstPara 0 1 | lower -}} {{- $prepended := printf "
%s %s%s
" $prepend $first (slicestr $firstPara 1) -}} {{- replace . $firstPara $prepended | safeHTML -}} {{- else -}} {{- . -}} {{- end -}} {{- end -}} {{- end -}}