--- a/vendor/github.com/russross/blackfriday/v2/block.go Tue Aug 23 22:33:28 2022 +0200
+++ b/vendor/github.com/russross/blackfriday/v2/block.go Tue Aug 23 22:39:43 2022 +0200
@@ -18,8 +18,7 @@
"html"
"regexp"
"strings"
-
- "github.com/shurcooL/sanitized_anchor_name"
+ "unicode"
)
const (
@@ -259,7 +258,7 @@
}
if end > i {
if id == "" && p.extensions&AutoHeadingIDs != 0 {
- id = sanitized_anchor_name.Create(string(data[i:end]))
+ id = SanitizedAnchorName(string(data[i:end]))
}
block := p.addBlock(Heading, data[i:end])
block.HeadingID = id
@@ -673,6 +672,7 @@
if beg == 0 || beg >= len(data) {
return 0
}
+ fenceLength := beg - 1
var work bytes.Buffer
work.Write([]byte(info))
@@ -706,6 +706,7 @@
if doRender {
block := p.addBlock(CodeBlock, work.Bytes()) // TODO: get rid of temp buffer
block.IsFenced = true
+ block.FenceLength = fenceLength
finalizeCodeBlock(block)
}
@@ -1503,7 +1504,7 @@
id := ""
if p.extensions&AutoHeadingIDs != 0 {
- id = sanitized_anchor_name.Create(string(data[prev:eol]))
+ id = SanitizedAnchorName(string(data[prev:eol]))
}
block := p.addBlock(Heading, data[prev:eol])
@@ -1588,3 +1589,24 @@
}
return i
}
+
+// SanitizedAnchorName returns a sanitized anchor name for the given text.
+//
+// It implements the algorithm specified in the package comment.
+func SanitizedAnchorName(text string) string {
+ var anchorName []rune
+ futureDash := false
+ for _, r := range text {
+ switch {
+ case unicode.IsLetter(r) || unicode.IsNumber(r):
+ if futureDash && len(anchorName) > 0 {
+ anchorName = append(anchorName, '-')
+ }
+ futureDash = false
+ anchorName = append(anchorName, unicode.ToLower(r))
+ default:
+ futureDash = true
+ }
+ }
+ return string(anchorName)
+}