{{ $faqPath := .Get "faqPath" }} {{ $faq := readFile $faqPath | default "" }} {{ $lines := split $faq "\n" }} {{ $groups := slice }} {{ $currentGroup := dict "title" "" "questions" (slice) }} {{ $currentQuestion := dict "question" "" "answer" (slice) }} {{ $inQuestion := false }} {{ $inGroup := false }} {{ range $i, $line := $lines }} {{ if (findRE `^## ` $line) }} {{ if $inGroup }} {{ if $inQuestion }} {{ $currentGroup = merge $currentGroup (dict "questions" ($currentGroup.questions | append (dict "question" ($currentQuestion.question | markdownify | plainify) "answer" (delimit $currentQuestion.answer "\n" | markdownify))) ) }} {{ $currentQuestion = dict "question" "" "answer" (slice) }} {{ $inQuestion = false }} {{ end }} {{ $groups = $groups | append $currentGroup }} {{ end }} {{ $currentGroup = dict "title" (replaceRE `^## ` "" $line) "questions" (slice) }} {{ $inGroup = true }} {{ else if (findRE `^### ` $line) }} {{ if $inQuestion }} {{ $currentGroup = merge $currentGroup (dict "questions" ($currentGroup.questions | append (dict "question" ($currentQuestion.question | markdownify | plainify) "answer" (delimit $currentQuestion.answer "\n" | markdownify))) ) }} {{ $currentQuestion = dict "question" "" "answer" (slice) }} {{ end }} {{ $currentQuestion = merge $currentQuestion (dict "question" (replaceRE `^### ` "" $line)) }} {{ $inQuestion = true }} {{ else if $inQuestion }} {{ $currentQuestion = merge $currentQuestion (dict "answer" ($currentQuestion.answer | append $line)) }} {{ end }} {{ end }} {{ if $inQuestion }} {{ $currentGroup = merge $currentGroup (dict "questions" ($currentGroup.questions | append (dict "question" ($currentQuestion.question | markdownify | plainify) "answer" (delimit $currentQuestion.answer "\n" | markdownify))) ) }} {{ end }} {{ if $inGroup }} {{ $groups = $groups | append $currentGroup }} {{ end }}
{{ range $groups }}

{{ .title }}

{{ range .questions }}
{{ end }}
{{ end }}