Skip to content

Commit 9ac693e

Browse files
committed
⚡ 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
1 parent 1c0ad61 commit 9ac693e

7 files changed

Lines changed: 36 additions & 39 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{{ $repoColors := site.Data.repoColors }}
2+
{{ $classNameMap := dict }}
3+
{{ range $language, $unused := $repoColors }}
4+
{{ $className := printf "background-color-%s" (md5 $language) }}
5+
{{ $classNameMap = merge $classNameMap (dict $className $language) }}
6+
{{ end }}
7+
8+
{{ $classNames := slice }}
9+
{{ range site.Pages }}
10+
{{ $matchedClasses := findRE `background-color-[a-f0-9]{32}` .Content }}
11+
{{ range $matchedClasses }}
12+
{{ with index $classNameMap . }}
13+
{{ $classNames = $classNames | append . }}
14+
{{ else }}
15+
{{ $classNames = $classNames | append "fallback" }}
16+
{{ end }}
17+
{{ end }}
18+
{{ end }}
19+
20+
{{ return (uniq $classNames) }}

layouts/partials/head.html

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -46,29 +46,15 @@
4646
{{ $assets.Add "css" (slice $cssCustom) }}
4747
{{ end }}
4848

49-
{{ $repoShortcodeExists := false }}
50-
{{ range .Site.Pages }}
51-
{{ if or (.Page.HasShortcode "codeberg") (.Page.HasShortcode "forgejo") (.Page.HasShortcode "gitea") (.Page.HasShortcode "github") }}
52-
{{ $repoShortcodeExists = true }}
53-
{{ end }}
49+
{{ $repoLanguages := partial "get-repo-languages.html" }}
50+
{{ $repoColors := .Site.Data.repoColors }}
51+
{{ range $repoLanguages }}
52+
{{ $color := index $repoColors . | default "#0077b6" }}
53+
{{ $className := printf "background-color-%s" (md5 .) }}
54+
{{ $cssRepoColor := printf ".%s { background-color: %s; }" $className $color }}
55+
{{ $cssRepoColor = $cssRepoColor | resources.FromString (printf "css/background-color.css") }}
56+
{{ $assets.Add "css" (slice $cssRepoColor) }}
5457
{{ end }}
55-
{{ if $repoShortcodeExists }}
56-
{{ $colorsRepos := .Site.Data.colorsRepos }}
57-
{{ range $language, $color := $colorsRepos }}
58-
{{ if not $color }}
59-
{{ $color = "" }}
60-
{{ end }}
61-
{{ $className := printf "color-repo-%s" (md5 $language) }}
62-
{{ $cssColorRepos := printf ".%s { background-color: %s; }" $className $color }}
63-
{{ $cssColorRepos = $cssColorRepos | resources.FromString "css/color-repo.css" }}
64-
{{ $assets.Add "css" (slice $cssColorRepos) }}
65-
{{ end }}
66-
{{ $color := "#0077b6" }}
67-
{{ $className := "color-repo-fallback" }}
68-
{{ $cssColorRepos := printf ".%s { background-color: %s; }" $className $color }}
69-
{{ $cssColorRepos = $cssColorRepos | resources.FromString "css/color-repo.css" }}
70-
{{ $assets.Add "css" (slice $cssColorRepos) }}
71-
{{ end }}
7258

7359
{{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint
7460
(.Site.Params.fingerprintAlgorithm | default "sha512") }}

layouts/shortcodes/codeberg.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@
2222
</p>
2323

2424
<div class="m-0 mt-2 flex items-center">
25-
{{ $className := "color-repo-fallback" }}
26-
{{ if .language }}
27-
{{ $className = printf "color-repo-%s" (md5 .language) }}
28-
{{ end }}
25+
{{ $language := .language | default "fallback" }}
26+
{{ $className := printf "background-color-%s" (md5 $language) }}
2927
<span
3028
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
3129
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">

layouts/shortcodes/forgejo.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@
2222
</p>
2323

2424
<div class="m-0 mt-2 flex items-center">
25-
{{ $className := "color-repo-fallback" }}
26-
{{ if .language }}
27-
{{ $className = printf "color-repo-%s" (md5 .language) }}
28-
{{ end }}
25+
{{ $language := .language | default "fallback" }}
26+
{{ $className := printf "background-color-%s" (md5 $language) }}
2927
<span
3028
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
3129
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">

layouts/shortcodes/gitea.html

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@
2222
</p>
2323

2424
<div class="m-0 mt-2 flex items-center">
25-
{{ $className := "color-repo-fallback" }}
26-
{{ if .language }}
27-
{{ $className = printf "color-repo-%s" (md5 .language) }}
28-
{{ end }}
25+
{{ $language := .language | default "fallback" }}
26+
{{ $className := printf "background-color-%s" (md5 $language) }}
2927
<span
3028
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
3129
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">

layouts/shortcodes/github.html

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,8 @@
3737
</p>
3838

3939
<div class="m-0 mt-2 flex items-center">
40-
{{ $className := "color-repo-fallback" }}
41-
{{ if .language }}
42-
{{ $className = printf "color-repo-%s" (md5 .language) }}
43-
{{ end }}
40+
{{ $language := .language | default "fallback" }}
41+
{{ $className := printf "background-color-%s" (md5 $language) }}
4442
<span
4543
class="mr-1 inline-block h-3 w-3 rounded-full {{ $className }}"></span>
4644
<div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
@@ -73,5 +71,4 @@
7371
data-repo-id="{{ $id }}"></script>
7472
</a>
7573
{{- end -}}
76-
7774
</div>

0 commit comments

Comments
 (0)