diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-09-30 18:56:23 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-09-30 19:38:10 +0200 |
| commit | 9b6eb662150adbcd5ffe293a8719ffc4d7c14996 (patch) | |
| tree | a47bcdcab27e91b4fa5b368add1256127943df3f /mardown/ast_header.go | |
| parent | baccf109b9d7eb7e95f084579eaea7b6d88b782b (diff) | |
feat(markdown): set eval return type
Diffstat (limited to 'mardown/ast_header.go')
| -rw-r--r-- | mardown/ast_header.go | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/mardown/ast_header.go b/mardown/ast_header.go index c7bc85d..7c997d5 100644 --- a/mardown/ast_header.go +++ b/mardown/ast_header.go @@ -1,12 +1,31 @@ package mardown +import ( + "errors" + "fmt" + "html/template" +) + +var ErrInvalidHeader = errors.New("invalid header") + type astHeader struct { level uint content []block } -func (a *astHeader) Eval() error { - return nil +func (a *astHeader) Eval() (template.HTML, error) { + if a.level > 6 { + return "", ErrInvalidHeader + } + var content template.HTML + for _, b := range a.content { + c, err := b.Eval() + if err != nil { + return "", err + } + content += c + } + return template.HTML(fmt.Sprintf("<h%d>%s<h%d>", a.level, content, a.level)), nil } func header(lxs lexers) (block, error) { |
