pull/6622/merge
Ido Nov 2025-03-27 01:55:52 +08:00 committed by GitHub
commit b754d9caa9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 14 additions and 15 deletions

View File

@ -7,7 +7,6 @@ package markup
import (
"bytes"
"fmt"
"io"
"strings"
"github.com/unknwon/com"
@ -169,7 +168,7 @@ var (
rightAngleBracket = []byte(">")
)
var noEndTags = []string{"input", "br", "hr", "img"}
var noEndTags = []string{"input", "br", "hr", "img", "sup"}
// wrapImgWithLink warps link to standalone <img> tags.
func wrapImgWithLink(urlPrefix string, buf *bytes.Buffer, token html.Token) {
@ -288,27 +287,27 @@ outerLoop:
}
case html.EndTagToken:
if len(startTags) == 0 {
buf.WriteString(token.String())
break
if com.IsSliceContainsStr(startTags, token.Data){
for startTags[len(startTags)-1] != token.Data && len(startTags) > 1 {
buf.WriteString(ClosingTag(startTags[len(startTags)-1]))
startTags = startTags[:len(startTags)-1]
}
buf.WriteString(ClosingTag(startTags[len(startTags)-1]))
startTags = startTags[:len(startTags)-1]
}
buf.Write(leftAngleBracket)
buf.WriteString(startTags[len(startTags)-1])
buf.Write(rightAngleBracket)
startTags = startTags[:len(startTags)-1]
default:
buf.WriteString(token.String())
}
}
if io.EOF == tokenizer.Err() {
return buf.Bytes()
for i := len(startTags)-1; i >= 0; i-- {
buf.WriteString(ClosingTag(startTags[i]))
}
// If we are not at the end of the input, then some other parsing error has occurred,
// so return the input verbatim.
return rawHTML
return buf.Bytes()
}
func ClosingTag(s string) string{
return string(leftAngleBracket) + s + string(rightAngleBracket)
}
type Type string