From 1baceb1c62c5c208917b7d22b3cb4635df0ef072 Mon Sep 17 00:00:00 2001 From: "Russell J. Hewett" Date: Thu, 30 May 2019 21:14:11 -0400 Subject: [PATCH] refactor(baseof): refactors base header and footer to their own partials --- layouts/partials/footer.html | 151 +------------------------ layouts/partials/header.html | 189 +------------------------------- layouts/partials/site_head.html | 188 +++++++++++++++++++++++++++++++ layouts/partials/site_js.html | 151 +++++++++++++++++++++++++ 4 files changed, 342 insertions(+), 337 deletions(-) create mode 100644 layouts/partials/site_head.html create mode 100644 layouts/partials/site_js.html diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index f1e4f02d..ead0993c 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,154 +1,5 @@ - {{ $scr := $.Scratch }} +{{ partial "site_js.html" . }} - {{/* 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 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.fancybox.url $js.fancybox.version) $js.fancybox.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 }} - - {{/* LaTeX math rendering. */}} - {{ if or .Params.math site.Params.math }} - {{ printf "" (printf $js.mathJax.url $js.mathJax.version) $js.mathJax.sri | safeHTML }} - {{ end }} - {{ end }} - - {{/* Maps JS. */}} - {{ if eq site.Params.map 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 2) (eq site.Params.map 3)) ($scr.Get "use_cdn") }} - {{ printf "" (printf $js.leaflet.url $js.leaflet.version) $js.leaflet.sri | safeHTML }} - {{ end }} - - {{/* Comments JS. */}} - {{ $comments_enabled := and site.DisqusShortname (not (or site.Params.disable_comments $.Params.disable_comments)) }} - {{ if and $comments_enabled (site.Params.comment_count | default true) }} - - {{ end }} - - {{/* Initialise code highlighting. */}} - {{ if $.Scratch.Get "highlight_enabled" }} - - {{ end }} - - {{ if ne site.Params.search.engine 0 }} - {{/* Configure search engine. */}} - - {{ end }} - - {{/* Load hash anchors for documentation pages. */}} - {{ if eq .Type "docs" }} - {{ 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 }} - - {{ $js_comment := printf "/* Source Themes Academic v%s | https://sourcethemes.com/academic/ */\n" site.Data.academic.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/academic.js" }} - {{ $js_academic_search := resources.Get "js/academic-search.js" }} - {{ $js_algolia_search := resources.Get "js/algolia-search.js" }} - {{ $js_bootstrap := resources.Get "js/vendor/bootstrap.min.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/academic-bundle-pre.js" | minify }} - {{ $js_bundle := slice $js_bundle_head $js_bundle | resources.Concat "js/academic.min.js" | fingerprint "md5" }} - diff --git a/layouts/partials/header.html b/layouts/partials/header.html index ac962639..1b64903b 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -1,192 +1,7 @@ - - - - - +{{ partial "site_head.html" . }} - {{ $scr := .Scratch }} - - {{/* Attempt to load superuser. */}} - {{ $superuser_name := "" }} - {{ $superuser_username := "" }} - {{ $superuser_role := "" }} - {{ range first 1 (where (where site.Pages "Section" "authors") "Params.superuser" true) }} - {{ $superuser_name = .Params.name }} - {{ $superuser_username = path.Base (path.Split .Path).Dir }} - {{ $superuser_role = .Params.role }} - {{ end }} - {{ $scr.Set "superuser_username" $superuser_username }}{{/* For access from 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" . }} - {{ $css := site.Data.assets.css }} - {{ $js := site.Data.assets.js }} - {{ if ne ($scr.Get "primary") "#fff" }} - - {{ 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 }} - {{ printf "" (printf $css.academicons.url $css.academicons.version) $css.academicons.sri | safeHTML }} - {{ printf "" (printf $css.fontAwesome.url $css.fontAwesome.version) $css.fontAwesome.sri | safeHTML }} - {{ printf "" (printf $css.fancybox.url $css.fancybox.version) $css.fancybox.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 2) (eq site.Params.map 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 }} - - {{ end }} - - {{/* We cannot use SRI with Google Fonts because the CSS is dynamically generated according to the user agent. */}} - {{ with ($scr.Get "google_fonts") }} - - {{ end }} - - {{ $css_options := (dict "targetPath" "css/academic.css" "outputStyle" "compressed") }} - {{ $sass_template := resources.Get "sass/main.scss" }} - {{ $style := $sass_template | resources.ExecuteAsTemplate "main_parsed.scss" . | toCSS $css_options | minify | fingerprint "md5" }} - - - {{ if site.Params.plugins_css }} - {{ $css_comment := printf "/* Source Themes Academic v%s | https://sourcethemes.com/academic/ */\n" site.Data.academic.version }} - {{ $css_bundle_head := $css_comment | resources.FromString "css/bundle-head.css" }} - {{ $css_bundle := slice }} - {{ range site.Params.plugins_css }} - {{ $css_bundle = $css_bundle | append (resources.Get (printf "css/%s.css" .)) }} - {{ end }} - {{ $css_bundle := $css_bundle | resources.Concat "css/academic-bundle-pre.css" | minify }} - {{ $css_bundle := slice $css_bundle_head $css_bundle | resources.Concat "css/academic.css" | fingerprint "md5" }} - - {{ end }} - - {{ if not site.IsServer }} - {{ if site.GoogleAnalytics }} - - - {{ if ($scr.Get "use_cdn") }} - {{ printf "" (printf $js.autotrack.url $js.autotrack.version) $js.autotrack.sri | safeHTML }} - {{ end }} - {{ end }} - {{ end }} - - {{ with .OutputFormats.Get "RSS" }} - - - {{ end }} - - - - - - - - {{ $featured_image := (.Resources.ByType "image").GetMatch "*featured*" }} - {{ $og_image := "" }} - {{ $twitter_card := "summary_large_image" }} - {{ if $featured_image }} - {{ $og_image = $featured_image.Permalink }} - {{ else if .Params.header.image }} - {{ $og_image = printf "img/%s" .Params.header.image | absURL }} - {{ else if site.Params.sharing_image }} - {{ $og_image = printf "img/%s" site.Params.sharing_image | absURL }} - {{ else if site.Params.avatar }} - {{ $og_image = (printf "img/%s" site.Params.avatar) | absURL }} - {{ $twitter_card = "summary" }} - {{ else }} - {{ $og_image = "img/icon-192.png" | absURL }} - {{ $twitter_card = "summary" }} - {{ end }} - - {{ 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 "cookie_consent" . }} - {{ partial "head_custom" . }} - - {{ if not .IsHome }}{{ .Title }} | {{ end }}{{ site.Title }} - - - + {{ partial "search" . }} diff --git a/layouts/partials/site_head.html b/layouts/partials/site_head.html new file mode 100644 index 00000000..da523cbf --- /dev/null +++ b/layouts/partials/site_head.html @@ -0,0 +1,188 @@ + + + + + + + + {{ $scr := .Scratch }} + + {{/* Attempt to load superuser. */}} + {{ $superuser_name := "" }} + {{ $superuser_username := "" }} + {{ $superuser_role := "" }} + {{ range first 1 (where (where site.Pages "Section" "authors") "Params.superuser" true) }} + {{ $superuser_name = .Params.name }} + {{ $superuser_username = path.Base (path.Split .Path).Dir }} + {{ $superuser_role = .Params.role }} + {{ end }} + {{ $scr.Set "superuser_username" $superuser_username }}{{/* For access from 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" . }} + {{ $css := site.Data.assets.css }} + {{ $js := site.Data.assets.js }} + {{ if ne ($scr.Get "primary") "#fff" }} + + {{ 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 }} + {{ printf "" (printf $css.academicons.url $css.academicons.version) $css.academicons.sri | safeHTML }} + {{ printf "" (printf $css.fontAwesome.url $css.fontAwesome.version) $css.fontAwesome.sri | safeHTML }} + {{ printf "" (printf $css.fancybox.url $css.fancybox.version) $css.fancybox.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 2) (eq site.Params.map 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 }} + + {{ end }} + + {{/* We cannot use SRI with Google Fonts because the CSS is dynamically generated according to the user agent. */}} + {{ with ($scr.Get "google_fonts") }} + + {{ end }} + + {{ $css_options := (dict "targetPath" "css/academic.css" "outputStyle" "compressed") }} + {{ $sass_template := resources.Get "sass/main.scss" }} + {{ $style := $sass_template | resources.ExecuteAsTemplate "main_parsed.scss" . | toCSS $css_options | minify | fingerprint "md5" }} + + + {{ if site.Params.plugins_css }} + {{ $css_comment := printf "/* Source Themes Academic v%s | https://sourcethemes.com/academic/ */\n" site.Data.academic.version }} + {{ $css_bundle_head := $css_comment | resources.FromString "css/bundle-head.css" }} + {{ $css_bundle := slice }} + {{ range site.Params.plugins_css }} + {{ $css_bundle = $css_bundle | append (resources.Get (printf "css/%s.css" .)) }} + {{ end }} + {{ $css_bundle := $css_bundle | resources.Concat "css/academic-bundle-pre.css" | minify }} + {{ $css_bundle := slice $css_bundle_head $css_bundle | resources.Concat "css/academic.css" | fingerprint "md5" }} + + {{ end }} + + {{ if not site.IsServer }} + {{ if site.GoogleAnalytics }} + + + {{ if ($scr.Get "use_cdn") }} + {{ printf "" (printf $js.autotrack.url $js.autotrack.version) $js.autotrack.sri | safeHTML }} + {{ end }} + {{ end }} + {{ end }} + + {{ with .OutputFormats.Get "RSS" }} + + + {{ end }} + + + + + + + + {{ $featured_image := (.Resources.ByType "image").GetMatch "*featured*" }} + {{ $og_image := "" }} + {{ $twitter_card := "summary_large_image" }} + {{ if $featured_image }} + {{ $og_image = $featured_image.Permalink }} + {{ else if .Params.header.image }} + {{ $og_image = printf "img/%s" .Params.header.image | absURL }} + {{ else if site.Params.sharing_image }} + {{ $og_image = printf "img/%s" site.Params.sharing_image | absURL }} + {{ else if site.Params.avatar }} + {{ $og_image = (printf "img/%s" site.Params.avatar) | absURL }} + {{ $twitter_card = "summary" }} + {{ else }} + {{ $og_image = "img/icon-192.png" | absURL }} + {{ $twitter_card = "summary" }} + {{ end }} + + {{ 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 "cookie_consent" . }} + {{ partial "head_custom" . }} + + {{ 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 00000000..3ffbfa48 --- /dev/null +++ b/layouts/partials/site_js.html @@ -0,0 +1,151 @@ + {{ $scr := $.Scratch }} + + {{/* 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 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.fancybox.url $js.fancybox.version) $js.fancybox.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 }} + + {{/* LaTeX math rendering. */}} + {{ if or .Params.math site.Params.math }} + {{ printf "" (printf $js.mathJax.url $js.mathJax.version) $js.mathJax.sri | safeHTML }} + {{ end }} + {{ end }} + + {{/* Maps JS. */}} + {{ if eq site.Params.map 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 2) (eq site.Params.map 3)) ($scr.Get "use_cdn") }} + {{ printf "" (printf $js.leaflet.url $js.leaflet.version) $js.leaflet.sri | safeHTML }} + {{ end }} + + {{/* Comments JS. */}} + {{ $comments_enabled := and site.DisqusShortname (not (or site.Params.disable_comments $.Params.disable_comments)) }} + {{ if and $comments_enabled (site.Params.comment_count | default true) }} + + {{ end }} + + {{/* Initialise code highlighting. */}} + {{ if $.Scratch.Get "highlight_enabled" }} + + {{ end }} + + {{ if ne site.Params.search.engine 0 }} + {{/* Configure search engine. */}} + + {{ end }} + + {{/* Load hash anchors for documentation pages. */}} + {{ if eq .Type "docs" }} + {{ 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 }} + + {{ $js_comment := printf "/* Source Themes Academic v%s | https://sourcethemes.com/academic/ */\n" site.Data.academic.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/academic.js" }} + {{ $js_academic_search := resources.Get "js/academic-search.js" }} + {{ $js_algolia_search := resources.Get "js/algolia-search.js" }} + {{ $js_bootstrap := resources.Get "js/vendor/bootstrap.min.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/academic-bundle-pre.js" | minify }} + {{ $js_bundle := slice $js_bundle_head $js_bundle | resources.Concat "js/academic.min.js" | fingerprint "md5" }} +