diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-02 10:23:52 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-02 10:23:52 +0200 |
| commit | f0899429d56849f8cdf58f53a8232e4433f6725e (patch) | |
| tree | 263178bc1b9cdd435308c8d622ff7c864c09ff22 /mardown/lexer.go | |
| parent | ce480a18b865acc21eb6c36dea8fc27b08061603 (diff) | |
feat(markdown): support escape
Diffstat (limited to 'mardown/lexer.go')
| -rw-r--r-- | mardown/lexer.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mardown/lexer.go b/mardown/lexer.go index c056460..64fa78b 100644 --- a/mardown/lexer.go +++ b/mardown/lexer.go @@ -7,8 +7,6 @@ type lexerType string const ( lexerBreak lexerType = "break" - lexerEscape lexerType = "escape" - lexerModifier lexerType = "modifier" lexerCode lexerType = "code" @@ -75,7 +73,17 @@ func lex(s string) *lexers { currentType = t previous += string(c) } + literalNext := false for _, c := range []rune(s) { + if literalNext { + fn(c, lexerLiteral) + literalNext = false + continue + } + if c == '\\' { + literalNext = true + continue + } switch c { case '*', '_': if (currentType != lexerModifier && len(previous) > 0) || @@ -96,8 +104,6 @@ func lex(s string) *lexers { fn(c, lexerQuote) case '[', ']', '(', ')', '!': fn(c, lexerExternal) - case '\\': - fn(c, lexerEscape) case '-', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.': fn(c, lexerList) default: |
