mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-20 20:07:03 +01:00
Fix markdown math brackets render problem (#31420)
Close #31371, support `($ ... $)` like GitHub
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
(cherry picked from commit 90a3c20e7996e2db577a51d37f2190e2e990a22a)
Conflicts:
modules/markup/markdown/markdown_test.go
trivial context conflict
(cherry picked from commit b53be9d45c
)
(cherry picked from commit 7fbcc58062c5cad5c4c8674915ea0fffa659b51d)
This commit is contained in:
parent
e61aa25412
commit
4ed5044dea
2 changed files with 9 additions and 1 deletions
|
@ -549,6 +549,10 @@ func TestMathBlock(t *testing.T) {
|
||||||
`$$a`,
|
`$$a`,
|
||||||
`<p>$$a</p>` + nl,
|
`<p>$$a</p>` + nl,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"$a$ ($b$) [$c$] {$d$}",
|
||||||
|
`<p><code class="language-math is-loading">a</code> (<code class="language-math is-loading">b</code>) [$c$] {$d$}</p>` + nl,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range testcases {
|
for _, test := range testcases {
|
||||||
|
|
|
@ -45,6 +45,10 @@ func isPunctuation(b byte) bool {
|
||||||
return b == '.' || b == '!' || b == '?' || b == ',' || b == ';' || b == ':'
|
return b == '.' || b == '!' || b == '?' || b == ',' || b == ';' || b == ':'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isBracket(b byte) bool {
|
||||||
|
return b == ')'
|
||||||
|
}
|
||||||
|
|
||||||
func isAlphanumeric(b byte) bool {
|
func isAlphanumeric(b byte) bool {
|
||||||
return (b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || (b >= '0' && b <= '9')
|
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
|
break
|
||||||
}
|
}
|
||||||
suceedingCharacter := line[pos]
|
suceedingCharacter := line[pos]
|
||||||
if !isPunctuation(suceedingCharacter) && !(suceedingCharacter == ' ') {
|
if !isPunctuation(suceedingCharacter) && !(suceedingCharacter == ' ') && !isBracket(suceedingCharacter) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if line[ender-1] != '\\' {
|
if line[ender-1] != '\\' {
|
||||||
|
|
Loading…
Reference in a new issue