diff options
author | Corné Haasjes <c.haasjes@lumc.nl> | 2025-04-01 19:38:31 +0200 |
---|---|---|
committer | Corné Haasjes <c.haasjes@lumc.nl> | 2025-04-01 19:38:31 +0200 |
commit | b8715b0cf2a4a371c45703704da9d8232f6cf907 (patch) | |
tree | e92b292c8ba5a1d55bf2918bbedc4c9698ebd796 | |
parent | 9794243a3ff85aae024d6a8f7439702cc66f3f73 (diff) |
Add support for hooks in layouts/partials/hooks
Supported hooks:
- head_start
- head_end
- body_end
- footer_start
-rw-r--r-- | layouts/_default/baseof.html | 2 | ||||
-rw-r--r-- | layouts/partials/footer.html | 3 | ||||
-rw-r--r-- | layouts/partials/functions/get_hook.html | 23 | ||||
-rw-r--r-- | layouts/partials/head.html | 5 |
4 files changed, 33 insertions, 0 deletions
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 7a5579d..4ff7215 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -32,6 +32,8 @@ {{ partialCached "math.html" . }} {{ end }} + {{/* Body end hook */}} + {{ partial "functions/get_hook.html" (dict "hook" "body_end" "context" .) }} </body> <script src="{{ "js/theme-switch.js" | relURL }}"></script> diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 579e50a..cb20f6f 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,5 +1,8 @@ {{ $showFooter := default true .Site.Params.showFooter }} {{ if $showFooter }} + {{/* Footer start hook */}} + {{ partial "functions/get_hook.html" (dict "hook" "footer_start" "context" .) }} + {{ if not .Site.Params.footerContent }} <p>Powered by <a href="https://gohugo.io/">Hugo</a> diff --git a/layouts/partials/functions/get_hook.html b/layouts/partials/functions/get_hook.html new file mode 100644 index 0000000..79c9987 --- /dev/null +++ b/layouts/partials/functions/get_hook.html @@ -0,0 +1,23 @@ +{{/* + Customize layouts without overwriting files. + Hooks should be defined in the layouts/partials/hooks directory. + + Parameters: + - hook: The name of the hook to be used. + - context: The context to be passed to the partial. +*/}} + +{{ $hook := .hook }} +{{ $context := .context }} +{{ $hookName := $hook.Name }} +{{ $hookType := $hook.Type }} + +{{ if not (hasSuffix $hook ".html") }} + {{ $hook = printf "%s.html" $hook }} +{{ end }} + +{{ $hook_path := path.Join "layouts/partials/hooks" $hook }} + +{{ if fileExists $hook_path }} + {{ partial $hook_path $context }} +{{ end }}
\ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 5eea693..f62f983 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -1,6 +1,9 @@ <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> +{{/* Head start hook */}} +{{ partial "functions/get_hook.html" (dict "hook" "head_start" "context" .) }} + {{ $faviconPath := (.Site.Params.faviconPath | default "" | absURL) }} <link rel="icon" type="image/ico" href="{{ $faviconPath }}/favicon.ico"> @@ -46,3 +49,5 @@ {{ end }} {{ end }} +{{/* Head end hook */}} +{{ partial "functions/get_hook.html" (dict "hook" "head_end" "context" .) }} |