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 --- backend/home.go | 2 +- markdown/ast.go | 6 ++++++ markdown/ast_quote.go | 4 +++- markdown/ast_test.go | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/backend/home.go b/backend/home.go index 064aeb2..e513707 100644 --- a/backend/home.go +++ b/backend/home.go @@ -118,7 +118,7 @@ func handleGenericLogsDisplay(w http.ResponseWriter, r *http.Request) *homeData sortLogs() } d.CurrentPage = page - d.PagesNumber = len(sortedLogs)/maxLogsPerPage + 1 + d.PagesNumber = max(1, (len(sortedLogs)-1)/maxLogsPerPage+1) if d.PagesNumber < page { notFound(w, r) return nil 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