Refactor markdown render (#32736)

and add some tests
This commit is contained in:
wxiaoguang 2024-12-06 20:00:24 +08:00 committed by GitHub
parent b32f0cdfa0
commit 3c4a06273f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 101 additions and 32 deletions

View file

@ -79,9 +79,10 @@ func (parser *inlineParser) Parse(parent ast.Node, block text.Reader, pc parser.
opener := len(parser.start)
// Now look for an ending line
depth := 0
ender := -1
for i := opener; i < len(line); i++ {
if bytes.HasPrefix(line[i:], parser.end) {
if depth == 0 && bytes.HasPrefix(line[i:], parser.end) {
succeedingCharacter := byte(0)
if i+len(parser.end) < len(line) {
succeedingCharacter = line[i+len(parser.end)]
@ -99,6 +100,11 @@ func (parser *inlineParser) Parse(parent ast.Node, block text.Reader, pc parser.
i++
continue
}
if line[i] == '{' {
depth++
} else if line[i] == '}' {
depth--
}
}
if ender == -1 {
return nil