From 2dd574f2d8b17c635814b7bec1ba3469b78dd1a2 Mon Sep 17 00:00:00 2001 From: Will Faught Date: Sat, 31 Dec 2022 17:11:15 -0800 Subject: [PATCH] Enable local or remote Bootstrap and KaTeX files --- README.md | 22 ++- layouts/_default/baseof.html | 2 +- layouts/partials/paige/head.html | 4 +- layouts/partials/paige/link.html | 48 ++---- layouts/partials/paige/links.html | 30 ++++ .../partials/paige/{meta.html => metas.html} | 0 layouts/partials/paige/script.html | 159 ++---------------- layouts/partials/paige/scripts.html | 150 +++++++++++++++++ 8 files changed, 224 insertions(+), 191 deletions(-) create mode 100644 layouts/partials/paige/links.html rename layouts/partials/paige/{meta.html => metas.html} (100%) create mode 100644 layouts/partials/paige/scripts.html diff --git a/README.md b/README.md index 791abac9..337b6b92 100644 --- a/README.md +++ b/README.md @@ -208,9 +208,15 @@ paige: yandex: # metrica.yandex.com account_id: "123456" bootstrap: - icons_path: "my-assets/my-bootstrap-icons.css" # Use local Bootstrap icons - scripts_path: "my-assets/my-bootstrap.bundle.min.js" # Use local Bootstrap scripts - styles_path: "my-assets/my-bootstrap.min.css" # Use local Bootstrap styles + icons: + link_href: "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.2/font/bootstrap-icons.css" # Local or remote file + link_integrity: "sha384-b6lVK+yci+bfDmaY1u0zE8YYJt0TZxLEAFyYSLHId4xoVvsrQu3INevFKo+Xir8e" # File integrity hash + scripts: + script_integrity: "sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3" # File integrity hash + script_src: "https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js" # Local or remote file + styles: + link_href: "https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css" # Local or remote file + link_integrity: "sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" # File integrity hash color: "#123456" # Theme color for Safari and Windows content_max_width: 66ch # Page table of contents and content max width comments: @@ -234,6 +240,16 @@ paige: date_format: "2006 January 2" # Hugo date format for page dates hide_theme_comment: true # Don't put a link to this project in a code comment hide_theme_link: true # Don't put a link to this project in the footer + math: + autorender: + script_integrity: "sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" # File integrity hash + script_src: "https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/contrib/auto-render.min.js" # Local or remote file + scripts: + script_integrity: "sha384-97gW6UIJxnlKemYavrqDHSX3SiygeOwIZhwyOKRfSaf0JWKRVj9hLASHgFTzT+0O" # File integrity hash + script_src: "https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/katex.min.js" # Local or remote file + styles: + link_href: "https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/katex.min.css" # Local or remote file + link_integrity: "sha384-Juol1FqnotbkyZUT5Z7gUPjQ9gzlwCENvUZTpQBAPxtusdwFLRy382PSDx5UUJ4/" # File integrity hash menu_style: "links" # Menu is link list for "links", tab list for "tabs", or pill list if unset metadata_max_width: 100ch # Page metadata max width rss: diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 7e857945..13d76db8 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -15,7 +15,7 @@ - {{ partial "paige/script" . }} + {{ partial "paige/scripts" . }} {{ if templates.Exists "partials/paige-body-last.html" }} {{ partial "paige/body-last" . }} {{ end }} diff --git a/layouts/partials/paige/head.html b/layouts/partials/paige/head.html index 9ae6b039..7c7cf259 100644 --- a/layouts/partials/paige/head.html +++ b/layouts/partials/paige/head.html @@ -1,7 +1,7 @@ - {{ partial "paige/meta" . }} + {{ partial "paige/metas" . }} {{ partial "paige/func-title" . }} - {{ partial "paige/link" . }} + {{ partial "paige/links" . }} {{ partial "paige/style" . }} {{ if templates.Exists "partials/paige-head-last.html" }} {{ partial "paige/head-last" . }} diff --git a/layouts/partials/paige/link.html b/layouts/partials/paige/link.html index 609a5e38..cdeed88c 100644 --- a/layouts/partials/paige/link.html +++ b/layouts/partials/paige/link.html @@ -1,37 +1,11 @@ - - - -{{ if ne (relLangURL "favicon.ico") "/favicon.ico" }} - -{{ end }} - - - - -{{ with .Site.Params.paige.bootstrap.styles_path }} -{{ with resources.Get (relLangURL .) }} - -{{ else }} - -{{ end }} -{{ else }} - -{{ end }} -{{ with .Site.Params.paige.bootstrap.icons_path }} -{{ with resources.Get (relLangURL .) }} - -{{ else }} - -{{ end }} -{{ else }} - -{{ end }} -{{ if or .Params.paige.math (and .Params.paige.show_full_pages (where .Pages "Params.paige.math" "eq" true)) }} - -{{ end }} -{{ if .AlternativeOutputFormats }} -{{ $title := partial "paige/func-title" . }} -{{ range .AlternativeOutputFormats }} - -{{ end }} -{{ end }} +{{ $href := .href }} +{{ $path := false }} +{{ if eq $href (urls.Parse $href).Path }} + {{ $path = true }} + {{ with resources.Get (relLangURL $href) }} + {{ $href = (. | minify | fingerprint).RelPermalink }} + {{ else }} + {{ $href = relLangURL $href }} + {{ end }} +{{ end }} + diff --git a/layouts/partials/paige/links.html b/layouts/partials/paige/links.html new file mode 100644 index 00000000..c209f56d --- /dev/null +++ b/layouts/partials/paige/links.html @@ -0,0 +1,30 @@ + + + +{{ if ne (relLangURL "favicon.ico") "/favicon.ico" }} + +{{ end }} + + + + +{{ partial "paige/link" (dict + "href" (.Site.Params.paige.bootstrap.styles.link_href | default "https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css") + "integrity" (.Site.Params.paige.bootstrap.styles.link_integrity | default "sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi") +) }} +{{ partial "paige/link" (dict + "href" (.Site.Params.paige.bootstrap.icons.link_href | default "https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.2/font/bootstrap-icons.css") + "integrity" (.Site.Params.paige.bootstrap.icons.link_integrity | default "sha384-b6lVK+yci+bfDmaY1u0zE8YYJt0TZxLEAFyYSLHId4xoVvsrQu3INevFKo+Xir8e") +) }} +{{ if or .Params.paige.math (and .Params.paige.show_full_pages (where .Pages "Params.paige.math" "eq" true)) }} +{{ partial "paige/link" (dict + "href" (.Site.Params.paige.math.styles.link_href | default "https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/katex.min.css") + "integrity" (.Site.Params.paige.math.styles.link_integrity | default "sha384-Juol1FqnotbkyZUT5Z7gUPjQ9gzlwCENvUZTpQBAPxtusdwFLRy382PSDx5UUJ4/") +) }} +{{ end }} +{{ if .AlternativeOutputFormats }} +{{ $title := partial "paige/func-title" . }} +{{ range .AlternativeOutputFormats }} + +{{ end }} +{{ end }} diff --git a/layouts/partials/paige/meta.html b/layouts/partials/paige/metas.html similarity index 100% rename from layouts/partials/paige/meta.html rename to layouts/partials/paige/metas.html diff --git a/layouts/partials/paige/script.html b/layouts/partials/paige/script.html index de7495f2..0032f765 100644 --- a/layouts/partials/paige/script.html +++ b/layouts/partials/paige/script.html @@ -1,148 +1,11 @@ - - -{{ with .Site.Params.paige.bootstrap.scripts_path }} -{{ with resources.Get (relLangURL .) }} - -{{ else }} - -{{ end }} -{{ else }} - -{{ end }} -{{ if or .Params.paige.math (and .Params.paige.show_full_pages (where .Pages "Params.paige.math" "eq" true)) }} - - -{{ end }} -{{ if .Site.GoogleAnalytics }} -{{ template "_internal/google_analytics.html" . }} -{{ end }} -{{ with .Site.Params.paige.analytics.chartbeat }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.clicky }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.fathom }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.finteza }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.hotjar }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.matomo }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.mixpanel }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.plausible }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.woopra }} - - -{{ end }} -{{ with .Site.Params.paige.analytics.yandex }} - - -{{ end }} +{{ $path := false }} +{{ $src := .src }} +{{ if eq $src (urls.Parse $src).Path }} + {{ $path = true }} + {{ with resources.Get (relLangURL $src) }} + {{ $src = (. | minify | fingerprint).RelPermalink }} + {{ else }} + {{ $src = relLangURL $src }} + {{ end }} +{{ end }} + diff --git a/layouts/partials/paige/scripts.html b/layouts/partials/paige/scripts.html new file mode 100644 index 00000000..c442a670 --- /dev/null +++ b/layouts/partials/paige/scripts.html @@ -0,0 +1,150 @@ + + +{{ partial "paige/script" (dict + "integrity" (.Site.Params.paige.bootstrap.scripts.script_integrity | default "sha384-OERcA2EqjJCMA+/3y+gxIOqMEjwtxJY7qPCqsdltbNJuaOe923+mo//f6V8Qbsw3") + "src" (.Site.Params.paige.bootstrap.scripts.script_src | default "https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js") +) }} +{{ if or .Params.paige.math (and .Params.paige.show_full_pages (where .Pages "Params.paige.math" "eq" true)) }} +{{ partial "paige/script" (dict + "integrity" (.Site.Params.paige.math.scripts.script_integrity | default "sha384-97gW6UIJxnlKemYavrqDHSX3SiygeOwIZhwyOKRfSaf0JWKRVj9hLASHgFTzT+0O") + "src" (.Site.Params.paige.math.scripts.script_src | default "https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/katex.min.js") +) }} +{{ partial "paige/script" (dict + "integrity" (.Site.Params.paige.math.autorender.script_integrity | default "sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05") + "onload" "renderMathInElement(document.body);" + "src" (.Site.Params.paige.math.autorender.script_src | default "https://cdn.jsdelivr.net/npm/katex@0.16.3/dist/contrib/auto-render.min.js") +) }} +{{ end }} +{{ if .Site.GoogleAnalytics }} +{{ template "_internal/google_analytics.html" . }} +{{ end }} +{{ with .Site.Params.paige.analytics.chartbeat }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.clicky }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.fathom }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.finteza }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.hotjar }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.matomo }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.mixpanel }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.plausible }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.woopra }} + + +{{ end }} +{{ with .Site.Params.paige.analytics.yandex }} + + +{{ end }}