👷 Finish dynamic CSS CDN service with different vendor.

This commit is contained in:
凡梦星尘 2022-05-24 21:30:08 +08:00
parent 09ff24c8c6
commit 71dfdb845d
3 changed files with 48 additions and 3 deletions

27
data/resources.yaml Normal file
View File

@ -0,0 +1,27 @@
# Public CDN vender list
#
vendors: {
"cdnjs": "//cdnjs.cloudflare.com/ajax/libs/${name}/${version}/${file}",
"unpkg": "//unpkg.com/${name}@${version}/${file}"
}
# Javascript Resources
#
js:
- name: anime
version: 3.2.1
file: lib/anime.min.js
- name: mathjax
version: 3.2.0
file: es5/tex-mml-chtml.js
# CSS Resources
#
css:
- name: '@fortawesome/fontawesome-free'
version: 6.1.1
file: css/all.min.css
alias: font-awesome
- name: animate.css
version: 3.1.1
file: animate.min.css

View File

@ -911,7 +911,7 @@ params:
# The default CDN provider of third-party plugins. # The default CDN provider of third-party plugins.
# Available values: local | jsdelivr | unpkg | cdnjs | custom # Available values: local | jsdelivr | unpkg | cdnjs | custom
# Dependencies for `plugins: local`: https://github.com/next-theme/plugins # Dependencies for `plugins: local`: https://github.com/next-theme/plugins
plugins: jsdelivr plugins: unpkg
# Custom CDN URL # Custom CDN URL
# For example: # For example:
# custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified} # custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified}

View File

@ -1,5 +1,23 @@
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css"> {{- $vendors := .Page.Site.Data.resources.vendors }}
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css"> {{- $pluginVen := .P.vendors.plugins }}
{{- $pluginCDN := index $vendors $pluginVen }}
<!-- Plugin style files -->
{{- $cssRes := .Page.Site.Data.resources.css }}
{{- range $css := $cssRes }}
{{- $npm := $css.name }}
{{- $file := $css.file }}
{{- if eq $pluginVen "cndjs" }}
{{- $npm = $.css.alias }}
{{ $file }}
{{- $file = replaceRE "(dist|lib|source\\/js)\\/" "" $css.file }}
{{- end }}
{{- $pluginCSS := $pluginCDN }}
{{- $pluginCSS = replace $pluginCSS "${name}" $npm }}
{{- $pluginCSS = replace $pluginCSS "${version}" $css.version }}
{{- $pluginCSS = replace $pluginCSS "${file}" $file }}
<link rel="stylesheet" href="{{ $pluginCSS }}">
{{- end }}
<!-- Main Style file -->
{{- $scss := resources.Get "css/main.scss" }} {{- $scss := resources.Get "css/main.scss" }}
{{- $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }} {{- $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }}
{{- $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }} {{- $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }}