2.7 KiB
hugo-cookie-consent
Hugo module that implements a cookie-consent message and functionality to change the cookie-consent decision.
The purpose of this module is to help make a site GDPR compliant. It can optionally insert tracking code that calls a Matomo instance. This will only happen after visitors have accepted the use of a cookie -- no logging will take place before visitors have interacted with the cookie information message. Their decision is stored in the browser's Local Storage, and it is not personal data as defined by the GDPR.
This Hugo Module requires Hugo v0.146.0+ which uses the new layout directory
structure with _partials and _shortcode directories with leading underscores.
Anthropic Claude helped in creating this module (paid subscription).
Installation in your Hugo site
-
Turn the Hugo site into a Hugo module:
hugo mod init <identifier>Where
<identifier>may be the path to the site's Git repository or anything else; see Hugo's docs. -
Add the hugo-cookie-consent module by adding this
module.imports.pathto your site configuration file:# config/_default/hugo.yaml module: imports: - path: git.bovender.de/daniel/hugo-cookie-consent -
Add configuration keys (see below).
-
If your site's language is neither English nor German, add a few terms in the desired language to the language tables.
-
Make your pages load the JavaScript code, e. g. by adding this to a
script.htmlpartial:{{- $js := resources.Get "js/cookie-consent.js" | minify -}} <script src="{{ $js.RelPermalink }}" defer></script> {{- $js := resources.Get "js/tracker-code.js" | minify -}} <script src="{{ $js.RelPermalink }}" defer></script> -
Optionally, insert a
cookie-settingspartial somewhere on your site to enable visitors to review and revise their choice. The privacy statement page might be a good place for this.{{< cookie-settings >}}
Configuration
You can configure the module by defining site parameters in your
hugo.yaml or hugo.toml configuration file. The following
snippet shows the default values.
# config/_default/params.yaml
hugo_cookie_consent:
privacy_policy_url:
enable_matomo: false
matomo_host:
matomo_site_id:
| Parameter | Description |
|---|---|
privacy_policy_url |
URL of the privacy policy page |