{{ define "main" }} {{ $emoji := cond (.Page.Params.showlinkemoji | default true) (emojify ":link: ") "" -}} => / {{ emojify ":link:" | safeHTML }} Return to homepage {{ if (.Page.Params.pageinfo | default true) }}{{ partial "pageinfo.gmi" . }} {{ end -}} # {{ .Name | safeHTML }} {{ $content := .RawContent }} {{- $scratch := newScratch }} {{- $chunks := findRE `(?sm)(?:(.*?)(^\x60{3}[^\x60].*?^\x60{3}$))|(.*$)` $content }} {{- $ref_index := 0 }} {{- range $chunks }} {{- $before_pre := replaceRE `(?sm)(?:(.*?)(^\x60{3}[^\x60].*?^\x60{3}$))|(.*$)` "$1" . 1 }} {{- $pre := replaceRE `(?sm)(?:(.*?)(^\x60{3}[^\x60].*?^\x60{3}$))|(.*$)` "$2" . 1 }} {{- $after_pre := replaceRE `(?sm)(?:(.*?)(^\x60{3}[^\x60].*?^\x60{3}$))|(.*$)` "$3" . 1 }} {{- $rendered_text := print $before_pre $after_pre }} {{- $chunk_refs := findRE `!?\[(.+?)\]\((.+?)(?:\s+".*?")?\)` $rendered_text }} {{- $scratch.Add "refs" $chunk_refs }} {{- if ($.Page.Params.makerefs | default true) }} {{- range $chunk_refs }} {{- $ref_index = add $ref_index 1 }} {{- $ref_text := replaceRE `!?\[(.+?)\]\((.+?)(?:\s+".*?")?\)` "$1" . 1 }} {{- $rendered_text = replace $rendered_text . (print $ref_text "[" $ref_index "]") 1 }} {{- end }} {{- else }} {{- $rendered_text = $rendered_text | replaceRE `(?m)^!?\[(.+?)\]\((.+?)(?:\s+".*?")?\)$` (print "=> $2 " $emoji "$1") }} {{- end }} {{- $rendered_text = $rendered_text | replaceRE `(?m)^####{1,3}` "###" }} {{- $rendered_text = $rendered_text | replaceRE `\*{3}(\S|\S.*?\S)\*{3}` "$1" }} {{- $rendered_text = $rendered_text | replaceRE `\*{2}(\S|\S.*?\S)\*{2}` "$1" }} {{- $rendered_text = $rendered_text | replaceRE `\*{1}(\S|\S.*?\S)\*{1}` "$1" }} {{- $rendered_text = $rendered_text | replaceRE `(?m)^[-+] ` "* " }} {{- $rendered_text = $rendered_text | emojify }} {{- if $before_pre }} {{- $rendered_text | safeHTML }} {{- $pre | safeHTML }} {{- else }} {{- $pre | safeHTML }} {{- $rendered_text | safeHTML }} {{- end }} {{- end }} {{- $refs := $scratch.Get "refs" }} {{- if and (.Page.Params.makerefs | default true) $refs }} {{- $ref_index := 0 }} ## Links {{- range $refs }} {{- $ref_index = add $ref_index 1 }} {{- $ref_text := replaceRE `!?\[(.+?)\]\((.+?)(?:\s+".*?")?\)` "$1" . 1 }} {{- $ref_link := replaceRE `!?\[(.+?)\]\((.+?)(?:\s+".*?")?\)` "$2" . 1 }} {{ print "=> " $ref_link (emojify " :link: ") $ref_index ": " $ref_text | safeHTML }} {{- end }} {{- end }} {{- end }}