From a65b9cb6b2c7dc7b48b8076d5e463776f1de0cf1 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sun, 14 Dec 2025 18:05:35 +0100 Subject: feat(markdown): custom replacer --- markdown/lexer.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'markdown/lexer.go') diff --git a/markdown/lexer.go b/markdown/lexer.go index b68bbf9..375ef7f 100644 --- a/markdown/lexer.go +++ b/markdown/lexer.go @@ -21,6 +21,7 @@ const ( lexerExternal lexerType = "external" lexerLiteral lexerType = "literal" + lexerReplace lexerType = "replace" ) type lexer struct { @@ -63,7 +64,7 @@ func (l *lexers) String() string { return s + "]" } -func lex(s string) *lexers { +func lex(s string, opt *Option) *lexers { lxs := &lexers{current: -1} var lexs []lexer var currentType lexerType @@ -127,7 +128,11 @@ func lex(s string) *lexers { fn(c, lexerList, nil) default: newLine = false - fn(c, lexerLiteral, nil) + if _, ok := opt.Replaces[c]; ok { + fn(c, lexerReplace, func(c rune) bool { return false }) + } else { + fn(c, lexerLiteral, nil) + } } } if len(previous) > 0 { -- cgit v1.2.3