aboutsummaryrefslogtreecommitdiff
path: root/mardown
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-01 09:26:10 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-01 09:26:10 +0200
commit914dc68dfbef59908246b8bfff6d1e7ca705249d (patch)
tree0651c3bea86ac0e6bb5a2e54138ee140b1128692 /mardown
parentce5cf951ac6228f96f6f51e3c9e4d8af24702b55 (diff)
test(markdown): general file
Diffstat (limited to 'mardown')
-rw-r--r--mardown/ast_modifier.go2
-rw-r--r--mardown/ast_test.go37
2 files changed, 37 insertions, 2 deletions
diff --git a/mardown/ast_modifier.go b/mardown/ast_modifier.go
index 570fbd2..2d1cd4f 100644
--- a/mardown/ast_modifier.go
+++ b/mardown/ast_modifier.go
@@ -57,7 +57,7 @@ func modifier(lxs *lexers) (*astModifier, error) {
}
}
var s string
- for lxs.Next() {
+ for modInside != nil && lxs.Next() {
switch lxs.Current().Type {
case lexerLiteral:
s += lxs.Current().Value
diff --git a/mardown/ast_test.go b/mardown/ast_test.go
index 4114150..6215ced 100644
--- a/mardown/ast_test.go
+++ b/mardown/ast_test.go
@@ -1,6 +1,41 @@
package mardown
-import "testing"
+import (
+ "strings"
+ "testing"
+)
+
+var raw = `
+# Je suis un titre
+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
+`
+
+var parsed = `
+<h1>Je suis un titre</h1>
+<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 source sur plusieurs lignes</blockquote><p>avec une source</p></div>
+`
func TestAst(t *testing.T) {
+ lxs := lex(raw)
+ tree, err := ast(lxs)
+ if err != nil {
+ t.Fatal(err)
+ }
+ res, err := tree.Eval()
+ if err != nil {
+ t.Fatal(err)
+ }
+ if string(res) != strings.ReplaceAll(parsed, "\n", "") {
+ t.Errorf("invalid string, got %s", res)
+ }
}