github.com/gohugoio/go-i18n/v2 v2.1.3-0.20230805085216-e63c13218d0e
github.com/gohugoio/hashstructure v0.5.0
github.com/gohugoio/httpcache v0.7.0
- github.com/gohugoio/hugo-goldmark-extensions/extras v0.3.0
+ github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0
github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1
github.com/gohugoio/locales v0.14.0
github.com/gohugoio/localescompressed v1.0.1
github.com/gohugoio/hashstructure v0.5.0/go.mod h1:Ser0TniXuu/eauYmrwM4o64EBvySxNzITEOLlm4igec=
github.com/gohugoio/httpcache v0.7.0 h1:ukPnn04Rgvx48JIinZvZetBfHaWE7I01JR2Q2RrQ3Vs=
github.com/gohugoio/httpcache v0.7.0/go.mod h1:fMlPrdY/vVJhAriLZnrF5QpN3BNAcoBClgAyQd+lGFI=
-github.com/gohugoio/hugo-goldmark-extensions/extras v0.3.0 h1:gj49kTR5Z4Hnm0ZaQrgPVazL3DUkppw+x6XhHCmh+Wk=
-github.com/gohugoio/hugo-goldmark-extensions/extras v0.3.0/go.mod h1:IMMj7xiUbLt1YNJ6m7AM4cnsX4cFnnfkleO/lBHGzUg=
+github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0 h1:dco+7YiOryRoPOMXwwaf+kktZSCtlFtreNdiJbETvYE=
+github.com/gohugoio/hugo-goldmark-extensions/extras v0.5.0/go.mod h1:CRrxQTKeM3imw+UoS4EHKyrqB7Zp6sAJiqHit+aMGTE=
github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1 h1:nUzXfRTszLliZuN0JTKeunXTRaiFX6ksaWP0puLLYAY=
github.com/gohugoio/hugo-goldmark-extensions/passthrough v0.3.1/go.mod h1:Wy8ThAA8p2/w1DY05vEzq6EIeI2mzDjvHsu7ULBVwog=
github.com/gohugoio/locales v0.14.0 h1:Q0gpsZwfv7ATHMbcTNepFd59H7GoykzWJIxi113XGDc=
if rendererOptions != nil {
copy(tocRendererOptions, rendererOptions)
}
+
tocRendererOptions = append(tocRendererOptions,
renderer.WithNodeRenderers(util.Prioritized(extension.NewStrikethroughHTMLRenderer(), 500)),
- renderer.WithNodeRenderers(util.Prioritized(emoji.NewHTMLRenderer(), 200)))
+ renderer.WithNodeRenderers(util.Prioritized(emoji.NewHTMLRenderer(), 200)),
+ )
+
+ inlineTags := []extras.InlineTag{
+ extras.DeleteTag,
+ extras.InsertTag,
+ extras.MarkTag,
+ extras.SubscriptTag,
+ extras.SuperscriptTag,
+ }
+
+ for _, tag := range inlineTags {
+ tocRendererOptions = append(tocRendererOptions,
+ renderer.WithNodeRenderers(util.Prioritized(extras.NewInlineTagHTMLRenderer(tag), tag.RenderPriority)),
+ )
+ }
+
var (
extensions = []goldmark.Extender{
hugocontext.New(pcfg.Logger),
emojiAst "github.com/yuin/goldmark-emoji/ast"
+ "github.com/gohugoio/hugo-goldmark-extensions/extras"
"github.com/gohugoio/hugo/markup/tableofcontents"
"github.com/yuin/goldmark"
ast.KindImage,
ast.KindEmphasis,
strikethroughAst.KindStrikethrough,
- emojiAst.KindEmoji:
+ emojiAst.KindEmoji,
+ extras.KindDelete,
+ extras.KindInsert,
+ extras.KindMark,
+ extras.KindSubscript,
+ extras.KindSuperscript:
err := t.r.Render(&headingText, reader.Source(), n)
if err != nil {
return s, err
package goldmark_test
import (
+ "strings"
"testing"
"github.com/gohugoio/hugo/hugolib"
b.AssertFileExists("public/index.html", true)
}
+
+// Issue 12605
+func TestTableOfContentsWithGoldmarkExtras(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ['page','rss','section','sitemap','taxonomy','term']
+[markup.goldmark.extensions]
+strikethrough = false
+[markup.goldmark.extensions.extras.delete]
+enable = true
+[markup.goldmark.extensions.extras.insert]
+enable = true
+[markup.goldmark.extensions.extras.mark]
+enable = true
+[markup.goldmark.extensions.extras.subscript]
+enable = true
+[markup.goldmark.extensions.extras.superscript]
+enable = true
+
+-- content/_index.md --
+---
+title: home
+---
+## ~~deleted~~
+
+## ++inserted++
+
+## ==marked==
+
+## H~2~O
+
+## 1^st^
+-- layouts/home.html --
+{{ .TableOfContents }}
+`
+
+ b := hugolib.Test(t, files)
+
+ b.AssertFileContent("public/index.html",
+ `<li><a href="#deleted"><del>deleted</del></a></li>`,
+ `<li><a href="#inserted"><ins>inserted</ins></a></li>`,
+ `<li><a href="#marked"><mark>marked</mark></a></li>`,
+ `<li><a href="#h2o">H<sub>2</sub>O</a></li>`,
+ `<li><a href="#1st">1<sup>st</sup></a></li>`,
+ )
+
+ files = strings.ReplaceAll(files, "enable = true", "enable = false")
+
+ b = hugolib.Test(t, files)
+
+ b.AssertFileContent("public/index.html",
+ `<li><a href="#deleted">~~deleted~~</a></li>`,
+ `<li><a href="#inserted">++inserted++</a></li>`,
+ `<li><a href="#marked">==marked==</a></li>`,
+ `<li><a href="#h2o">H~2~O</a></li>`,
+ `<li><a href="#1st">1^st^</a></li>`,
+ )
+}