aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hergès <william@herges.fr>2025-10-04 00:02:29 +0200
committerWilliam Hergès <william@herges.fr>2025-10-04 00:02:29 +0200
commit1a2865717e82cbf567ad31622afdfa75f7cbfa1c (patch)
treea45d44ba563d0300f554e8cd68eb87f17566bf2d
parent40b1f53362105a495c6a486f3488e83d79eb582a (diff)
fix(markdown): parsing quote was weird
-rw-r--r--backend/home.go2
-rw-r--r--markdown/ast.go6
-rw-r--r--markdown/ast_quote.go4
-rw-r--r--markdown/ast_test.go3
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 = `
<p>Avec une description classique, sur plusieurs lignes !</p>
<p>Et je peux mettre du texte en <b>gras</b>, en <em>italique</em> et les <b><em>deux en même temps</em></b> !</p>
<div class="quote"><blockquote>Je suis une magnifique citation sur plusieurs lignes</blockquote><p>avec une source</p></div>
-<div class="quote"><blockquote>qui recommence après !</blockquote></div>
+<div class="quote"><blockquote>qui recommence après !</blockquote><p>qui a elle aussi une source :D</p></div>
<ul><li>Ceci est une liste</li><li>pas ordonnée</li></ul>
<ol><li>et maintenant</li><li>elle l&#39;est</li></ol>
<ul><li>hehe</li></ul>