From 1a2865717e82cbf567ad31622afdfa75f7cbfa1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Sat, 4 Oct 2025 00:02:29 +0200 Subject: fix(markdown): parsing quote was weird --- markdown/ast.go | 6 ++++++ markdown/ast_quote.go | 4 +++- markdown/ast_test.go | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'markdown') diff --git a/markdown/ast.go b/markdown/ast.go index b19fd07..9c9816e 100644 --- a/markdown/ast.go +++ b/markdown/ast.go @@ -19,6 +19,12 @@ type tree struct { } func (t *tree) Eval(opt *Option) (template.HTML, *ParseError) { + if opt == nil { + opt = new(Option) + } + if opt.ImageSource == nil { + opt.ImageSource = func(s string) string { return s } + } var content template.HTML for _, c := range t.blocks { ct, err := c.Eval(opt) diff --git a/markdown/ast_quote.go b/markdown/ast_quote.go index ebd0527..fa3a878 100644 --- a/markdown/ast_quote.go +++ b/markdown/ast_quote.go @@ -44,7 +44,7 @@ func quote(lxs *lexers) (*astQuote, *ParseError) { for lxs.Next() && n < 2 { switch lxs.Current().Type { case lexerBreak: - n += len(lxs.Current().Value) + n = len(lxs.Current().Value) quoteContinue = false case lexerQuote: n = 0 @@ -63,6 +63,7 @@ func quote(lxs *lexers) (*astQuote, *ParseError) { if err != nil { return nil, err } + lxs.Before() // because we must parse the line break if !source { tree.quote = append(tree.quote, p) @@ -77,5 +78,6 @@ func quote(lxs *lexers) (*astQuote, *ParseError) { return tree, nil } } + lxs.Before() // because the code did not use it return tree, nil } diff --git a/markdown/ast_test.go b/markdown/ast_test.go index a75840c..62a1d23 100644 --- a/markdown/ast_test.go +++ b/markdown/ast_test.go @@ -17,6 +17,7 @@ en *italique* et les **_deux en même temps_** ! > sur plusieurs lignes avec une source > qui recommence après ! +qui a elle aussi une source :D - Ceci est une liste - pas ordonnée @@ -34,7 +35,7 @@ var parsed = `

Avec une description classique, sur plusieurs lignes !

Et je peux mettre du texte en gras, en italique et les deux en même temps !

Je suis une magnifique citation sur plusieurs lignes

avec une source

-
qui recommence après !
+
qui recommence après !

qui a elle aussi une source :D

  1. et maintenant
  2. elle l'est
-- cgit v1.2.3