diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-01 15:04:54 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-01 15:04:54 +0200 |
| commit | 511ad88f6bf7b0ec971df407469c494d9dcb139e (patch) | |
| tree | a654ebad83f1123c0ea23fe52f3f9d809bcbe56c /mardown/lexer.go | |
| parent | 02f1e42a7f83f041627eace65675c1d6cea7e8cc (diff) | |
feat(markdown): rewrite modifier parser to construct a better tree
Diffstat (limited to 'mardown/lexer.go')
| -rw-r--r-- | mardown/lexer.go | 9 |
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': |
