feat(seo.html): add meta tags for site verification codes (Google, Bing, Yandex, Pinterest, Baidu, So, Sogou) to improve SEO and site ownership verification

feat(analytics.html): create partial to include analytics scripts for various analytics services (Google Analytics, Fathom Analytics, Baidu Analytics, Umami Analytics, Plausible Analytics, Cloudflare Analytics, Splitbee Analytics) to track website traffic and user behavior
This commit is contained in:
Sped0n
2023-11-03 14:25:20 +08:00
parent 1910eb21db
commit 43330579bd
4 changed files with 157 additions and 0 deletions

View File

@@ -4,3 +4,52 @@ description = "Bridget is a minimal Hugo theme designed for photographers / visu
# * if you want to build the js and css from scratch, set this to false and run `npm install` and `npm run build`
# * tldr: set this to false if you want to edit the js and css
bundled = false
# Site verification code for Google/Bing/Yandex/Pinterest/Baidu
[verification]
google = ""
bing = ""
yandex = ""
pinterest = ""
baidu = ""
so = ""
sogou = ""
# Analytics config
[analytics]
enable = false
# Google Analytics
[analytics.google]
id = ""
# whether to anonymize IP
anonymizeIP = true
# Fathom Analytics
[analytics.fathom]
id = ""
# server url for your tracker if you're self hosting
server = ""
# Baidu Analytics
[analytics.baidu]
id = ""
# Umami Analytics
[analytics.umami]
data_website_id = ""
src = ""
data_host_url = ""
data_domains = ""
# Plausible Analytics
[analytics.plausible]
data_domain = ""
src = ""
# Cloudflare Analytics
[analytics.cloudflare]
token = ""
# Splitbee Analytics
[analytics.splitbee]
enable = false
# no cookie mode
No_cookie = true
# respect the do not track setting of the browser
Do_not_track = true
# token(optional), more info on https://splitbee.io/docs/embed-the-script
data_token = ""

View File

@@ -13,5 +13,8 @@
{{- block "main" . -}}
{{- end -}}
</div>
<div class="analytics">
{{- partial "plugin/analytics.html" . -}}
</div>
</body>
</html>

View File

@@ -0,0 +1,21 @@
{{- with site.Params.verification.google -}}
<meta name="google-site-verification" content="{{ . }}" />
{{- end -}}
{{- with site.Params.verification.bing -}}
<meta name="msvalidate.01" content="{{ . }}" />
{{- end -}}
{{- with site.Params.verification.yandex -}}
<meta name="yandex-verification" content="{{ . }}" />
{{- end -}}
{{- with site.Params.verification.pinterest -}}
<meta name="p:domain_verify" content="{{ . }}" />
{{- end -}}
{{- with site.Params.verification.baidu -}}
<meta name="baidu-site-verification" content="{{ . }}" />
{{- end -}}
{{- with site.Params.verification.sogou -}}
<meta name="sogou_site_verification" content="{{ . }}" />
{{- end -}}
{{- with site.Params.verification.so -}}
<meta name="360-site-verification" content="{{ . }}" />
{{- end -}}

View File

@@ -0,0 +1,84 @@
{{- $analytics := site.Params.analytics -}}
{{- if $analytics.enable -}}
{{- /* Google Analytics */ -}}
{{- with $analytics.google.id -}}
<script type="text/javascript">
window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());
gtag('config', '{{ . }}'{{ if $analytics.google.anonymizeIP }}, { 'anonymize_ip': true }{{ end }});
</script> {{- printf "https://www.googletagmanager.com/gtag/js?id=%v" . | dict "Async" true "Source" | partial "plugin/script.html" -}}
{{- end -}}
{{- /* Fathom Analytics */ -}}
{{- with $analytics.fathom.id -}}
<script type="text/javascript">
window.fathom=window.fathom||function(){(fathom.q=fathom.q||[]).push(arguments);};
fathom('set', 'siteId', '{{ . }}');
fathom('trackPageview');
</script> {{- dict "Source" ($analytics.fathom.server | default "cdn.usefathom.com" | printf "https://%v/tracker.js") "Async" true "Attr" "id=fathom-script" | partial "plugin/script.html" -}}
{{- end -}}
{{- /* Baidu Analytics */ -}}
{{- with $analytics.baidu.id -}}
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?{{ . }}";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
{{- end -}}
{{- /* Umami Analytics */ -}}
{{- with $analytics.umami.data_website_id -}}
<script
async
defer
data-website-id="{{ . }}"
src="{{ $analytics.umami.src }}"
{{ with $analytics.umami.data_host_url }}data-host-url="{{ . }}"{{ end }}
{{ with $analytics.umami.data_domains }}data-domains="{{ . }}"{{ end }}
></script>
{{- end -}}
{{- /* Plausible Analytics */ -}}
{{- with $analytics.plausible.data_domain -}}
<script
async
defer
data-domain="{{ . }}"
src="{{ $analytics.plausible.src }}"
></script>
{{- end -}}
{{- /* Cloudflare Analytics */ -}}
{{- with $analytics.cloudflare.token -}}
<script
defer
src="https://static.cloudflareinsights.com/beacon.min.js"
data-cf-beacon='{"token": "{{ $analytics.cloudflare.token }}"}'
></script>
{{- end -}}
{{- /* Splitbee Analytics */ -}}
{{- if $analytics.splitbee.enable -}}
{{- $attr := "" -}}
{{- if $analytics.splitbee.Do_not_track -}}
{{- $attr = printf `%v data-respect-dnt` $attr -}}
{{- end -}}
{{- if $analytics.splitbee.No_cookie -}}
{{- $attr = printf `%v data-no-cookie` $attr -}}
{{- end -}}
{{- with $analytics.splitbee.data_token -}}
{{- $attr = printf `%v data-token="%v"` $attr . -}}
{{- end -}}
<script
defer
{{ with $attr }}{{ . | safeHTMLAttr }}{{ end }}
src="https://cdn.splitbee.io/sb.js"
></script>
{{- end -}}
{{- end -}}