providers/markdown: Separate HTML and non-HTML markdown parsing

This commit is contained in:
Sasha Koshka 2024-12-05 21:53:06 -05:00
parent 018749101a
commit 68200e66d6

View File

@ -42,6 +42,7 @@ func (this *Provider) FuncMap () template.FuncMap {
}
return template.FuncMap {
"markdown": stat.funcMarkdown,
"markdownHTML": stat.funcMarkdownHTML,
}
}
@ -49,11 +50,16 @@ type state struct {
md goldmark.Markdown
}
func (this *state) funcMarkdown (input any) (template.HTML, error) {
func (this *state) funcMarkdown (input any) (string, error) {
builder := strings.Builder { }
err := this.md.Convert(toBytes(input), &builder)
if err != nil { return "", nil }
return template.HTML(builder.String()), nil
return builder.String(), nil
}
func (this *state) funcMarkdownHTML (input any) (template.HTML, error) {
str, err := this.funcMarkdown(input)
return template.HTML(str), err
}
func toBytes (data any) []byte {