aboutsummaryrefslogtreecommitdiff
path: root/markdown/lexer.go
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-02-05 10:50:12 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-02-05 16:36:41 +0000
commitd6e75145e54854484f2114398ff89787d243608a (patch)
treee79dc8d4cc0a25767dff618405bb8d982800229a /markdown/lexer.go
parentcd3bd5dff64fa80c7170d7f5d2d05f610fec36ee (diff)
feat(markdown): interprate callout
Diffstat (limited to 'markdown/lexer.go')
-rw-r--r--markdown/lexer.go19
1 files changed, 12 insertions, 7 deletions
diff --git a/markdown/lexer.go b/markdown/lexer.go
index f79b2ec..7386844 100644
--- a/markdown/lexer.go
+++ b/markdown/lexer.go
@@ -139,13 +139,18 @@ func lex(s string, opt *Option) *lexers {
if !newLine && i < len(runes)-1 {
next := runes[i+1]
runes := []rune(previous)
- if c == '[' && next == '!' {
- fn(c, lexerCallout, nil)
- continue
- } else if c == '!' && len(runes) > 0 && previous[len(previous)-1] == '[' {
- fn(c, lexerCallout, nil)
- continue
- } else if c == ']' && next != '(' {
+ if (c == '[' && next == '!') ||
+ (c == '!' && len(runes) > 0 && previous[len(previous)-1] == '[') ||
+ (c == ']' && next != '(') {
+ allSpace := true
+ for i := 0; allSpace && i < len(runes); i++ {
+ if runes[i] != ' ' {
+ allSpace = false
+ }
+ }
+ if allSpace {
+ previous = ""
+ }
fn(c, lexerCallout, nil)
continue
}