mirror of https://github.com/luizdepra/hugo-coder.git

Alphonse Mariya
22.39.2021 1d4b612a4438ba6fcc2271da4e6c66749e8c9c57
Add support for Matomo (formerly Piwik) (#508)

Co-authored-by: Luiz F. A. de PrĂ¡ <luizdepra@users.noreply.github.com>
4 files modified
1 files added
73 ■■■■ changed files
CONTRIBUTORS.md 1 ●●●● patch | view | raw | blame | history
exampleSite/config.toml 45 ●●●●● patch | view | raw | blame | history
layouts/_default/baseof.html 4 ●●●● patch | view | raw | blame | history
layouts/partials/analytics/matomo.html 13 ●●●●● patch | view | raw | blame | history
stackbit.yaml 10 ●●●●● patch | view | raw | blame | history
CONTRIBUTORS.md
@@ -91,3 +91,4 @@
- [Felix](https://github.com/lazyyz)
- [Peter Duchnovsky](https://pduchnovsky.com)
- [Alex Miranda](https://ammiranda.com)
- [Alphonse Mariya](https://github.com/alfunx)
exampleSite/config.toml
@@ -80,24 +80,37 @@
[params.cloudflare]
    token = "token"
# If you want to use Matomo(https://matomo.org) for analytics, add this section
[params.matomo]
    # Default value is "1", overwrite this if you are cloud-hosting
    siteID = "ABCDE"
    # For cloud-hosting, use provided URL, e.g. example.matomo.cloud
    serverURL = "analytics.example.com"
# If you want to implement a Content-Security-Policy, add this section
[params.csp]
    childsrc = ["'self'"]
    fontsrc=["'self'",
        "https://fonts.gstatic.com",
        "https://cdn.jsdelivr.net/"]
    formaction = ["'self'"]
    framesrc = ["'self'"]
    imgsrc = ["'self'"]
    objectsrc = ["'none'"]
    stylesrc = ["'self'",
        "'unsafe-inline'",
        "https://fonts.googleapis.com/",
        "https://cdn.jsdelivr.net/"]
    scriptsrc = ["'self'",
        "'unsafe-inline'",
        "https://www.google-analytics.com"]
    prefetchsrc = ["'self'"]
      childsrc = ["'self'"]
      fontsrc = [
        "'self'",
            "https://fonts.gstatic.com",
            "https://cdn.jsdelivr.net/"
    ]
      formaction = ["'self'"]
      framesrc = ["'self'"]
      imgsrc = ["'self'"]
      objectsrc = ["'none'"]
      stylesrc = [
        "'self'",
            "'unsafe-inline'",
            "https://fonts.googleapis.com/",
            "https://cdn.jsdelivr.net/"
    ]
      scriptsrc = [
        "'self'",
            "'unsafe-inline'",
            "https://www.google-analytics.com"
    ]
      prefetchsrc = ["'self'"]
[taxonomies]
  category = "categories"
layouts/_default/baseof.html
@@ -145,6 +145,10 @@
    {{ if and .Site.Params.cloudflare .Site.Params.cloudflare.token }}
      {{- partial "analytics/cloudflare" . -}}
    {{ end }}
    {{ if and .Site.Params.matomo .Site.Params.matomo.serverURL }}
      {{- partial "analytics/matomo" . -}}
    {{ end }}
  </body>
</html>
layouts/partials/analytics/matomo.html
New file
@@ -0,0 +1,13 @@
<script type="application/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://{{ $.Site.Params.matomo.serverURL }}/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '{{ $.Site.Params.matomo.siteID | default "1" }}']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
stackbit.yaml
@@ -139,6 +139,16 @@
              - type: string
                name: token
                label: token for Cloudflare Web Analytics
          - type: object
            name: matomo
            label: Matomo (optional)
            fields:
              - type: string
                name: siteID
                label: Site ID for Matomo
              - type: string
                name: serverURL
                label: URL for Matomo
      - type: object
        name: languages
        fields: