hugo-theme-relearn/layouts/partials/stylesheet.html
2025-02-27 20:26:38 +01:00

153 lines
No EOL
8.6 KiB
HTML

{{- $outputFormat := "html" }}
{{- with .Store.Get "relearnOutputFormat" }}
{{- $outputFormat = . }}
{{- else }}
{{- warnf "WARNING no key `relearnOutputFormat` found in page store, set one by providing the file `layouts/_default/view/storeOutputFormat.<MYOUTPUTFORMAT>.html` for your self-defined output format; see https://mcshelby.github.io/hugo-theme-relearn/introduction/releasenotes/6/#6-0-0" }}
{{- end }}
{{- $assetBusting := partialCached "assetbusting.gotmpl" . }}
{{- $minify := not hugo.IsServer }}
{{- if and (isset site.Params "minify") (ne site.Params.minify "") }}
{{- $minify = site.Params.minify }}
{{- end }}
{{- $min := cond $minify ".min" "" }}
{{- /* https://github.com/filamentgroup/loadCSS/blob/master/README.md#how-to-use */}}
{{- with resources.Get "/fonts/fontawesome/css/fontawesome-all.min.css" }}
<link href="{{ .RelPermalink }}{{ $assetBusting }}" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="{{ .RelPermalink }}{{ $assetBusting }}" rel="stylesheet"></noscript>
{{- end }}
{{- with resources.Get "/css/perfect-scrollbar/perfect-scrollbar.min.css" }}
<link href="{{ .RelPermalink }}{{ $assetBusting }}" rel="stylesheet">
{{- end }}
{{- $themevariants := partialCached "_relearn/themeVariants.gotmpl" . }}
{{- $quotedthemevariants := slice }}
{{- range $themevariants }}
{{- $quotedthemevariants = $quotedthemevariants | append (printf "'%s'" .identifier) }}
{{- end }}
{{- $wrap := true }}
{{- if isset site.Params "highlightwrap" }}
{{- $wrap = site.Params.highlightWrap }}
{{- end }}
{{- if isset .Params "highlightwrap" }}
{{- $wrap = .Params.highlightWrap }}
{{- end }}
{{- $disableInlineCopyToClipboard := site.Params.disableInlineCopyToClipBoard }}
{{- $pageBaseLang := replaceRE "([a-z]+).*" "${1}" .Page.Language.LanguageCode }}
{{- $contentlangs := (union (slice | append (site.Params.additionalContentLanguage | default slice)) (slice $pageBaseLang)) }}
{{- $quotedcontentlangs := slice }}
{{- $searchIndexUrl := "" }}
<link href="{{(printf "css/theme%s.css" $min) | relURL}}{{ $assetBusting }}" rel="stylesheet">
<link href="{{(printf "css/format-%s%s.css" $outputFormat $min) | relURL}}{{ $assetBusting }}" rel="stylesheet" id="R-format-style">
{{- if not .Site.Params.disableSearch }}
{{- with resources.Get "/css/auto-complete/auto-complete.css" }}
<link href="{{ (. | minify).RelPermalink }}{{ $assetBusting }}" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;">
{{- end }}
{{- with resources.Get "/js/auto-complete/auto-complete.js" }}
<script src="{{ (. | minify).RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- if not .Site.Params.disableSearchIndex }}
{{- $searchIndexUrl = trim (or .Site.Params.searchIndexURL "searchindex.js") "/" }}
{{- $searchIndexUrl = path.Join (path.Dir $searchIndexUrl) (print (path.BaseName $searchIndexUrl) "." .Language.Lang (path.Ext $searchIndexUrl)) }}
{{- if .IsHome }}
{{- $templateres := resources.Get "/_relearn_searchindex.js" }}
{{- $resultres := $templateres | resources.ExecuteAsTemplate $searchIndexUrl .Site.Home }}
{{- /* the following code causes Hugo to generate our file in public */}}
{{- $url := $resultres.RelPermalink }}
{{- end }}
{{- with resources.Get "/js/lunr/lunr.min.js" }}
<script src="{{ .RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- with resources.Get "/js/lunr/lunr.stemmer.support.min.js" }}
<script src="{{ .RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- with resources.Get "/js/lunr/lunr.multi.min.js" }}
<script src="{{ .RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- $missingcontentlangs := slice }}
{{- $tinyseg := false }}
{{- $wordcut := false }}
{{- range $contentlangs }}
{{- $lang := . }}
{{- with resources.Get (printf "/js/lunr/lunr.%s.min.js" $lang) }}
{{- if and (not $tinyseg) (or (eq $lang "ja")) }}
{{- $tinyseg = true }}
{{- with resources.Get "/js/lunr/tinyseg.js" }}
<script src="{{ .RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- end }}
{{- if and (not $wordcut) (or (eq $lang "hi") (eq $lang "th")) }}
{{- $wordcut = true }}
{{- with resources.Get "/js/lunr/wordcut.js" }}
<script src="{{ .RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- end }}
<script src="{{ .RelPermalink }}{{ $assetBusting }}" defer></script>
{{- else }}
{{- $missingcontentlangs = $missingcontentlangs | append . }}
{{- end }}
{{- end }}
{{- $contentlangs = $contentlangs | complement $missingcontentlangs }}
{{- end }}
{{- with resources.Get "/js/search.js" }}
{{- $res := . }}
{{- if $minify }}
{{- $res = $res | minify }}
{{- end }}
<script src="{{ $res.RelPermalink }}{{ $assetBusting }}" defer></script>
{{- end }}
{{- end }}
{{- range $contentlangs }}
{{- $quotedcontentlangs = $quotedcontentlangs | append (printf "'%s'" .) }}
{{- end }}
<script>
window.relearn = window.relearn || {};
{{ "// configuration" | safeJS }}
{{ printf "window.relearn.min = `%s`;" $min | safeJS }}
window.relearn.relBasePath='{{ partial "_relearn/relBasePath.gotmpl" . | safeJS }}';
window.relearn.relBaseUri='{{ partial "_relearn/relBaseUri.gotmpl" . | safeJS }}';
window.relearn.absBaseUri='{{ replaceRE "/*$" "" .Site.BaseURL | safeJS }}';
window.relearn.contentLangs=[{{ delimit $quotedcontentlangs ", " | safeJS }}];
{{- if $searchIndexUrl }}
window.relearn.index_js_url={{ (printf "%s%s" $searchIndexUrl $assetBusting) | relURL }};
{{- end }}
window.relearn.disableAnchorCopy={{ printf "%t" (eq .Site.Params.disableAnchorCopy true) | safeJS }};
window.relearn.disableAnchorScrolling={{ printf "%t" (eq .Site.Params.disableAnchorScrolling true) | safeJS }};
window.relearn.disableInlineCopyToClipboard={{ printf "%t" (eq $disableInlineCopyToClipboard true) | safeJS }};
window.relearn.enableBlockCodeWrap={{ printf "%t" (eq $wrap true) | safeJS }};
{{ "// variant stuff" | safeJS }}
window.relearn.themevariants = [ {{ delimit $quotedthemevariants ", " | safeJS }} ];
window.relearn.customvariantname = "my-custom-variant";
window.relearn.changeVariant = function(variant) {
var oldVariant = document.documentElement.dataset.rThemeVariant;
window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant);
document.documentElement.dataset.rThemeVariant = variant;
if (oldVariant != variant) {
document.dispatchEvent( new CustomEvent('themeVariantLoaded', { detail: { variant, oldVariant } }) );
}
}
window.relearn.markVariant = function() {
var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant");
var select = document.querySelector("#R-select-variant");
if (select) {
select.value = variant;
}
}
window.relearn.initVariant = function() {
var variant = window.localStorage.getItem(window.relearn.absBaseUri + "/variant") ?? "";
if( variant == window.relearn.customvariantname ){
}else if( !variant || !window.relearn.themevariants.includes(variant) ){
variant = window.relearn.themevariants[0];
window.localStorage.setItem(window.relearn.absBaseUri + "/variant", variant);
}
document.documentElement.dataset.rThemeVariant = variant;
}
window.relearn.initVariant();
window.relearn.markVariant();
{{ "// translations" | safeJS }}
{{ printf "window.T_Copy_to_clipboard = `%s`;" (T `Copy-to-clipboard`) | safeJS }}
{{ printf "window.T_Copied_to_clipboard = `%s`;" (T `Copied-to-clipboard`) | safeJS }}
{{ printf "window.T_Copy_link_to_clipboard = `%s`;" (T `Copy-link-to-clipboard`) | safeJS }}
{{ printf "window.T_Link_copied_to_clipboard = `%s`;" (T `Link-copied-to-clipboard`) | safeJS }}
{{ printf "window.T_Reset_view = `%s`;" (T `Reset-view`) | safeJS }}
{{ printf "window.T_View_reset = `%s`;" (T `View-reset`) | safeJS }}
{{ printf "window.T_No_results_found = `%s`;" (T "No-results-found") | safeJS }}
{{ printf "window.T_N_results_found = `%s`;" (T "N-results-found") | safeJS }}
</script>