Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/output
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-17 15:04:00 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-02-24 20:59:50 +0300
commit08fdca9d9365eaf1e496a12e2af5e18617bd0e66 (patch)
tree6c6942d1b74a4160d93a997860bafd52b92025f5 /output
parent2c20f5bc00b604e72b3b7e401fbdbf9447fe3470 (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 'output')
-rw-r--r--output/layout.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/output/layout.go b/output/layout.go
index 91c7cc652..dcbdf461a 100644
--- a/output/layout.go
+++ b/output/layout.go
@@ -31,9 +31,15 @@ var reservedSections = map[string]bool{
type LayoutDescriptor struct {
Type string
Section string
- Kind string
- Lang string
- Layout string
+
+ // E.g. "page", but also used for the _markup render kinds, e.g. "render-image".
+ Kind string
+
+ // Comma-separated list of kind variants, e.g. "go,json" as variants which would find "render-codeblock-go.html"
+ KindVariants string
+
+ Lang string
+ Layout string
// LayoutOverride indicates what we should only look for the above layout.
LayoutOverride bool
@@ -139,6 +145,12 @@ func resolvePageTemplate(d LayoutDescriptor, f Format) []string {
}
if d.RenderingHook {
+ if d.KindVariants != "" {
+ // Add the more specific variants first.
+ for _, variant := range strings.Split(d.KindVariants, ",") {
+ b.addLayoutVariations(d.Kind + "-" + variant)
+ }
+ }
b.addLayoutVariations(d.Kind)
b.addSectionType()
}