mirror of
https://gitee.com/butubb8/blowfish.git
synced 2025-12-05 14:17:50 +08:00
⚡ Only generate css classes for used repo colors
This in most cases will reduce the size of main.bundle.css dramatically. Before I had around ~+32kB, now it is ~+228B
This commit is contained in:
20
layouts/partials/get-repo-languages.html
Normal file
20
layouts/partials/get-repo-languages.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{{ $repoColors := site.Data.repoColors }}
|
||||||
|
{{ $classNameMap := dict }}
|
||||||
|
{{ range $language, $unused := $repoColors }}
|
||||||
|
{{ $className := printf "background-color-%s" (md5 $language) }}
|
||||||
|
{{ $classNameMap = merge $classNameMap (dict $className $language) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ $classNames := slice }}
|
||||||
|
{{ range site.Pages }}
|
||||||
|
{{ $matchedClasses := findRE `background-color-[a-f0-9]{32}` .Content }}
|
||||||
|
{{ range $matchedClasses }}
|
||||||
|
{{ with index $classNameMap . }}
|
||||||
|
{{ $classNames = $classNames | append . }}
|
||||||
|
{{ else }}
|
||||||
|
{{ $classNames = $classNames | append "fallback" }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ return (uniq $classNames) }}
|
||||||
@@ -85,28 +85,14 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ $repoShortcodeExists := false }}
|
{{ $repoLanguages := partial "functions/repo-languages.html" }}
|
||||||
{{ range .Site.Pages }}
|
{{ $repoColors := .Site.Data.repoColors }}
|
||||||
{{ if or (.Page.HasShortcode "codeberg") (.Page.HasShortcode "forgejo") (.Page.HasShortcode "gitea") (.Page.HasShortcode "github") }}
|
{{ range $repoLanguages }}
|
||||||
{{ $repoShortcodeExists = true }}
|
{{ $color := index $repoColors . | default "#0077b6" }}
|
||||||
{{ end }}
|
{{ $className := printf "background-color-%s" (md5 .) }}
|
||||||
{{ end }}
|
{{ $cssRepoColor := printf ".%s { background-color: %s; }" $className $color }}
|
||||||
{{ if $repoShortcodeExists }}
|
{{ $cssRepoColor = $cssRepoColor | resources.FromString (printf "css/background-color.css") }}
|
||||||
{{ $colorsRepos := .Site.Data.colorsRepos }}
|
{{ $assets.Add "css" (slice $cssRepoColor) }}
|
||||||
{{ range $language, $color := $colorsRepos }}
|
|
||||||
{{ if not $color }}
|
|
||||||
{{ $color = "" }}
|
|
||||||
{{ end }}
|
|
||||||
{{ $className := printf "color-repo-%s" (md5 $language) }}
|
|
||||||
{{ $cssColorRepos := printf ".%s { background-color: %s; }" $className $color }}
|
|
||||||
{{ $cssColorRepos = $cssColorRepos | resources.FromString "css/color-repo.css" }}
|
|
||||||
{{ $assets.Add "css" (slice $cssColorRepos) }}
|
|
||||||
{{ end }}
|
|
||||||
{{ $color := "#0077b6" }}
|
|
||||||
{{ $className := "color-repo-fallback" }}
|
|
||||||
{{ $cssColorRepos := printf ".%s { background-color: %s; }" $className $color }}
|
|
||||||
{{ $cssColorRepos = $cssColorRepos | resources.FromString "css/color-repo.css" }}
|
|
||||||
{{ $assets.Add "css" (slice $cssColorRepos) }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint
|
{{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint
|
||||||
|
|||||||
@@ -22,10 +22,8 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="m-0 mt-2 flex items-center">
|
<div class="m-0 mt-2 flex items-center">
|
||||||
{{ $className := "color-repo-fallback" }}
|
{{ $language := .language | default "fallback" }}
|
||||||
{{ if .language }}
|
{{ $className := printf "background-color-%s" (md5 $language) }}
|
||||||
{{ $className = printf "color-repo-%s" (md5 .language) }}
|
|
||||||
{{ end }}
|
|
||||||
<span
|
<span
|
||||||
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
||||||
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
||||||
|
|||||||
@@ -22,10 +22,8 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="m-0 mt-2 flex items-center">
|
<div class="m-0 mt-2 flex items-center">
|
||||||
{{ $className := "color-repo-fallback" }}
|
{{ $language := .language | default "fallback" }}
|
||||||
{{ if .language }}
|
{{ $className := printf "background-color-%s" (md5 $language) }}
|
||||||
{{ $className = printf "color-repo-%s" (md5 .language) }}
|
|
||||||
{{ end }}
|
|
||||||
<span
|
<span
|
||||||
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
||||||
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
||||||
|
|||||||
@@ -22,10 +22,8 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="m-0 mt-2 flex items-center">
|
<div class="m-0 mt-2 flex items-center">
|
||||||
{{ $className := "color-repo-fallback" }}
|
{{ $language := .language | default "fallback" }}
|
||||||
{{ if .language }}
|
{{ $className := printf "background-color-%s" (md5 $language) }}
|
||||||
{{ $className = printf "color-repo-%s" (md5 .language) }}
|
|
||||||
{{ end }}
|
|
||||||
<span
|
<span
|
||||||
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
||||||
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
||||||
|
|||||||
@@ -37,10 +37,8 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="m-0 mt-2 flex items-center">
|
<div class="m-0 mt-2 flex items-center">
|
||||||
{{ $className := "color-repo-fallback" }}
|
{{ $language := .language | default "fallback" }}
|
||||||
{{ if .language }}
|
{{ $className := printf "background-color-%s" (md5 $language) }}
|
||||||
{{ $className = printf "color-repo-%s" (md5 .language) }}
|
|
||||||
{{ end }}
|
|
||||||
<span
|
<span
|
||||||
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
|
||||||
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
|
||||||
@@ -73,5 +71,4 @@
|
|||||||
data-repo-id="{{ $id }}"></script>
|
data-repo-id="{{ $id }}"></script>
|
||||||
</a>
|
</a>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user