diff options
Diffstat (limited to 'themes/LoveIt/layouts/partials/plugin')
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/a.html | 9 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/analytics.html | 43 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/compatibility.html | 22 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/h-card.html | 15 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/icon.html | 13 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/img.html | 46 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/script.html | 41 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/share.html | 171 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/social.html | 15 | ||||
-rw-r--r-- | themes/LoveIt/layouts/partials/plugin/style.html | 46 |
10 files changed, 421 insertions, 0 deletions
diff --git a/themes/LoveIt/layouts/partials/plugin/a.html b/themes/LoveIt/layouts/partials/plugin/a.html new file mode 100644 index 0000000..8dccaa7 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/a.html @@ -0,0 +1,9 @@ +{{- $rel := "" -}} +<a href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }}{{ if (urls.Parse .Destination).Host | or .Newtab }}{{ $rel = "noopener noreffer " }} target="_blank"{{ end }} rel="{{ $rel }}{{ with .Rel }}{{ . }}{{ end }}"{{ with .Class }} class="{{ . }}"{{ end }}> + {{- with .Icon -}} + {{- partial "plugin/icon.html" . -}} + {{- end -}} + {{- with .Content -}} + {{- . | safeHTML -}} + {{- end -}} +</a>
\ No newline at end of file diff --git a/themes/LoveIt/layouts/partials/plugin/analytics.html b/themes/LoveIt/layouts/partials/plugin/analytics.html new file mode 100644 index 0000000..9b174ed --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/analytics.html @@ -0,0 +1,43 @@ +{{- $analytics := .Scratch.Get "analytics" | default dict -}} + +{{- 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 -}} + + {{- /* Plausible Analytics */ -}} + {{- with $analytics.plausible.dataDomain -}} + {{- dict "Source" "https://plausible.io/js/plausible.js" "Async" true "Defer" true "Attr" ($analytics.plausible.dataDomain | printf `data-domain="%v"`) | partial "plugin/script.html" -}} + {{- end -}} + + {{- /* Yandex Metrica */ -}} + {{- with $analytics.yandexMetrica.id -}} + <script type="text/javascript" > + (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; + m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) + (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); + + ym({{ . }}, "init", { + clickmap:true, + trackLinks:true, + accurateTrackBounce:true + }); + </script> + <noscript><div><img src="https://mc.yandex.ru/watch/{{ . }}" style="position:absolute; left:-9999px;" alt="" /></div></noscript> + {{- end -}} +{{- end -}} diff --git a/themes/LoveIt/layouts/partials/plugin/compatibility.html b/themes/LoveIt/layouts/partials/plugin/compatibility.html new file mode 100644 index 0000000..b460f18 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/compatibility.html @@ -0,0 +1,22 @@ +{{- $compatibility := .Site.Params.compatibility | default dict -}} +{{- $cdn := .Scratch.Get "cdn" | default dict -}} +{{- $fingerprint := .Scratch.Get "fingerprint" -}} + +{{- /* Polyfill.io */ -}} +{{- if $compatibility.polyfill -}} + {{- $features := slice -}} + {{- range resources.Get "data/polyfill.yml" | transform.Unmarshal -}} + {{- range . -}} + {{- $features = $features | append . -}} + {{- end -}} + {{- end -}} + {{- with $features | uniq -}} + {{- delimit . "%2C" | printf "https://polyfill.io/v3/polyfill.min.js?features=%v" | dict "Source" | dict "Scratch" $.Scratch "Data" | partial "scratch/script.html" -}} + {{- end -}} +{{- end -}} + +{{- /* object-fit-images */ -}} +{{- if $compatibility.objectFit -}} + {{- $source := $cdn.objectFitImagesJS | default "lib/object-fit-images/ofi.min.js" -}} + {{- dict "Source" $source "Fingerprint" $fingerprint | dict "Scratch" .Scratch "Data" | partial "scratch/script.html" -}} +{{- end -}} diff --git a/themes/LoveIt/layouts/partials/plugin/h-card.html b/themes/LoveIt/layouts/partials/plugin/h-card.html new file mode 100644 index 0000000..6613032 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/h-card.html @@ -0,0 +1,15 @@ +{{- $rel := .Rel -}} +{{- $nick := .Nickname -}} +{{- $text := .Text -}} +{{- $n := .Nickname | default .Name | default .Email | default .URL | default "👀" -}} +<span class="h-card{{ with .Class }} {{ . }}{{- end -}}"> +{{- with .URL -}}<a href="{{ . }}" class="u-url url"{{ with $rel }} rel="{{ . }}"{{- end -}}{{ with $text }} title="{{ . }}"{{ end }}>{{- else -}}{{- with .Email -}}<a href="mailto:{{ . }}" class="email"{{ with $text }} title="{{ . }}"{{ end }}>{{- end -}}{{- end -}} +{{- with .Image -}}<img class="u-photo photo" src="{{ . }}" alt="{{ $n }}">{{- else -}}<i class="far fa-user-circle" aria-hidden="true"></i>{{ end -}}  +{{- with .Name -}}<span class="p-name fn">{{ . }}</span>{{ with $nick }} ({{- end -}}{{- end -}} +{{- with .Nickname -}}<span class="p-nickname nickname">{{ . }}</span>{{- end -}} +{{- with .Name -}}{{ with $nick }}){{- end -}}{{- end -}} +{{- with .URL -}}</a>{{- else -}}{{- with .Email -}}</a>{{- end -}}{{- end -}} +{{- with .Email }} + <a href="mailto:{{ . }}" class="email"><span class="u-email">{{ . }}</span></a> +{{- end -}} +</span>
\ No newline at end of file diff --git a/themes/LoveIt/layouts/partials/plugin/icon.html b/themes/LoveIt/layouts/partials/plugin/icon.html new file mode 100644 index 0000000..c5f98db --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/icon.html @@ -0,0 +1,13 @@ +{{- with .Class -}} + <i class="{{ . }}" aria-hidden="true"></i> +{{- else -}} + {{- $src := .Src -}} + {{- with .Simpleicons -}} + {{- $prefix := $.Prefix | default "lib/simple-icons/icons" | strings.TrimSuffix "/" -}} + {{- $src = printf "%v/%v.svg" $prefix . -}} + {{- end -}} + {{- if (urls.Parse $src).Host | not -}} + {{- $src = (resources.Get $src | minify).RelPermalink -}} + {{- end -}} + <i data-svg-src="{{ $src }}" aria-hidden="true"></i> +{{- end -}} diff --git a/themes/LoveIt/layouts/partials/plugin/img.html b/themes/LoveIt/layouts/partials/plugin/img.html new file mode 100644 index 0000000..8468583 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/img.html @@ -0,0 +1,46 @@ +{{- /* lazysizes and lightgallery */ -}} +{{- $src := .Src -}} +{{- $width := .Width -}} +{{- $height := .Height -}} +{{- with dict "Path" $src "Resources" .Resources | partial "function/resource.html" -}} + {{- $src = .RelPermalink -}} + {{- $width = $width | default .Width -}} + {{- $height = $height | default .Height -}} +{{- end -}} + +{{- $small := .SrcSmall | default $src -}} +{{- with dict "Path" .SrcSmall "Resources" .Resources | partial "function/resource.html" -}} + {{- $small = .RelPermalink -}} +{{- end -}} + +{{- $large := .SrcLarge | default $src -}} +{{- with dict "Path" .SrcLarge "Resources" .Resources | partial "function/resource.html" -}} + {{- $large = .RelPermalink -}} +{{- end -}} + +{{- $alt := .Alt | default $src -}} +{{- $loading := resources.Get "svg/loading.svg" | minify -}} +{{- if .Linked -}} + <a class="lightgallery" href="{{ $large | safeURL }}" title="{{ .Title | default $alt }}" data-thumbnail="{{ $small | safeURL }}"{{ with .Caption }} data-sub-html="<h2>{{ . }}</h2>{{ with $.Title }}<p>{{ . }}</p>{{ end }}"{{ end }}{{ with .Rel }} rel="{{ . }}"{{ end }}> + <img + class="lazyload{{ with .Class }} {{ . }}{{ end }}" + src="{{ $loading.RelPermalink }}" + data-src="{{ $src | safeURL }}" + data-srcset="{{ $small | safeURL }}, {{ $src | safeURL }} 1.5x, {{ $large | safeURL }} 2x" + data-sizes="auto" + alt="{{ $alt }}" + {{- with $width }} width="{{ . }}"{{ end }} + {{- with $height }} height="{{ . }}"{{ end }} /> + </a> +{{- else -}} + <img + class="lazyload{{ with .Class }} {{ . }}{{ end }}" + src="{{ $loading.RelPermalink }}" + data-src="{{ $src | safeURL }}" + data-srcset="{{ $small | safeURL }}, {{ $src | safeURL }} 1.5x, {{ $large | safeURL }} 2x" + data-sizes="auto" + alt="{{ $alt }}" + title="{{ .Title | default $alt }}" + {{- with $width }} width="{{ . }}"{{ end }} + {{- with $height }} height="{{ . }}"{{ end }} /> +{{- end -}} diff --git a/themes/LoveIt/layouts/partials/plugin/script.html b/themes/LoveIt/layouts/partials/plugin/script.html new file mode 100644 index 0000000..9b9fa37 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/script.html @@ -0,0 +1,41 @@ +{{- with .Content -}} + <script type="text/javascript">{{ . | safeJS }}</script> +{{- else -}} + {{- if strings.HasPrefix .Source "<script" -}} + {{- safeHTML .Source -}} + {{- else -}} + {{- $src := .Source -}} + {{- $integrity := .Integrity -}} + {{- if (urls.Parse $src).Host | not -}} + {{- $resource := resources.Get $src -}} + {{- with .Template -}} + {{- $resource = $resource | resources.ExecuteAsTemplate . $.Context -}} + {{- end -}} + {{- if .Minify -}} + {{- $resource = $resource | minify -}} + {{- end -}} + {{- with .Fingerprint -}} + {{- $resource = $resource | fingerprint . -}} + {{- $integrity = $resource.Data.Integrity -}} + {{- end -}} + {{- $src = $resource.RelPermalink -}} + {{- end -}} + {{- $attrs := printf `src="%v"` $src -}} + {{- if .Crossorigin -}} + {{- $attrs = ` crossorigin="anonymous"` | add $attrs -}} + {{- end -}} + {{- with $integrity -}} + {{- $attrs = printf ` integrity="%v"` . | add $attrs -}} + {{- end -}} + {{- if .Async -}} + {{- $attrs = " async" | add $attrs -}} + {{- end -}} + {{- if .Defer -}} + {{- $attrs = " defer" | add $attrs -}} + {{- end -}} + {{- with .Attr -}} + {{- $attrs = add " " . | add $attrs -}} + {{- end -}} + <script type="text/javascript" {{ $attrs | safeHTMLAttr }}></script> + {{- end -}} +{{- end -}} diff --git a/themes/LoveIt/layouts/partials/plugin/share.html b/themes/LoveIt/layouts/partials/plugin/share.html new file mode 100644 index 0000000..fd29589 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/share.html @@ -0,0 +1,171 @@ +{{- $share := (.Scratch.Get "params").share | default dict -}} + +{{- if $share.enable -}} + {{- /* 001: Twitter */ -}} + {{- if $share.Twitter -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Twitter" data-sharer="twitter" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.tags }} data-hashtags="{{ delimit . `,` }}"{{ end }}> + {{- dict "Class" "fab fa-twitter fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 002: Facebook */ -}} + {{- if $share.Facebook -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Facebook" data-sharer="facebook" data-url="{{ .Permalink }}"{{ with .Params.tags }} data-hashtag="{{ index . 0 }}"{{ end }}> + {{- dict "Class" "fab fa-facebook-square fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 003: Linkedin */ -}} + {{- if $share.Linkedin -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Linkedin" data-sharer="linkedin" data-url="{{ .Permalink }}"> + {{- dict "Class" "fab fa-linkedin fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 004: WhatsApp */ -}} + {{- if $share.Whatsapp -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} WhatsApp" data-sharer="whatsapp" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-web> + {{- dict "Class" "fab fa-whatsapp fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 005: Viber */ -}} + {{- if $share.Viber -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Viber" data-sharer="viber" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-viber fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 006: Pinterest */ -}} + {{- if $share.Pinterest -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Pinterest" data-sharer="pinterest" data-url="{{ .Permalink }}"{{ with .Description }} data-description="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}> + {{- dict "Class" "fab fa-pinterest fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 007: Tumblr */ -}} + {{- if $share.Tumblr -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Tumblr" data-sharer="tumblr" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.tags }} data-tags="{{ delimit . `,` }}"{{ end }}> + {{- dict "Class" "fab fa-tumblr fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 008: Hacker News */ -}} + {{- if $share.Hackernews -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Hacker News" data-sharer="hackernews" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-hacker-news fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 009: Reddit */ -}} + {{- if $share.Reddit -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Reddit" data-sharer="reddit" data-url="{{ .Permalink }}"> + {{- dict "Class" "fab fa-reddit fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 010: VK */ -}} + {{- if $share.VK -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} VK" data-sharer="vk" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Description }} data-caption="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}> + {{- dict "Class" "fab fa-vk fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 011: Buffer */ -}} + {{- if $share.Buffer -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Buffer" data-sharer="buffer" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Site.Params.Social.Twitter }} data-via="{{ . }}"{{ end }}{{ with .Params.featuredImage }} data-picture="{{ . }}"{{ end }}> + {{- dict "Class" "fab fa-buffer fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 012: Xing */ -}} + {{- if $share.Xing -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Xing" data-sharer="xing" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-xing fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 013: Line */ -}} + {{- if $share.Line -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Line" data-sharer="line" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Simpleicons" "line" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 014: Instapaper */ -}} + {{- if $share.Instapaper -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Instapaper" data-sharer="instapaper" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}"> + {{- dict "Simpleicons" "instapaper" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 015: Pocket */ -}} + {{- if $share.Pocket -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Pocket" data-sharer="pocket" data-url="{{ .Permalink }}"> + {{- dict "Class" "fab fa-get-pocket fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 016: Flipboard */ -}} + {{- if $share.Flipboard -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Flipboard" data-sharer="flipboard" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-flipboard fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 017: 微博 */ -}} + {{- if $share.Weibo -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} 微博" data-sharer="weibo" data-url="{{ .Permalink }}" data-title="{{ .Title }}"{{ with .Params.featuredImage }} data-image="{{ . }}"{{ end }}{{ with .Site.Params.Social.Weibo }} data-ralateuid="{{ . }}"{{ end }}> + {{- dict "Class" "fab fa-weibo fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 018: Blogger */ -}} + {{- if $share.Blogger -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Blogger" data-sharer="blogger" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}"> + {{- dict "Class" "fab fa-blogger fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 019: 百度 */ -}} + {{- if $share.Baidu -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} 百度" data-sharer="baidu" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Simpleicons" "baidu" "Prefix" (.Scratch.Get "cdn" | default dict).simpleIconsPrefix | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 020: OK.RU */ -}} + {{- if $share.Odnoklassniki -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} OK.RU" data-sharer="okru" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-odnoklassniki fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 021: Evernote */ -}} + {{- if $share.Evernote -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Evernote" data-sharer="evernote" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-evernote fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 022: Skype */ -}} + {{- if $share.Skype -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Skype" data-sharer="skype" data-url="{{ .Permalink }}" data-title="{{ .Title }}"> + {{- dict "Class" "fab fa-skype fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 023: Trello */ -}} + {{- if $share.Trello -}} + <a href="javascript:void(0);" title="{{ T `shareOn` }} Trello" data-sharer="trello" data-url="{{ .Permalink }}" data-title="{{ .Title }}" data-description="{{ .Description }}"> + {{- dict "Class" "fab fa-trello fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} + + {{- /* 024: Mix */ -}} + {{- if $share.Mix -}} + <a href="//mix.com/add?url={{ .Permalink }}&description={{ .Title }}" target="_blank" title="{{ T `shareOn` }} Mix"> + {{- dict "Class" "fab fa-mix fa-fw" | partial "plugin/icon.html" -}} + </a> + {{- end -}} +{{- end -}} diff --git a/themes/LoveIt/layouts/partials/plugin/social.html b/themes/LoveIt/layouts/partials/plugin/social.html new file mode 100644 index 0000000..4b74a94 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/social.html @@ -0,0 +1,15 @@ +{{- $destination := "" -}} +{{- with .Url -}} + {{- $destination = . | relLangURL -}} +{{- else -}} + {{- $template := .Template | default "%v" -}} + {{- with .Prefix -}} + {{- $template = . | strings.TrimSuffix "/" | printf "%v/%%v" -}} + {{- end -}} + {{- $destination = printf (string $template) .Id -}} +{{- end -}} +{{- $rel := "me" -}} +{{- with .Rel -}} + {{- $rel = printf "%v %v" $rel . -}} +{{- end -}} +{{- dict "Destination" $destination "Rel" $rel | merge . | partial "plugin/a.html" -}} diff --git a/themes/LoveIt/layouts/partials/plugin/style.html b/themes/LoveIt/layouts/partials/plugin/style.html new file mode 100644 index 0000000..cbd89d9 --- /dev/null +++ b/themes/LoveIt/layouts/partials/plugin/style.html @@ -0,0 +1,46 @@ +{{- if strings.HasPrefix .Source "<link" -}} + {{- safeHTML .Source -}} +{{- else -}} + {{- $href := .Source -}} + {{- $integrity := .Integrity -}} + {{- $resource := 0 -}} + {{- if $href | and (not (urls.Parse $href).Host) -}} + {{- $resource = resources.Get $href -}} + {{- end -}} + {{- with .Content -}} + {{- $resource = resources.FromString $.Path . -}} + {{- end -}} + {{- if $resource -}} + {{- with .Template -}} + {{- $resource = $resource | resources.ExecuteAsTemplate . $.Context -}} + {{- end -}} + {{- with .ToCSS -}} + {{- $options := . | merge (dict "outputStyle" "compressed") -}} + {{- $resource = $resource | toCSS $options -}} + {{- end -}} + {{- if .Minify -}} + {{- $resource = $resource | minify -}} + {{- end -}} + {{- with .Fingerprint -}} + {{- $resource = $resource | fingerprint . -}} + {{- $integrity = $resource.Data.Integrity -}} + {{- end -}} + {{- $href = $resource.RelPermalink -}} + {{- end -}} + {{- $attrs := printf `href="%v"` $href -}} + {{- if .Crossorigin -}} + {{- $attrs = ` crossorigin="anonymous"` | add $attrs -}} + {{- end -}} + {{- with $integrity -}} + {{- $attrs = printf ` integrity="%v"` . | add $attrs -}} + {{- end -}} + {{- with .Attr -}} + {{- $attrs = add " " . | add $attrs -}} + {{- end -}} + {{- if .Preload -}} + <link rel="preload" {{ $attrs | safeHTMLAttr }} as="style" onload="this.onload=null;this.rel='stylesheet'"> + <noscript><link rel="stylesheet" {{ $attrs | safeHTMLAttr }}></noscript> + {{- else -}} + <link rel="stylesheet" {{ $attrs | safeHTMLAttr }}> + {{- end -}} +{{- end -}} |