blob: 030656b26175924b1ab54cc1959519cec28cb7a5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package mardown
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)
}
wanted := strings.ReplaceAll(parsed, "\n", "")
if string(res) != wanted {
t.Errorf("invalid string, got %s", res)
t.Logf("wanted %s", wanted)
}
}
|