From f5607e75f98d50dfd0496cfd5a76bc0d905403f7 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Tue, 30 Sep 2025 20:23:51 +0200 Subject: refactor(markdown): use paragraph for header --- mardown/ast_header.go | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) (limited to 'mardown/ast_header.go') diff --git a/mardown/ast_header.go b/mardown/ast_header.go index 7c997d5..07d7e1c 100644 --- a/mardown/ast_header.go +++ b/mardown/ast_header.go @@ -10,7 +10,7 @@ var ErrInvalidHeader = errors.New("invalid header") type astHeader struct { level uint - content []block + content *astParagraph } func (a *astHeader) Eval() (template.HTML, error) { @@ -18,33 +18,19 @@ func (a *astHeader) Eval() (template.HTML, error) { return "", ErrInvalidHeader } var content template.HTML - for _, b := range a.content { - c, err := b.Eval() - if err != nil { - return "", err - } - content += c + content, err := a.content.Eval() + if err != nil { + return "", err } - return template.HTML(fmt.Sprintf("%s", a.level, content, a.level)), nil + return template.HTML(fmt.Sprintf("%s", a.level, content, a.level)), nil } func header(lxs lexers) (block, error) { b := &astHeader{level: uint(len(lxs.Current().Value))} - for lxs.Next() && lxs.Current().Type != lexerBreak { - bl, err := getBlock(lxs) - if err != nil { - return nil, err - } - // if this is a header, just consider it as literal # - if h, ok := bl.(*astHeader); ok { - var s string - for range h.level { - s += "#" - } - b.content = append(b.content, astLiteral(s)) - b.content = append(b.content, h.content...) - } - b.content = append(b.content, bl) + var err error + b.content, err = paragraph(lxs, true) + if err != nil { + return nil, err } return b, nil } -- cgit v1.2.3