aboutsummaryrefslogtreecommitdiff
path: root/mardown/lexer.go
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-01 15:04:54 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-01 15:04:54 +0200
commit511ad88f6bf7b0ec971df407469c494d9dcb139e (patch)
treea654ebad83f1123c0ea23fe52f3f9d809bcbe56c /mardown/lexer.go
parent02f1e42a7f83f041627eace65675c1d6cea7e8cc (diff)
feat(markdown): rewrite modifier parser to construct a better tree
Diffstat (limited to 'mardown/lexer.go')
-rw-r--r--mardown/lexer.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/mardown/lexer.go b/mardown/lexer.go
index f87e61c..8450032 100644
--- a/mardown/lexer.go
+++ b/mardown/lexer.go
@@ -74,7 +74,14 @@ func lex(s string) *lexers {
for _, c := range []rune(s) {
switch c {
case '*', '_':
- fn(c, lexerModifier)
+ if (currentType != lexerModifier && len(previous) > 0) ||
+ (len(previous) > 0 && []rune(previous)[0] != c) ||
+ len(previous) > 2 {
+ lexs = append(lexs, lexer{Type: currentType, Value: previous})
+ previous = ""
+ }
+ currentType = lexerModifier
+ previous += string(c)
case '`':
fn(c, lexerCode)
case '\n':