aboutsummaryrefslogtreecommitdiff
path: root/mardown/lexer.go
diff options
context:
space:
mode:
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':