forked from NYANDEV/forgejo
fix #1873
This commit is contained in:
parent
902b578465
commit
9b6c835715
1 changed files with 11 additions and 0 deletions
|
@ -231,9 +231,15 @@ func RenderRawMarkdown(body []byte, urlPrefix string) []byte {
|
||||||
return body
|
return body
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
leftAngleBracket = []byte("</")
|
||||||
|
rightAngleBracket = []byte(">")
|
||||||
|
)
|
||||||
|
|
||||||
// PostProcessMarkdown treats different types of HTML differently,
|
// PostProcessMarkdown treats different types of HTML differently,
|
||||||
// and only renders special links for plain text blocks.
|
// and only renders special links for plain text blocks.
|
||||||
func PostProcessMarkdown(rawHtml []byte, urlPrefix string) []byte {
|
func PostProcessMarkdown(rawHtml []byte, urlPrefix string) []byte {
|
||||||
|
var startTag string
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
tokenizer := html.NewTokenizer(bytes.NewReader(rawHtml))
|
tokenizer := html.NewTokenizer(bytes.NewReader(rawHtml))
|
||||||
for html.ErrorToken != tokenizer.Next() {
|
for html.ErrorToken != tokenizer.Next() {
|
||||||
|
@ -243,6 +249,7 @@ func PostProcessMarkdown(rawHtml []byte, urlPrefix string) []byte {
|
||||||
buf.Write(RenderSpecialLink([]byte(token.String()), urlPrefix))
|
buf.Write(RenderSpecialLink([]byte(token.String()), urlPrefix))
|
||||||
|
|
||||||
case html.StartTagToken:
|
case html.StartTagToken:
|
||||||
|
startTag = token.Data
|
||||||
buf.WriteString(token.String())
|
buf.WriteString(token.String())
|
||||||
tagName := token.Data
|
tagName := token.Data
|
||||||
// If this is an excluded tag, we skip processing all output until a close tag is encountered.
|
// If this is an excluded tag, we skip processing all output until a close tag is encountered.
|
||||||
|
@ -258,6 +265,10 @@ func PostProcessMarkdown(rawHtml []byte, urlPrefix string) []byte {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case html.EndTagToken:
|
||||||
|
buf.Write(leftAngleBracket)
|
||||||
|
buf.WriteString(startTag)
|
||||||
|
buf.Write(rightAngleBracket)
|
||||||
default:
|
default:
|
||||||
buf.WriteString(token.String())
|
buf.WriteString(token.String())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue