Skip to content
Snippets Groups Projects
Commit a30a408e authored by Tim Repke's avatar Tim Repke
Browse files
parent 1e4b567e
No related branches found
No related tags found
No related merge requests found
avatar.png

141 KiB

......@@ -8,7 +8,13 @@
{{ $show_navbar := ((site.Params.header.navbar.enable | default true) | and (ne .Params.header.navbar.enable false)) | or .Params.header.navbar.enable }}
{{- $highlight_active_link := site.Params.header.navbar.highlight_active_link | default true -}}
<body id="top" data-spy="scroll" {{ if $show_navbar }}data-offset="70"{{end}} data-target="{{ if or .IsHome (eq .Type "widget_page") | and $highlight_active_link }}#navbar-main{{else}}#TableOfContents{{end}}" class="page-wrapper {{with .Params.design.css_class}}{{.}}{{end}} {{ if not (.Scratch.Get "light") }}dark{{end}} {{ if not $show_navbar }}no-navbar{{end}}" {{with .File}}data-wc-page-id="{{.File.UniqueID}}"{{end}} {{with .Params.design.css_style}}style="{{. | safeCSS}}"{{end}}>
<body id="top"
data-spy="scroll"
{{ if $show_navbar }}data-offset="70"{{end}}
data-target="{{ if or .IsHome (eq .Type "widget_page") | and $highlight_active_link }}#navbar-main{{else}}#TableOfContents{{end}}"
class="page-wrapper {{with .Params.design.css_class}}{{.}}{{end}} {{ if not (.Scratch.Get "light") }}dark{{end}} {{ if not $show_navbar }}no-navbar{{end}}"
{{with .File}}data-wc-page-id="{{.UniqueID}}"{{end}}
{{with .Params.design.css_style}}style="{{. | safeCSS}}"{{end}}>
{{/* Initialise Wowchemy. */}}
{{ $js_license := printf "/*! Wowchemy v%s | https://wowchemy.com/ */\n" site.Data.wowchemy.version }}
......
{{ $baidu_tongji := site.Params.marketing.analytics.baidu_tongji | default "" }}
{{ if hugo.IsProduction | and $baidu_tongji }}
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?{{ $baidu_tongji }}";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
{{ end }}
{{ $ga := site.Params.marketing.analytics.google_analytics | default site.GoogleAnalytics | default "" }}
{{ if hugo.IsProduction | and $ga }}
{{ $gtag_config := cond site.Params.features.privacy_pack.enable "{ 'anonymize_ip': true }" "{}" }}
<script async src="https://www.googletagmanager.com/gtag/js?id={{$ga}}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
function trackOutboundLink(url, target) {
gtag('event', 'click', {
'event_category': 'outbound',
'event_label': url,
'transport_type': 'beacon',
'event_callback': function () {
if (target !== '_blank') {
document.location = url;
}
}
});
console.debug("Outbound link clicked: " + url);
}
function onClickCallback(event) {
if ((event.target.tagName !== 'A') || (event.target.host === window.location.host)) {
return;
}
trackOutboundLink(event.target, event.target.getAttribute('target')); // Send GA event.
}
gtag('js', new Date());
gtag('config', '{{$ga}}', {{$gtag_config|safeJS}});
gtag('set', {'cookie_flags': 'SameSite=None;Secure'});
// Outbound link tracking.
document.addEventListener('click', onClickCallback, false);
</script>
{{ end }}
{{ $gt := site.Params.marketing.analytics.google_tag_manager | default "" }}
{{ if hugo.IsProduction | and $gt }}
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','{{$gt}}');
</script>
{{ end }}
{{ partial "analytics/google_analytics" . }}
{{ partial "analytics/google_tag_manager" . }}
{{ partial "analytics/microsoft_clarity" . }}
{{ partial "analytics/baidu_tongji" . }}
{{ $clarity := site.Params.marketing.analytics.microsoft_clarity | default "" }}
{{ if hugo.IsProduction | and $clarity }}
<script>
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", '{{$clarity}}');
</script>
{{ end }}
{{ $ga := site.Params.marketing.analytics.google_analytics | default site.GoogleAnalytics | default "" }}
{{ $show_feedback := .Params.feedback | default true }}
{{ if hugo.IsProduction | and $ga | and $show_feedback }}
<style>
.btn-feedback {
display: inline-block;
}
.btn-feedback-negative {
margin-left: 1em;
}
.feedback--response {
display: none;
margin-top: 1em;
}
.feedback--response__visible {
display: block;
}
</style>
<div class="d-print-none widget--feedback">
<h2 class="feedback--title">{{ i18n "feedback_widget_title" | default "Feedback" }}</h2>
<p class="feedback--question">{{ i18n "feedback_widget_question" | default "Was this page helpful?" }}</p>
<p class="feedback--response feedback--response-positive">
{{ (site.Params.features.feedback.responses.positive | default "🙏") | markdownify | safeHTML }}
</p>
<p class="feedback--response feedback--response-negative">
{{ (site.Params.features.feedback.responses.negative | default "🙏") | markdownify | safeHTML }}
</p>
<button class="btn btn-primary mb-4 btn-feedback btn-feedback-positive">
{{ i18n "feedback_widget_answer_positive" | default "😍 Yes" }}
</button>
<button class="btn btn-primary mb-4 btn-feedback btn-feedback-negative">
{{ i18n "feedback_widget_answer_negative" | default "😡 No" }}
</button>
</div>
<script>
const btnYes = document.querySelector('.btn-feedback-positive');
const btnNo = document.querySelector('.btn-feedback-negative');
const responseYes = document.querySelector('.feedback--response-positive');
const responseNo = document.querySelector('.feedback--response-negative');
const disableButtons = () => {
btnYes.disabled = true;
btnNo.disabled = true;
};
const sendFeedback = (value) => {
if (typeof gtag !== 'function') return;
gtag('event', 'click', {
'event_category': 'page_rating',
'event_label': window.location.pathname,
'value': value,
'transport_type': 'beacon',
'event_callback': function () {
console.debug(`✅ Feedback sent ${value}`);
}
});
};
btnYes.addEventListener('click', () => {
console.debug('Feedback response: 😍');
responseYes.classList.add('feedback--response__visible');
disableButtons();
sendFeedback(1);
});
btnNo.addEventListener('click', () => {
console.debug('Feedback response: 😡');
responseNo.classList.add('feedback--response__visible');
disableButtons();
sendFeedback(0);
});
</script>
{{ end }}
......@@ -32,9 +32,9 @@
{{ end }}
{{ end }}
{{ if site.Params.marketing.analytics.google_optimize | and hugo.IsProduction }}
<script src="https://www.googleoptimize.com/optimize.js?id={{ site.Params.marketing.analytics.google_optimize }}"></script>
{{- end -}}
<!-- {{ if site.Params.marketing.analytics.google_optimize | and hugo.IsProduction }}-->
<!-- <script src="https://www.googleoptimize.com/optimize.js?id={{ site.Params.marketing.analytics.google_optimize }}"></script>-->
<!-- {{- end -}}-->
{{ $css := site.Data.assets.css }}
{{ $js := site.Data.assets.js }}
......
{{/* Site Verification and Analytics */}}
{{ partial "site_verification" . }}
{{ partial "analytics/main" . }}
{{/* partial "analytics/main" . */}}
{{/* Load SEO tags */}}
{{ partial "seo_tags" . }}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment