diff --git a/.air.toml b/.air.toml
index de97bd8b29..8a9523b89a 100644
--- a/.air.toml
+++ b/.air.toml
@@ -20,3 +20,6 @@ exclude_dir = [
]
exclude_regex = ["_test.go$", "_gen.go$"]
stop_on_error = true
+
+[log]
+main_only = true
diff --git a/modules/markup/markdown/markdown_test.go b/modules/markup/markdown/markdown_test.go
index 3e1d75b291..5d33d89748 100644
--- a/modules/markup/markdown/markdown_test.go
+++ b/modules/markup/markdown/markdown_test.go
@@ -549,6 +549,10 @@ func TestMathBlock(t *testing.T) {
`$$a`,
`
$$a
` + nl,
},
+ {
+ "$a$ ($b$) [$c$] {$d$}",
+ `a
(b
) [$c$] {$d$}
` + nl,
+ },
}
for _, test := range testcases {
diff --git a/modules/markup/markdown/math/inline_parser.go b/modules/markup/markdown/math/inline_parser.go
index 862234e69b..614cf329af 100644
--- a/modules/markup/markdown/math/inline_parser.go
+++ b/modules/markup/markdown/math/inline_parser.go
@@ -45,6 +45,10 @@ func isPunctuation(b byte) bool {
return b == '.' || b == '!' || b == '?' || b == ',' || b == ';' || b == ':'
}
+func isBracket(b byte) bool {
+ return b == ')'
+}
+
func isAlphanumeric(b byte) bool {
return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9')
}
@@ -84,7 +88,7 @@ func (parser *inlineParser) Parse(parent ast.Node, block text.Reader, pc parser.
break
}
suceedingCharacter := line[pos]
- if !isPunctuation(suceedingCharacter) && !(suceedingCharacter == ' ') {
+ if !isPunctuation(suceedingCharacter) && !(suceedingCharacter == ' ') && !isBracket(suceedingCharacter) {
return nil
}
if line[ender-1] != '\\' {