mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-30 22:39:58 +02:00
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
This commit is contained in:
@@ -21,6 +21,7 @@ import (
|
||||
"github.com/gohugoio/hugo/config"
|
||||
"github.com/gohugoio/hugo/identity"
|
||||
"github.com/gohugoio/hugo/markup/converter/hooks"
|
||||
"github.com/gohugoio/hugo/markup/highlight"
|
||||
"github.com/gohugoio/hugo/markup/markup_config"
|
||||
"github.com/gohugoio/hugo/markup/tableofcontents"
|
||||
"github.com/spf13/afero"
|
||||
@@ -34,7 +35,7 @@ type ProviderConfig struct {
|
||||
ContentFs afero.Fs
|
||||
Logger loggers.Logger
|
||||
Exec *hexec.Exec
|
||||
Highlight func(code, lang, optsStr string) (string, error)
|
||||
highlight.Highlighter
|
||||
}
|
||||
|
||||
// ProviderProvider creates converter providers.
|
||||
@@ -127,9 +128,10 @@ type DocumentContext struct {
|
||||
|
||||
// RenderContext holds contextual information about the content to render.
|
||||
type RenderContext struct {
|
||||
Src []byte
|
||||
RenderTOC bool
|
||||
RenderHooks hooks.Renderers
|
||||
Src []byte
|
||||
RenderTOC bool
|
||||
|
||||
GetRenderer hooks.GetRendererFunc
|
||||
}
|
||||
|
||||
var FeatureRenderHooks = identity.NewPathIdentity("markup", "renderingHooks")
|
||||
|
Reference in New Issue
Block a user