From 079ea214be8b8410b116f88ff1833e08fbf20696 Mon Sep 17 00:00:00 2001 From: YDZ Date: Mon, 19 Oct 2020 11:49:47 +0800 Subject: [PATCH] remove netlify-identity-widget.js | jquery.fancybox.min.js | google_analytics | google_tag_manager in header.html --- config/_default/params.toml | 2 +- layouts/partials/site_head.html | 233 ++++++++++++++++++++++++++++++++ layouts/partials/site_js.html | 169 +++++++++++++++++++++++ 3 files changed, 403 insertions(+), 1 deletion(-) create mode 100644 layouts/partials/site_head.html create mode 100644 layouts/partials/site_js.html diff --git a/config/_default/params.toml b/config/_default/params.toml index 80adcfe..232a6a5 100644 --- a/config/_default/params.toml +++ b/config/_default/params.toml @@ -277,7 +277,7 @@ plugins_js = [] ############################ [cms] # See https://sourcethemes.com/academic/docs/install/#install-with-web-browser - netlify_cms = true + netlify_cms = false ############################ ## Icon Pack Extensions diff --git a/layouts/partials/site_head.html b/layouts/partials/site_head.html new file mode 100644 index 0000000..8698b21 --- /dev/null +++ b/layouts/partials/site_head.html @@ -0,0 +1,233 @@ + + + + + + {{ $is_sponsor := site.Params.i_am_a_sponsor | default false }} + {{ $hide_generator := site.Params.power_ups.hide_generator | default false }} + {{ if not (and $is_sponsor $hide_generator) }} + + {{ end }} + + {{ $scr := .Scratch }} + + {{ $media_dir := site.Params.media_dir | default "media" }} + {{ $scr.Set "media_dir" $media_dir }} + + {{/* Attempt to load superuser. */}} + {{ $superuser_name := "" }} + {{ $superuser_username := "" }} + {{ $superuser_role := "" }} + {{ range first 1 (where (where site.Pages "Section" "authors") "Params.superuser" true) }} + {{ $superuser_name = .Title }} + {{ $superuser_username = path.Base (path.Split .Path).Dir }} + {{ $superuser_role = .Params.role }} + {{ end }} + {{ $scr.Set "superuser_username" $superuser_username }}{{/* Set superuser globally for page_author.html. */}} + + {{ with $superuser_name }}{{ end }} + + {{/* Generate page description. */}} + {{ $desc := "" }} + {{ if .Params.summary }} + {{ $desc = .Params.summary }} + {{ else if .Params.abstract }} + {{ $desc = .Params.abstract }} + {{ else if .IsPage }} + {{ $desc = .Summary }} + {{ else if site.Params.description }} + {{ $desc = site.Params.description }} + {{ else }} + {{ $desc = $superuser_role }} + {{ end }} + + + {{ range .Translations }} + + {{ end }} + + + {{ partial "functions/parse_theme" . }} + + {{/* Pre-connect to Google Fonts if the site's Font Theme uses them. */}} + {{ with ($scr.Get "google_fonts") }} + + {{end}} + + {{ $css := site.Data.assets.css }} + {{ $js := site.Data.assets.js }} + {{ if ne ($scr.Get "primary") "#fff" }} + + {{ end }} + + {{/* Config LaTeX math rendering. */}} + {{ if or .Params.math site.Params.math }} + {{ $mathjax_config := resources.Get "js/mathjax-config.js" }} + + {{ end }} + + {{/* Attempt to load local vendor CSS, otherwise load from CDN. */}} + {{ $scr.Set "vendor_css_filename" "main.min.css" }} + {{ $scr.Set "vendor_js_filename" "main.min.js" }} + {{ if and (fileExists (printf "static/css/vendor/%s" ($scr.Get "vendor_css_filename"))) (fileExists (printf "static/js/vendor/%s" ($scr.Get "vendor_js_filename"))) }} + {{ $scr.Set "use_cdn" 0 }} + + {{ else }} + {{ $scr.Set "use_cdn" 1 }} + {{ if site.Params.icon.pack.ai }} + {{ printf "" (printf $css.academicons.url $css.academicons.version) $css.academicons.sri | safeHTML }} + {{ end }} + {{ printf "" (printf $css.fontAwesome.url $css.fontAwesome.version) $css.fontAwesome.sri | safeHTML }} + + + {{/* Default to enabling highlighting, but allow the user to override it in .Params or site.Params. + Use $scr to store "highlight_enabled", so that we can read it again in footer.html. */}} + {{ $scr.Set "highlight_enabled" true }} + {{ if isset .Params "highlight" }} + {{ $scr.Set "highlight_enabled" .Params.highlight }} + {{ else if isset site.Params "highlight" }} + {{ $scr.Set "highlight_enabled" site.Params.highlight }} + {{ end }} + {{ if ($scr.Get "highlight_enabled") }} + {{ $v := $css.highlight.version }} + {{ with site.Params.highlight_style }} + {{ printf "" (printf $css.highlight.url $css.highlight.version .) | safeHTML }} + {{ printf "" (printf $css.highlight.url $css.highlight.version .) | safeHTML }} + {{ else }} + {{ if eq ($scr.Get "light") true }} + {{ printf "" (printf $css.highlight.url $css.highlight.version "github") | safeHTML }} + {{ printf "" (printf $css.highlight.url $css.highlight.version "dracula") | safeHTML }} + {{ else }} + {{ printf "" (printf $css.highlight.url $css.highlight.version "github") | safeHTML }} + {{ printf "" (printf $css.highlight.url $css.highlight.version "dracula") | safeHTML }} + {{ end }} + {{ end }} + {{ end }} + + {{ if or (eq site.Params.map.engine 2) (eq site.Params.map.engine 3) }} + {{ printf "" (printf $css.leaflet.url $css.leaflet.version) $css.leaflet.sri | safeHTML }} + {{ end }} + + {{ if eq site.Params.search.engine 2 }} + {{ printf "" (printf $css.instantsearch.url $css.instantsearch.version) $css.instantsearch.sri | safeHTML }} + {{ printf "" (printf $css.instantsearchTheme.url $css.instantsearchTheme.version) $css.instantsearchTheme.sri | safeHTML }} + {{ end }} + + {{/* Load async scripts. */}} + {{ range $k, $v := site.Data.assets.js }}{{/* TODO: investigate why `where ... "async" true` does not work. */}} + {{ $load := $v.async }} + + {{/* Only load MathJax if required. */}} + {{ if (eq $k "mathJax") | and (not (or $.Params.math site.Params.math)) }} + {{ $load = false }} + {{end}} + + {{ if $load }} + {{ printf "" (printf $v.url $v.version) $v.sri | safeHTML }} + {{end}} + {{end}} + + {{ end }} + + {{/* Load Google Fonts if the site's Font Theme uses them. */}} + {{/* Note: we cannot use SRI with Google Fonts because the CSS is dynamically generated according to the user agent. */}} + {{ with ($scr.Get "google_fonts") }} + {{ if hasPrefix . "family=" }} + {{/* If `google_fonts` starts with "family=", use API v2 (https://developers.google.com/fonts/docs/css2) */}} + + {{ else }} + {{/* Otherwise, use API v1 */}} + {{/* Hugo's htmlEscape cannot escape "|" in Google Font URIs so we implement our own escape functionality. */}} + + {{ end }} + {{ end }} + + {{ $css_comment := printf "/*!* Wowchemy v%s (https://wowchemy.com/) */\n" site.Data.wowchemy.version }} + {{ $css_bundle_head := $css_comment | resources.FromString "css/bundle-head.css" }} + {{ $css_options := dict "targetPath" "css/wowchemy.css" }} + {{- if (in (slice (getenv "HUGO_ENV") hugo.Environment) "production") -}} + {{- $css_options = merge $css_options (dict "outputStyle" "compressed") -}} + {{- end -}} + {{ $sass_template := resources.Get "scss/main.scss" }} + {{ $style := $sass_template | resources.ExecuteAsTemplate "main_parsed.scss" . | toCSS $css_options }} + {{ $style := slice $css_bundle_head $style | resources.Concat "css/wowchemy.css" }} + {{- if (eq (getenv "HUGO_ENV") "production") -}} + {{- $style = $style | minify | fingerprint "md5" -}} + {{- end -}} + + + + + {{/* Netlify Identity integration. */}} + {{ if .IsHome | and (site.Params.cms.netlify_cms | default true) }} + + {{ end }} + + {{ with .OutputFormats.Get "RSS" }} + + {{ end }} + + + + + + + + {{/* Get page image for sharing. */}} + {{ $featured_image := (.Resources.ByType "image").GetMatch "*featured*" }} + {{ $avatar_image := (.Resources.ByType "image").GetMatch "avatar*" }} + {{ $has_logo := fileExists "assets/images/logo.png" | or (fileExists "assets/images/logo.svg") }} + {{ $og_image := "" }} + {{ $twitter_card := "summary_large_image" }} + {{ if (and (eq .Kind "taxonomy") $avatar_image) }} + {{ $og_image = ($avatar_image.Fill "270x270 Center").Permalink }}{{/* Match image proc in About widget. */}} + {{ $twitter_card = "summary" }} + {{ else if $featured_image }} + {{ $og_image = $featured_image.Permalink }} + {{ else if .Params.header.image }} + {{ $og_image = printf "%s/%s" $media_dir .Params.header.image | absURL }} + {{ else if site.Params.sharing_image }} + {{ $og_image = printf "%s/%s" $media_dir site.Params.sharing_image | absURL }} + {{ else if $has_logo }} + {{ $og_image = (partial "functions/get_logo" (dict "constraint" "fit" "size" 300)).Permalink }} + {{ $twitter_card = "summary" }} + {{ else }} + {{ $og_image = (partial "functions/get_icon" 512).Permalink }} + {{ $twitter_card = "summary" }} + {{ end }} + {{ $scr.Set "og_image" $og_image }}{{/* Set `og_image` globally for `rss.xml`. */}} + + {{ with site.Params.twitter }} + + + {{ end }} + + + + + {{- with $og_image -}} + + + {{- end -}} + + {{ if .IsPage }} + {{ if not .PublishDate.IsZero }} + + {{ else if not .Date.IsZero }} + + {{ end }} + {{ if not .Lastmod.IsZero }}{{ end }} + {{ else }} + {{ if not .Date.IsZero }}{{ end }} + {{ end }} + + {{ partial "jsonld/main" (dict "page" . "summary" $desc) }} + + {{ partial "cookie_consent" . }} + + {{ partial "custom_head" . }} + + {{ if not .IsHome }}{{ .Title }} | {{ end }}{{ site.Title }} + + diff --git a/layouts/partials/site_js.html b/layouts/partials/site_js.html new file mode 100644 index 0000000..3d3dc2e --- /dev/null +++ b/layouts/partials/site_js.html @@ -0,0 +1,169 @@ +{{ $scr := $.Scratch }} + +{{/* Attempt to load local vendor JS, otherwise load from CDN. */}} +{{ $js := site.Data.assets.js }} +{{ if not ($scr.Get "use_cdn") }} + +{{ else }} + {{ printf "" (printf $js.jQuery.url $js.jQuery.version) $js.jQuery.sri | safeHTML }} + {{ printf "" (printf $js.imagesLoaded.url $js.imagesLoaded.version) $js.imagesLoaded.sri | safeHTML }} + {{ printf "" (printf $js.isotope.url $js.isotope.version) $js.isotope.sri | safeHTML }} + + {{ printf "" (printf $js.instantpage.url $js.instantpage.version) $js.instantpage.sri | safeHTML }} + + {{ if or .Params.diagram site.Params.diagram }} + {{ printf "" (printf $js.mermaid.url $js.mermaid.version) $js.mermaid.sri | safeHTML }} + {{ end }} + + {{ if $.Scratch.Get "highlight_enabled" }} + {{ $v := $js.highlight.version }} + {{ printf "" (printf $js.highlight.url $v) $js.highlight.sri | safeHTML }} + {{ range site.Params.highlight_languages }} + + {{ end }} + {{ end }} + +{{ end }} + +{{/* Maps JS. */}} +{{ if eq site.Params.map.engine 1 }} + + {{ if ($scr.Get "use_cdn") }} + {{ printf "" (printf $js.gmaps.url $js.gmaps.version) $js.gmaps.sri | safeHTML }} + {{ end }} +{{ else if and (or (eq site.Params.map.engine 2) (eq site.Params.map.engine 3)) ($scr.Get "use_cdn") }} + {{ printf "" (printf $js.leaflet.url $js.leaflet.version) $js.leaflet.sri | safeHTML }} +{{ end }} + +{{/* Initialise code highlighting. */}} +{{ if $scr.Get "highlight_enabled" }} + +{{ else }} + +{{ end }} + +{{ if ne site.Params.search.engine 0 }} +{{/* Configure search engine. */}} +{{ $min_length := site.Params.search.academic.min_length | default 1 }} +{{ $threshold := site.Params.search.academic.threshold | default 0.3 }} +{{ $search_i18n := dict "placeholder" (i18n "search_placeholder") "results" (i18n "search_results") "no_results" (i18n "search_no_results") }} +{{ $search_config := dict "indexURI" ("/index.json" | relLangURL) "threshold" $threshold "minLength" $min_length }} + +{{ end }} + +{{/* Load hash anchors for documentation pages. */}} +{{ if in (slice "book" "docs") .Type }} +{{ printf "" (printf $js.anchor.url $js.anchor.version) $js.anchor.sri | safeHTML }} + +{{ end }} + +{{ if eq site.Params.search.engine 1 }} +{{/* Fuse search result template. */}} + +{{ else if eq site.Params.search.engine 2 }} +{{/* Algolia search result template. */}} + +{{ end }} + +{{/* Fuse search engine. */}} +{{ if and (eq site.Params.search.engine 1) ($scr.Get "use_cdn") }} +{{ printf "" (printf $js.fuse.url $js.fuse.version) $js.fuse.sri | safeHTML }} +{{ printf "" (printf $js.mark.url $js.mark.version) $js.mark.sri | safeHTML }} +{{ end }} + +{{/* Algolia search engine. */}} +{{ if eq site.Params.search.engine 2 }} +{{ if ($scr.Get "use_cdn") }} +{{ printf "" (printf $js.instantsearch.url $js.instantsearch.version) $js.instantsearch.sri | safeHTML }} +{{ end }} + +{{ end }} + +{{/* Netlify Identity integration. */}} +{{ if .IsHome | and (site.Params.cms.netlify_cms | default true) }} + +{{ end }} + +{{/* Charts */}} +{{ if .HasShortcode "chart" }} + +{{ printf "" (printf $js.plotly.url $js.plotly.version) $js.plotly.sri | safeHTML }} +{{ end }} + +{{/* Disqus Comment Count JS. */}} +{{ if and (eq site.Params.comments.engine 1) (site.Params.comments.disqus.show_count | default true) }} + +{{ end }} + +{{ $js_comment := printf "/* Wowchemy v%s | https://wowchemy.com/ */\n" site.Data.wowchemy.version }} +{{ $js_bundle_head := $js_comment | resources.FromString "js/bundle-head.js" }} +{{ $js_linebreak := "\n" | resources.FromString "js/linebreak.js" }}{{/* Fix no line break after Bootstrap JS causing error. */}} +{{ $js_academic := resources.Get "js/wowchemy.js" }} +{{ $js_academic_search := resources.Get "js/wowchemy-search.js" }} +{{ $js_algolia_search := resources.Get "js/algolia-search.js" }} +{{ $js_bootstrap := resources.Get "js/_vendor/bootstrap.bundle.js" }} +{{ $js_bundle := slice $js_bootstrap $js_linebreak $js_academic }} +{{ if eq site.Params.search.engine 1 }} + {{ $js_bundle = $js_bundle | append $js_academic_search }} +{{ else if eq site.Params.search.engine 2 }} + {{ $js_bundle = $js_bundle | append $js_algolia_search }} +{{ end }} +{{ range site.Params.plugins_js }} + {{ $js_bundle = $js_bundle | append (resources.Get (printf "js/%s.js" .)) }} +{{ end }} +{{ $js_bundle := $js_bundle | resources.Concat "js/wowchemy-bundle-pre.js" | minify }} +{{ $js_bundle := slice $js_bundle_head $js_bundle | resources.Concat "js/wowchemy.min.js" | fingerprint "md5" }} + + +{{ partial "custom_js" . }}