diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-17 13:04:00 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-02-24 18:59:50 +0100 |
commit | 08fdca9d9365eaf1e496a12e2af5e18617bd0e66 (patch) | |
tree | 6c6942d1b74a4160d93a997860bafd52b92025f5 /markup/goldmark/toc_test.go | |
parent | 2c20f5bc00b604e72b3b7e401fbdbf9447fe3470 (diff) |
Add Markdown diagrams and render hooks for code blocks
You can now create custom hook templates for code blocks, either one for all (`render-codeblock.html`) or for a given code language (e.g. `render-codeblock-go.html`).
We also used this new hook to add support for diagrams in Hugo:
* Goat (Go ASCII Tool) is built-in and enabled by default; just create a fenced code block with the language `goat` and start draw your Ascii diagrams.
* Another popular alternative for diagrams in Markdown, Mermaid (supported by GitHub), can also be implemented with a simple template. See the Hugo documentation for more information.
Updates #7765
Closes #9538
Fixes #9553
Fixes #8520
Fixes #6702
Fixes #9558
Diffstat (limited to 'markup/goldmark/toc_test.go')
-rw-r--r-- | markup/goldmark/toc_test.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/markup/goldmark/toc_test.go b/markup/goldmark/toc_test.go index f8fcf79d4..6e080bf46 100644 --- a/markup/goldmark/toc_test.go +++ b/markup/goldmark/toc_test.go @@ -18,6 +18,7 @@ import ( "strings" "testing" + "github.com/gohugoio/hugo/markup/converter/hooks" "github.com/gohugoio/hugo/markup/markup_config" "github.com/gohugoio/hugo/common/loggers" @@ -27,6 +28,8 @@ import ( qt "github.com/frankban/quicktest" ) +var nopGetRenderer = func(t hooks.RendererType, id interface{}) interface{} { return nil } + func TestToc(t *testing.T) { c := qt.New(t) @@ -58,7 +61,7 @@ And then some. c.Assert(err, qt.IsNil) conv, err := p.New(converter.DocumentContext{}) c.Assert(err, qt.IsNil) - b, err := conv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true}) + b, err := conv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true, GetRenderer: nopGetRenderer}) c.Assert(err, qt.IsNil) got := b.(converter.TableOfContentsProvider).TableOfContents().ToHTML(2, 3, false) c.Assert(got, qt.Equals, `<nav id="TableOfContents"> @@ -108,7 +111,7 @@ func TestEscapeToc(t *testing.T) { "# `echo codeblock`", }, "\n") // content := "" - b, err := safeConv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true}) + b, err := safeConv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true, GetRenderer: nopGetRenderer}) c.Assert(err, qt.IsNil) got := b.(converter.TableOfContentsProvider).TableOfContents().ToHTML(1, 2, false) c.Assert(got, qt.Equals, `<nav id="TableOfContents"> @@ -120,7 +123,7 @@ func TestEscapeToc(t *testing.T) { </ul> </nav>`, qt.Commentf(got)) - b, err = unsafeConv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true}) + b, err = unsafeConv.Convert(converter.RenderContext{Src: []byte(content), RenderTOC: true, GetRenderer: nopGetRenderer}) c.Assert(err, qt.IsNil) got = b.(converter.TableOfContentsProvider).TableOfContents().ToHTML(1, 2, false) c.Assert(got, qt.Equals, `<nav id="TableOfContents"> |