Compare commits

...

27 Commits

Author SHA1 Message Date
Wolf Noble cb251cd9d9
Merge ea7d67c735 into bce395070c 2024-01-21 14:42:49 +11:00
James Panther bce395070c
🔀 Merge pull request #741 from wolfspyre/author-picture
♻️ Render author image with picture partial
2024-01-21 14:41:56 +11:00
James Panther 9433645cb6
🔀 Merge pull request #785 from pomeloy/fix
Fix picture partial img/source attributes
2024-01-21 14:36:51 +11:00
James Panther c282e97333
🔀 Merge pull request #730 from stereobooster/fix-bug-in-picture
fix bug in picture with params
2024-01-21 14:31:01 +11:00
James Panther 6d4cf0584b
📝 Update changelog 2024-01-21 14:29:38 +11:00
James Panther 3ce38cc6f0
🔀 Merge pull request #786 from pomeloy/features
Do not render article-meta figure if there is nothing to display
2024-01-21 14:27:23 +11:00
pomeloy 9285958da9
Do not render article-meta figure if there is nothing to display 2024-01-21 14:25:52 +11:00
James Panther c045ea2c3c
🔀 Merge pull request #790 from aminelch/dev
Added my personal blog to users section.
2024-01-21 14:10:57 +11:00
Amine LOUHICHI a754abafa8
Add https://aminelch.github.io to users section 2024-01-21 14:10:03 +11:00
James Panther f7032c7844
🔀 Merge pull request #781 from stupidjoey/dev
add stupidjoey.net
2024-01-21 14:07:57 +11:00
stupidjoey c53eaf28ef
add stupidjoey.net 2024-01-21 14:05:18 +11:00
James Panther c83eb3b698
🔀 Merge pull request #777 from jnsgruk/patch-1
Add jnsgr.uk to list of users
2024-01-21 13:55:54 +11:00
Jon Seager eb866438a9
Add jnsgr.uk to list of users 2024-01-21 13:54:15 +11:00
James Panther 4b85f9a13c
🔀 Merge pull request #769 from jamesjarvis/dev
Add jamesjarvis.io to list of users
2024-01-21 09:57:42 +11:00
James Jarvis 83d7a1422c
Add jamesjarvis.io to list of users 2024-01-21 09:53:02 +11:00
James Panther 0e8f764870
📝 Update changelog 2024-01-21 09:45:25 +11:00
James Panther 83d5984a53
🔀 Merge pull request #788 from pomeloy/fix2
Fix vertical offset when using locale switcher
2024-01-21 09:43:59 +11:00
James Panther 31fcdcf64e
🔀 Merge pull request #791 from pomeloy/revert-789-safari-fix
Revert "💄 Fix Safari status bar style"
2024-01-21 09:38:28 +11:00
pomeloy c5f342c7f6
Revert "💄 Fix Safari status bar style" 2024-01-20 08:49:12 +01:00
pomeloy 1cf7d8bdd3
Update translations.html 2024-01-19 18:30:51 +01:00
pomeloy 7d1b63b11d
Fix vertical offset when using locale switcher 2024-01-19 18:04:00 +01:00
pomeloy 9a341f1724
Fix picture partial img/source attributes
Remove duplicate src attribute from image tag.
Remove not allowed src attribute from source tag.
Add default sizes attributes to img and source tag.
Fix inconsistent srcset width.
2024-01-19 16:17:28 +01:00
Wolf Noble 8e2de6c6dc
Update author.html
remove superfluous log element
2023-12-07 20:18:51 -06:00
Wolf Noble a1a6d6f468
Update author.html
remove superfluous warning
2023-12-06 17:06:39 -06:00
Wolf Noble 92658f1b88 💄 ♻️ 🚸 render author image with picture partial 2023-12-05 15:41:43 -06:00
stereobooster f2af0198fa fix bug in picture with params 2023-11-29 14:51:44 +01:00
Wolf Noble ea7d67c735 add initial implementation of divineRGBVal 2023-11-23 14:50:48 -06:00
19 changed files with 699 additions and 44 deletions

View File

@ -34,7 +34,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Hamburger menu is not dismissed when links are clicked ([#705](https://github.com/jpanther/congo/pull/705))
- KaTeX, table and code elements wider than the page are not formatted correctly ([#753](https://github.com/jpanther/congo/pull/753))
- 'ß' character is output at the top of articles ([#764](https://github.com/jpanther/congo/pull/764))
- Status bar styling is not applied in Safari on iOS ([#789](https://github.com/jpanther/congo/pull/789))
- Article metadata element is output when there is no metadata to display ([#786](https://github.com/jpanther/congo/pull/786))
- Header elements not vertically centered when using locale switcher ([#788](https://github.com/jpanther/congo/pull/788))
### Removed

View File

@ -8,13 +8,9 @@ function getCSSValue(varName) {
function setThemeColor() {
var metaThemeColor = document.querySelector("meta[name=theme-color]");
var metaAppleMobileWebAppStatusBarStyle = document.querySelector("meta[name=apple-mobile-web-app-status-bar-style]");
document.documentElement.classList.contains("dark")
? metaThemeColor.setAttribute("content", getCSSValue("--color-neutral-800"))
: metaThemeColor.setAttribute("content", getCSSValue("--color-neutral"));
document.documentElement.classList.contains("dark")
? metaAppleMobileWebAppStatusBarStyle.setAttribute("content", getCSSValue("--color-neutral-800"))
: metaAppleMobileWebAppStatusBarStyle.setAttribute("content", getCSSValue("--color-neutral"));
return true;
}

View File

@ -7,6 +7,11 @@
colorScheme = "congo"
defaultAppearance = "light" # valid options: light or dark
[divineRGBVals]
debug = false
themeColorMap = "congo"
tailwindMap = "twcolormap"
autoSwitchAppearance = true
enableSearch = false

52
data/congo.json 100644
View File

@ -0,0 +1,52 @@
{
"themeColors": [
{ "cherry": {
"neutral": "neutral",
"primary": "rose",
"secondary": "green"
}
},
{ "congo": {
"neutral": "gray",
"primary": "violet",
"secondary": "fuchsia"
}
},
{ "fire": {
"neutral": "stone",
"primary": "orange",
"secondary": "rose"
}
},
{ "ocean": {
"neutral": "slate",
"primary": "blue",
"secondary": "cyan"
}
},
{ "sapphire": {
"neutral": "slate",
"primary": "indigo",
"secondary": "pink"
}
},
{ "avocado": {
"neutral": "stone",
"primary": "lime",
"secondary": "emerald"
}
},
{ "slate": {
"neutral": "gray",
"primary": "slate",
"secondary": "gray"
}
}
],
"colorWeights": {
"neutral": "400",
"primary": "600",
"secondary": "400"
},
"fallbackWeight": "100"
}

View File

@ -0,0 +1,310 @@
[
{
"slate": {
"50": "#f8fafc",
"100": "#f1f5f9",
"200": "#e2e8f0",
"300": "#cbd5e1",
"400": "#94a3b8",
"500": "#64748b",
"600": "#475569",
"700": "#334155",
"800": "#1e293b",
"900": "#0f172a"
}
},
{
"gray": {
"50": "#f9fafb",
"100": "#f3f4f6",
"200": "#e5e7eb",
"300": "#d1d5db",
"400": "#9ca3af",
"500": "#6b7280",
"600": "#4b5563",
"700": "#374151",
"800": "#1f2937",
"900": "#111827"
}
},
{
"zinc": {
"50": "#fafafa",
"100": "#f4f4f5",
"200": "#e4e4e7",
"300": "#d4d4d8",
"400": "#a1a1aa",
"500": "#71717a",
"600": "#52525b",
"700": "#3f3f46",
"800": "#27272a",
"900": "#18181b"
}
},
{
"neutral": {
"50": "#fafafa",
"100": "#f5f5f5",
"200": "#e5e5e5",
"300": "#d4d4d4",
"400": "#a3a3a3",
"500": "#737373",
"600": "#525252",
"700": "#404040",
"800": "#262626",
"900": "#171717"
}
},
{
"stone": {
"50": "#fafaf9",
"100": "#f5f5f4",
"200": "#e7e5e4",
"300": "#d6d3d1",
"400": "#a8a29e",
"500": "#78716c",
"600": "#57534e",
"700": "#44403c",
"800": "#292524",
"900": "#1c1917"
}
},
{
"red": {
"50": "#fef2f2",
"100": "#fee2e2",
"200": "#fecaca",
"300": "#fca5a5",
"400": "#f87171",
"500": "#ef4444",
"600": "#dc2626",
"700": "#b91c1c",
"800": "#991b1b",
"900": "#7f1d1d"
}
},
{
"orange": {
"50": "#fff7ed",
"100": "#ffedd5",
"200": "#fed7aa",
"300": "#fdba74",
"400": "#fb923c",
"500": "#f97316",
"600": "#ea580c",
"700": "#c2410c",
"800": "#9a3412",
"900": "#7c2d12"
}
},
{
"amber": {
"50": "#fffbeb",
"100": "#fef3c7",
"200": "#fde68a",
"300": "#fcd34d",
"400": "#fbbf24",
"500": "#f59e0b",
"600": "#d97706",
"700": "#b45309",
"800": "#92400e",
"900": "#78350f"
}
},
{
"yellow": {
"50": "#fefce8",
"100": "#fef9c3",
"200": "#fef08a",
"300": "#fde047",
"400": "#facc15",
"500": "#eab308",
"600": "#ca8a04",
"700": "#a16207",
"800": "#854d0e",
"900": "#713f12"
}
},
{
"lime": {
"50": "#f7fee7",
"100": "#ecfccb",
"200": "#d9f99d",
"300": "#bef264",
"400": "#a3e635",
"500": "#84cc16",
"600": "#65a30d",
"700": "#4d7c0f",
"800": "#3f6212",
"900": "#365314"
}
},
{
"green": {
"50": "#f0fdf4",
"100": "#dcfce7",
"200": "#bbf7d0",
"300": "#86efac",
"400": "#4ade80",
"500": "#22c55e",
"600": "#16a34a",
"700": "#15803d",
"800": "#166534",
"900": "#14532d"
}
},
{
"emerald": {
"50": "#ecfdf5",
"100": "#d1fae5",
"200": "#a7f3d0",
"300": "#6ee7b7",
"400": "#34d399",
"500": "#10b981",
"600": "#059669",
"700": "#047857",
"800": "#065f46",
"900": "#064e3b"
}
},
{
"teal": {
"50": "#f0fdfa",
"100": "#ccfbf1",
"200": "#99f6e4",
"300": "#5eead4",
"400": "#2dd4bf",
"500": "#14b8a6",
"600": "#0d9488",
"700": "#0f766e",
"800": "#115e59",
"900": "#134e4a"
}
},
{
"cyan": {
"50": "#ecfeff",
"100": "#cffafe",
"200": "#a5f3fc",
"300": "#67e8f9",
"400": "#22d3ee",
"500": "#06b6d4",
"600": "#0891b2",
"700": "#0e7490",
"800": "#155e75",
"900": "#164e63"
}
},
{
"sky": {
"50": "#f0f9ff",
"100": "#e0f2fe",
"200": "#bae6fd",
"300": "#7dd3fc",
"400": "#38bdf8",
"500": "#0ea5e9",
"600": "#0284c7",
"700": "#0369a1",
"800": "#075985",
"900": "#0c4a6e"
}
},
{
"blue": {
"50": "#eff6ff",
"100": "#dbeafe",
"200": "#bfdbfe",
"300": "#93c5fd",
"400": "#60a5fa",
"500": "#3b82f6",
"600": "#2563eb",
"700": "#1d4ed8",
"800": "#1e40af",
"900": "#1e3a8a"
}
},
{
"indigo": {
"50": "#eef2ff",
"100": "#e0e7ff",
"200": "#c7d2fe",
"300": "#a5b4fc",
"400": "#818cf8",
"500": "#6366f1",
"600": "#4f46e5",
"700": "#4338ca",
"800": "#3730a3",
"900": "#312e81"
}
},
{
"violet": {
"50": "#f5f3ff",
"100": "#ede9fe",
"200": "#ddd6fe",
"300": "#c4b5fd",
"400": "#a78bfa",
"500": "#8b5cf6",
"600": "#7c3aed",
"700": "#6d28d9",
"800": "#5b21b6",
"900": "#4c1d95"
}
},
{
"purple": {
"50": "#faf5ff",
"100": "#f3e8ff",
"200": "#e9d5ff",
"300": "#d8b4fe",
"400": "#c084fc",
"500": "#a855f7",
"600": "#9333ea",
"700": "#7e22ce",
"800": "#6b21a8",
"900": "#581c87"
}
},
{
"fuchsia": {
"50": "#fdf4ff",
"100": "#fae8ff",
"200": "#f5d0fe",
"300": "#f0abfc",
"400": "#e879f9",
"500": "#d946ef",
"600": "#c026d3",
"700": "#a21caf",
"800": "#86198f",
"900": "#701a75"
}
},
{
"pink": {
"50": "#fdf2f8",
"100": "#fce7f3",
"200": "#fbcfe8",
"300": "#f9a8d4",
"400": "#f472b6",
"500": "#ec4899",
"600": "#db2777",
"700": "#be185d",
"800": "#9d174d",
"900": "#831843"
}
},
{
"rose": {
"50": "#fff1f2",
"100": "#ffe4e6",
"200": "#fecdd3",
"300": "#fda4af",
"400": "#fb7185",
"500": "#f43f5e",
"600": "#e11d48",
"700": "#be123c",
"800": "#9f1239",
"900": "#881337"
}
}
]

View File

@ -66,5 +66,9 @@ La lista a continuación es solo un puñado de sitios web creados con el tema Co
| [yoganath.me](https://yoganath.me) | Personal Site and Blog |
| [josh-v.com](https://josh-v.com) | Personal Site and Tech blog |
| [rshmhrj.io](https://rshmhrj.io/) | Personal Site and Tech blog |
| [jamesjarvis.io](https://jamesjarvis.io) | Personal Site and Blog |
| [jnsgr.uk](https://jnsgr.uk) | Personal site and blog |
| [stupidjoey.net](https://stupidjoey.net) | Personal Site and Tech blog |
| [aminelch.github.io](https://aminelch.github.io) | Personal Site and Blog |
**¿Usuaria de congo?** Para agregar tu sitio a esta lista, [haz un pull request](https://github.com/jpanther/congo/blob/dev/exampleSite/content/users/index.md).

View File

@ -66,5 +66,9 @@ Congoを使用して構築された実際のウェブサイト。
| [yoganath.me](https://yoganath.me) | Personal Site and Blog |
| [josh-v.com](https://josh-v.com) | Personal Site and Tech blog |
| [rshmhrj.io](https://rshmhrj.io/) | Personal Site and Tech blog |
| [jamesjarvis.io](https://jamesjarvis.io) | Personal Site and Blog |
| [jnsgr.uk](https://jnsgr.uk) | Personal site and blog |
| [stupidjoey.net](https://stupidjoey.net) | Personal Site and Tech blog |
| [aminelch.github.io](https://aminelch.github.io) | Personal Site and Blog |
**Congoを使っていますか** あなたのウェブサイトを加えるために[Pull Request](https://github.com/jpanther/congo/blob/dev/exampleSite/content/users/index.md)を投げてください。

View File

@ -66,5 +66,9 @@ The list below is just a handful of the websites that are built using the Congo
| [yoganath.me](https://yoganath.me) | Personal Site and Blog |
| [josh-v.com](https://josh-v.com) | Personal Site and Tech blog |
| [rshmhrj.io](https://rshmhrj.io/) | Personal Site and Tech blog |
| [jamesjarvis.io](https://jamesjarvis.io) | Personal Site and Blog |
| [jnsgr.uk](https://jnsgr.uk) | Personal site and blog |
| [stupidjoey.net](https://stupidjoey.net) | Personal Site and Tech blog |
| [aminelch.github.io](https://aminelch.github.io) | Personal Site and Blog |
**Congo user?** To add your site to this list, [submit a pull request](https://github.com/jpanther/congo/blob/dev/exampleSite/content/users/index.md).

View File

@ -66,5 +66,9 @@ showEdit: false
| [yoganath.me](https://yoganath.me) | Personal Site and Blog |
| [josh-v.com](https://josh-v.com) | Personal Site and Tech blog |
| [rshmhrj.io](https://rshmhrj.io/) | Personal Site and Tech blog |
| [jamesjarvis.io](https://jamesjarvis.io) | Personal Site and Blog |
| [jnsgr.uk](https://jnsgr.uk) | Personal site and blog |
| [stupidjoey.net](https://stupidjoey.net) | Personal Site and Tech blog |
| [aminelch.github.io](https://aminelch.github.io) | Personal Site and Blog |
**想成为Congo的用户** 要将您的网站添加到此列表中,请提交[Pull Request](https://github.com/jpanther/congo/blob/dev/exampleSite/content/users/index.md)来添加。

View File

@ -20,7 +20,9 @@
<figure>
{{- with $img -}}
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "x2" $x2) }}
{{ $lazy := $.Page.Site.Params.enableImageLazyLoading | default true }}
{{ $webp := $.Page.Site.Params.enableImageWebp | default true }}
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "x2" $x2 "lazy" $lazy "webp" $webp) }}
{{- else -}}
<img src="{{ .Destination | safeURL }}" alt="{{ $altText }}" class="{{ $class }}" />
{{- end -}}

View File

@ -10,14 +10,23 @@
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">
{{ .Title | emojify }}
</h1>
{{ if or
(.Params.showDate | default (.Site.Params.article.showDate | default true))
(and (.Params.showDateUpdated | default (.Site.Params.article.showDateUpdated | default false)) (ne (partial "functions/date.html" .Date) (partial "functions/date.html" .Lastmod)))
(and (.Params.showWordCount | default (.Site.Params.article.showWordCount | default false)) (ne .WordCount 0))
(and (.Params.showReadingTime | default (.Site.Params.article.showReadingTime | default true)) (ne .ReadingTime 0))
(.Params.showEdit | default (.Site.Params.article.showEdit | default false))
}}
<div class="mb-12 mt-8 text-base text-neutral-500 print:hidden dark:text-neutral-400">
{{ partial "article-meta.html" (dict "context" . "scope" "single") }}
</div>
{{ end }}
{{ with $feature }}
<div class="prose">
{{ $altText := $.Params.featureAlt | default $.Params.coverAlt | default "" }}
{{ $class := "mb-6 -mt-4 rounded-md" }}
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "lazy" false) }}
{{ $webp := $.Page.Site.Params.enableImageWebp | default true }}
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "lazy" false "webp" $webp) }}
{{ with $.Params.coverCaption }}
<figcaption class="-mt-3 mb-6 text-center">{{ . | markdownify }}</figcaption>
{{ end }}

View File

@ -1,19 +1,12 @@
{{ if .Params.showAuthor | default (.Site.Params.article.showAuthor | default true) }}
<div class="flex">
{{ $lazy := .Params.enableImageLazyLoading|default .Site.Params.enableImageLazyLoading | default true }}
{{ $altText := ($.Site.Language.Params.Author.name | default "Author") }}
{{ with .Site.Language.Params.Author.image }}
{{ $authorImage := resources.Get . }}
{{ if $authorImage }}
{{ $authorImage := $authorImage.Fill "192x192 Center" }}
<img
class="!mb-0 !mt-0 me-4 h-24 w-24 rounded-full"
width="96"
height="96"
alt="{{ $.Site.Language.Params.Author.name | default "Author" }}"
src="{{ $authorImage.RelPermalink }}"
{{ if $.Site.Params.enableImageLazyLoading | default true }}
loading="lazy"
{{ end }}
/>
{{ $imgClass := "!mb-0 !mt-0 me-4 w-24 h-auto rounded-full" }}
{{ partial "picture.html" (dict "img" $authorImage "alt" $altText "class" $imgClass "lazy" $lazy ) }}
{{ end }}
{{ end }}
<div class="place-self-center">

View File

@ -2,7 +2,6 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="rgb(255,255,255)" />
<meta name="apple-mobile-web-app-status-bar-style" content="rgb(255,255,255)" />
{{/* Title */}}
{{ if .IsHome -}}
<title>{{ .Site.Title | emojify }}</title>

View File

@ -4,17 +4,13 @@
{{ end }} flex flex-col items-center justify-center text-center"
>
<header class="mb-3 flex flex-col items-center">
{{ $lazy := .Params.enableImageLazyLoading | default .Site.Params.enableImageLazyLoading | default true }}
{{ $altText := ($.Site.Language.Params.Author.name | default "Author") }}
{{ with .Site.Language.Params.Author.image }}
{{ $authorImage := resources.Get . }}
{{ if $authorImage }}
{{ $authorImage := $authorImage.Fill "288x288 Center" }}
<img
class="mb-2 h-36 w-36 rounded-full"
width="144"
height="144"
alt="{{ $.Site.Language.Params.Author.name | default "Author" }}"
src="{{ $authorImage.RelPermalink }}"
/>
{{ $imgClass := "mb-2 h-auto w-36 rounded-full" }}
{{ partial "picture.html" (dict "img" $authorImage "alt" $altText "class" $imgClass "lazy" $lazy) }}
{{ end }}
{{ end }}
<h1 class="text-4xl font-extrabold">

View File

@ -1,8 +1,8 @@
{{ $img := .img }}
{{ $alt := .alt }}
{{ $class := .class }}
{{ $lazy := .lazy | default $.Page.Site.Params.enableImageLazyLoading | default true }}
{{ $webp := .webp | default $.Page.Site.Params.enableImageWebp | default true }}
{{ $lazy := .lazy }}
{{ $webp := .webp }}
{{ $lqip := .lqip | default false }}
{{ $x2 := .x2 | default false }}
@ -57,7 +57,7 @@
<source
{{ if lt .Width 660 }}
{{ with .Resize (printf "%dx%d webp" .Width .Height) }}
src="{{ .RelPermalink }}"
srcset="{{ .RelPermalink }}"
{{ end }}
{{ else }}
srcset=" {{- (.Resize "330x webp").RelPermalink }} 330w,
@ -70,19 +70,18 @@
{{ end }}
{{ end }}
{{ if gt .Width 1320 }}
,{{ (.Resize "1320x webp").RelPermalink }} 2x
,{{ (.Resize "1320x webp").RelPermalink }} 1320w
{{ else }}
{{ with .Resize (printf "%dx%d webp" .Width .Height) }}
,{{ .RelPermalink }} {{ .Width }}w
{{ end }}
{{ end }}"
src="{{ (.Resize "660x webp").RelPermalink }}"
{{ end }}
sizes="100vw"
type="image/webp"
/>
{{ end }}
<img
src="{{ .RelPermalink }}"
width="{{ $width }}"
height="{{ $height }}"
{{ with $class }}class="{{ . }}"{{ end }}
@ -91,20 +90,20 @@
{{ if lt .Width 660 }}
src="{{ .RelPermalink }}"
{{ else }}
src="{{ (.Resize "660x").RelPermalink }}"
srcset=" {{- (.Resize "330x").RelPermalink }} 330w,
{{- (.Resize "660x").RelPermalink }}
660w
{{- (.Resize "660x").RelPermalink }} 660w
{{ if gt .Width 1024 }}
,{{ (.Resize "1024x").RelPermalink }} 1024w
{{ else }}
,{{ .RelPermalink }} {{ .Width }}w
{{ end }}
{{ if gt .Width 1320 }}
,{{ (.Resize "1320x").RelPermalink }} 2x
,{{ (.Resize "1320x").RelPermalink }} 1320w
{{ else }}
,{{ .RelPermalink }} {{ .Width }}w
{{ end }}"
src="{{ (.Resize "660x").RelPermalink }}"
sizes="100vw"
{{ end }}
/>
</picture>

View File

@ -20,10 +20,10 @@
>
</button>
{{ if eq $dir "down" }}
<div class="invisible h-2 w-full bg-transparent group-hover:visible"></div>
<div class="invisible w-full bg-transparent group-hover:visible"></div>
{{ end }}
<div
class="{{ cond (eq $dir "down") "top-8" "bottom-7" }} invisible absolute z-50 flex flex-col whitespace-nowrap rounded border border-neutral-300 bg-neutral text-start text-base shadow group-hover:visible ltr:right-0 rtl:left-0 dark:border-neutral-600 dark:bg-neutral-800"
class="{{ if not (eq $dir "down") }} bottom-7 {{ end }} invisible absolute z-50 flex flex-col whitespace-nowrap rounded border border-neutral-300 bg-neutral text-start text-base shadow group-hover:visible ltr:right-0 rtl:left-0 dark:border-neutral-600 dark:bg-neutral-800"
>
{{ $siteLanguages := site.Languages }}
{{ $pageLang := .Page.Lang }}

View File

@ -0,0 +1,273 @@
{{- /* util/divineRGBVal consume a tailwind color name and weight, return RGB val in hex format. */ -}}
{{- $rgbItchy := newScratch -}}
{{- $themeColors := newScratch -}}
{{- $debug := (site.Params.divineRGBVals.debug|default false) -}}
{{- $rgbItchy.Set "logPrefix" "[util/divineRGBVal.html] " -}}
{{- $rgbItchy.Set "debugPrefix" (print "[DEBUG]" ( $rgbItchy.Get "logPrefix" )) -}}
{{- if $debug -}}
{{- warnf "%s Debug enabled" ( $rgbItchy.Get "debugPrefix") -}}
{{- end -}}
{{- $rgbItchy.Set "needThemeLookup" false -}}
{{- $rgbItchy.Set "twLookupSource" (site.Params.divineRGBVals.tailwindMap |default nil ) -}}
{{- $rgbItchy.Set "returnVal" "#000000" -}}
{{- $rgbItchy.Set "themeSource" (site.Params.divineRGBVals.themeColorMap|default "site.Data.congo") -}}
{{- $rgbItchy.Set "twLookupSource" (site.Params.divineRGBVals.tailwindMap |default nil ) -}}
{{- $rgbItchy.Set "schemeColors" nil -}}
{{- $rgbItchy.Set "primary" (site.Params.divineRGBVals.primary |default nil) -}}
{{- $rgbItchy.Set "secondary" (site.Params.divineRGBVals.secondary |default nil) -}}
{{- $rgbItchy.Set "neutral" (site.Params.divineRGBVals.neutral |default nil) -}}
{{- $colorSchemeName := $rgbItchy.Get "scheme" -}}
{{- $ctx := .context -}}
{{- $color := (.color|default nil) -}}
{{- $shade := (.shade|default nil) -}}
{{- $scheme := (.scheme |default nil ) -}}
{{- $return := (.return |default "RGB" ) -}}
{{- $validReturns := slice "RGB" "TWColor" "TWColorShade" -}}
{{- if in $validReturns $return -}}
{{- if and $debug (ne $return "RGB") -}}
{{- warnf "%s ---- Return set to: %s " ( $rgbItchy.Get "debugPrefix") (string $return) -}}
{{- end -}}
{{- $rgbItchy.Set "return" $return -}}
{{- else -}}
{{- warnf "%s xxxx Unsupported value of %s set for return. Setting to 'RGB' instead." ($rgbItchy.Get "logPrefix") $return -}}
{{- $rgbItchy.Set "return" "RGB" -}}
{{- end -}}
{{- if $scheme -}}
{{- $rgbItchy.Set "scheme" $scheme -}}
{{- if ne $scheme ( site.Params.colorScheme ) -}}
{{- $rgbItchy.Set "needThemeLookup" true -}}
{{- if $debug -}}
{{- warnf "%s ..-. Requested colorScheme '%s' differs from scheme '%s' read from site.Params.colorScheme. Lookup will be necessary." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "scheme") (site.Params.colorScheme) -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- $rgbItchy.Set "scheme" ( site.Params.colorScheme ) -}}
{{- if $debug -}}
{{- warnf "%s ..-. Theme colorScheme not provided on invocation. Read '%s' from site.Params.colorScheme." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "scheme") -}}
{{- end -}}
{{- end -}}
{{- if $shade -}}
{{- if $debug -}}
{{- warnf "%s .+.. Shade given: %s " ( $rgbItchy.Get "debugPrefix") (string $shade) -}}
{{- end -}}
{{- if (strings.HasSuffix $shade "0") -}}
{{- $rgbItchy.Set "shade" (string $shade) -}}
{{- if $debug -}}
{{- warnf "%s .-.. Shade ends with 0 : %s " ($rgbItchy.Get "debugPrefix") ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if $color -}}
{{- if $debug -}}
{{- warnf "%s +... Color given: %s " ( $rgbItchy.Get "debugPrefix") $color -}}
{{- end -}}
{{- if and ( strings.Contains $color "-" ) (strings.HasSuffix $color "0") -}}
{{- if $debug -}}
{{- warnf "%s -... Color %s seems to be a tailwind-style (color)-(shade)" ( $rgbItchy.Get "debugPrefix") $color -}}
{{- end -}}
{{- /* TODO: There has to be a better way to achieve this ????? */ -}}
{{- $c := strings.Split $color "-" -}}
{{- $col := delimit (first 1 $c) "" -}}
{{- $shd := delimit ( last 1 $c) "" -}}
{{- if $debug -}}
{{- warnf "%s --.. Color/Shade: %s %s " ( $rgbItchy.Get "debugPrefix") $col $shd -}}
{{- end -}}
{{- if and ($shade) (ne $shd (string $shade)) -}}
{{- warnf "%s --.. We were fed a tailwind-style color-shade ( %s ) and a shade (%s). %s and %s are not the same value. Please provide one or the other. " ( $rgbItchy.Get "logPrefix") $color (string $shade) $shd (string $shade) -}}
{{- else -}}
{{- $rgbItchy.Set "color" $col -}}
{{- $rgbItchy.Set "shade" $shd -}}
{{- if $debug -}}
{{- warnf "%s ++.. Set Scratch vars Color: %s Shade: %s " ( $rgbItchy.Get "debugPrefix") ( $rgbItchy.Get "color") ( $rgbItchy.Get "shade") -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- if $debug -}}
{{- warnf "%s --.. Color '%s' doesn't seem to be a tailwind-style (color)-(shade) combo. " ( $rgbItchy.Get "debugPrefix") $color -}}
{{- end -}}
{{- $rgbItchy.Set "color" $color -}}
{{- end -}}
{{- if in ( slice "primary" "secondary" "neutral") ($rgbItchy.Get "color") -}}
{{- if $debug -}}
{{- warnf "%s -.-. Color '%s' references a theme-abstracted value. Further divination required" ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "color") -}}
{{- end -}}
{{- $rgbItchy.Set "needThemeLookup" true -}}
{{- if not ($rgbItchy.Get "shade") -}}
{{- $rgbItchy.Set "shade" ($rgbItchy.Get "color") -}}
{{- if $debug -}}
{{- warnf "%s .--. Desired Shade unknown. Will lookup theme-value default for %s" ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "color") -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if ($rgbItchy.Get "shade") -}}
{{- if $debug -}}
{{- warnf "%s .+.. Desired Shade: %s" ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- else -}}
{{- $rgbItchy.Set "needThemeLookup" true -}}
{{- $rgbItchy.Set "shade" ($rgbItchy.Get "color") -}}
{{- if $debug -}}
{{- warnf "%s .--. Desired Shade unknown. Will lookup default for %s" ( $rgbItchy.Get "logPrefix") ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- end -}}
{{- /*
At this point, we should know if
- we need to lookup theme-specific colormap
- we need to lookup default shades
*/ -}}
{{- if ($rgbItchy.Get "needThemeLookup") -}}
{{- /* We need to lookup theme-specific information to return the requested color */ -}}
{{- if not (strings.HasSuffix ($rgbItchy.Get "shade") "0") -}}
{{- if $debug -}}
{{- warnf "%s .--? Shade not provided on invocation. Determining fallback value for '%s'." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- with $themeData := (index site.Data ($rgbItchy.Get "themeSource")) -}}
{{- range $wK, $wV := $themeData.colorWeights -}}
{{- if $debug -}}
{{- warnf "%s .--. Iterating default weights: %s %s" ( $rgbItchy.Get "debugPrefix") $wK ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- if eq $wK ($rgbItchy.Get "shade") -}}
{{- $rgbItchy.Set "shade" $wV -}}
{{- if $debug -}}
{{- warnf "%s .+-. Found weight for K:%s. Set shade to:%s" ( $rgbItchy.Get "debugPrefix") $wK ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- if not (strings.HasSuffix ($rgbItchy.Get "shade") "0") -}}
{{- if $debug -}}
{{- warnf "%s +--. Default shade for %s not found. Fetching fallback value." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- $rgbItchy.Set "shade" $themeData.fallbackWeight -}}
{{- warnf "%s .+-. Shade value set to fallback: %s." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- /* shade should be set no matter what now. */ -}}
{{- else -}}
{{- errorf "%s xxx. Theme DataFile %s not accessible, and color shade not provided. Sorry Charlie." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "themeSource") -}}
{{- end -}}
{{- end -}}
{{- if and (eq ($rgbItchy.Get "primary") nil) (eq ($rgbItchy.Get "secondary") nil) (eq ($rgbItchy.Get "neutral") nil) -}}
{{- /* we need to find the Tailwind colors for our theme. */ -}}
{{- if $debug -}}
{{- warnf "%s -.-? %s Scheme Color names unknown. Shortcut this by setting Site params.divineRGBVals.(primary,secondary,neutral) to the values discerned from divination." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "scheme") -}}
{{- end -}}
{{- with $themeData := (index site.Data ($rgbItchy.Get "themeSource")) -}}
{{- if $debug -}}
{{- warnf "%s ..-? Theme Datafile %s Accessible " ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "themeSource") -}}
{{- end -}}
{{- range $tK, $tV := $themeData.themeColors -}}
{{- if and (reflect.IsMap $tV) (eq ($rgbItchy.Get "primary") nil) (eq ($rgbItchy.Get "secondary") nil) (eq ($rgbItchy.Get "neutral") nil) -}}
{{- if $debug -}}
{{- warnf "%s -.-? Iterating themeData: K:%d V:%s " ( $rgbItchy.Get "debugPrefix") $tK $tV -}}
{{- end -}}
{{- range $label, $blob := $tV -}}
{{- if $debug -}}
{{- warnf "%s ..-? Evaluating Scheme %d Name:%s " ( $rgbItchy.Get "debugPrefix") $tK $label -}}
{{- end -}}
{{- if eq $label ($rgbItchy.Get "scheme") -}}
{{- /* we got a match. assign the match to an element in our scratch object */ -}}
{{- $rgbItchy.Set "schemeColors" $blob -}}
{{- if $debug -}}
{{- warnf "%s ..*? Matched Scheme %s! P: %s, S: %s N: %s " ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "scheme") ($rgbItchy.Get "schemeColors").primary ($rgbItchy.Get "schemeColors").secondary ($rgbItchy.Get "schemeColors").neutral }}
{{- end -}}
{{- range $colorRole, $colorName := $blob -}}
{{- $rgbItchy.Set $colorRole $colorName -}}
{{- if not ($themeColors.Get $colorRole) -}}
{{- $themeColors.Set $colorRole $colorName -}}
{{- end -}}
{{- if $debug -}}
{{- warnf "%s +.+? Setting the value of scratch object $rgbItchy.%s. Reading it Back to verify: %s" ( $rgbItchy.Get "debugPrefix") $colorRole ($rgbItchy.Get $colorRole) -}}
{{- end -}}
{{- end -}}
{{- break -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- break -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- /* We don't have the lookup file for the theme's colors. */ -}}
{{- errorf "%s ..x. Theme DataFile %s not accessible, but required to proceed. Sorry.." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "themeSource") -}}
{{- end -}}
{{- else -}}
{{- if $debug -}}
{{- range $colorRole := slice "primary" "secondary" "neutral" -}}
{{- warnf "%s +... %s color set in params as %s" ( $rgbItchy.Get "debugPrefix") $colorRole ($rgbItchy.Get $colorRole) -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- /* we have the Tailwind colors for the requested scheme. */ -}}
{{- range $colorRole := slice "primary" "secondary" "neutral" -}}
{{- if eq $colorRole ( $rgbItchy.Get "color") -}}
{{- $rgbItchy.Set "color" ($rgbItchy.Get $colorRole) -}}
{{- if $debug -}}
{{- warnf "%s +.+? Color %s disambiguated to %s" ( $rgbItchy.Get "debugPrefix") $colorRole ($rgbItchy.Get $colorRole) -}}
{{- end -}}
{{- if or (eq ($rgbItchy.Get "return") "TWColor") (eq ($rgbItchy.Get "return") "TWColorShade" ) -}}
{{- if $debug -}}
{{- warnf "%s +..+ Returning the Tailwind Color Name for %s %s requested: %s " ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "scheme") $colorRole ($rgbItchy.Get "color") -}}
{{- end -}}
{{- if eq ($rgbItchy.Get "return") "TWColor" -}}
{{- $rgbItchy.Set "returnVal" (printf "%s" ($rgbItchy.Get "color") ) -}}
{{- if $debug -}}
{{- warnf "%s *.** returnVal set to color: %s " ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "returnVal") -}}
{{- end -}}
{{- else if eq ($rgbItchy.Get "return") "TWColorShade" -}}
{{- $rgbItchy.Set "returnVal" (printf "%s-%s" ($rgbItchy.Get "color") ($rgbItchy.Get "shade") ) -}}
{{- if $debug -}}
{{- warnf "%s **** returnVal set to color-shade: %s " ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "returnVal") -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- else if $debug -}}
{{- warnf "%s +.+? Role %s is %s" ( $rgbItchy.Get "debugPrefix") $colorRole ($rgbItchy.Get $colorRole) -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- /* the lookup in question doesn't need theme-scoped data. just tailwind. */ -}}
{{- end -}}
{{- if eq ( $rgbItchy.Get "return") "RGB" -}}
{{- with $tailwind := (index site.Data ($rgbItchy.Get "twLookupSource")) -}}{{- /* We have the map of tailwind colors to RGB Vals. */ -}}
{{- if $debug -}}
{{- warnf "%s ...- Tailwind ColorMap Datafile %s Accessible" ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "twLookupSource") -}}
{{- end -}}
{{- $col := default nil -}}
{{- $shd := default nil -}}
{{- $val := default nil -}}
{{- range $tK, $tV := $tailwind -}}
{{- if not $col -}}
{{- range $cName, $cVals := $tV }}
{{- if $debug -}}
{{- warnf "%s *..- Evaluating Tailwind Mapdata %d:%s %s " ( $rgbItchy.Get "debugPrefix") $tK $cName ($rgbItchy.Get "color") -}}
{{- end -}}
{{- if eq $cName ($rgbItchy.Get "color") -}}
{{- if $debug -}}
{{- warnf "%s **.+ Found color %s %s" ( $rgbItchy.Get "debugPrefix") $tK ($rgbItchy.Get "color") -}}
{{- end -}}
{{- $col = $cVals -}}
{{- range $sNum, $sVal := $cVals }}
{{- if $debug -}}
{{- warnf "%s **.- Evaluating %d:%s Shades :%s %s " ( $rgbItchy.Get "debugPrefix") $tK $cName $sNum ($rgbItchy.Get "shade") -}}
{{- end -}}
{{- if eq $sNum ($rgbItchy.Get "shade") -}}
{{- if $debug -}}
{{- warnf "%s **.+ Found %s:%d RGBVal: %s" ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "color") $sNum $sVal -}}
{{- end -}}
{{- $rgbItchy.Set "returnVal" $sVal -}}
{{- if $debug -}}
{{- warnf "%s **** ReturnVal set %s" ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "returnVal") -}}
{{- end -}}
{{- /* return ( $rgbItchy.Get "returnVal" ) */ -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- else -}}
{{- /* We don't have the map of tailwind colors to RGB Vals. */ -}}
{{- errorf "%s ...x Tailwind ColorMap Datafile %s not accessible." ( $rgbItchy.Get "debugPrefix") ($rgbItchy.Get "twLookupSource") -}}
{{- end -}}
{{- end -}}
{{- return ( $rgbItchy.Get "returnVal" ) -}}

View File

@ -19,7 +19,9 @@
{{ with $href }}<a href="{{ . }}">{{ end }}
{{- with $img -}}
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class) }}
{{ $lazy := $.Page.Site.Params.enableImageLazyLoading | default true }}
{{ $webp := $.Page.Site.Params.enableImageWebp | default true }}
{{ partial "picture.html" (dict "img" . "alt" $altText "class" $class "lazy" $lazy "webp" $webp) }}
{{- else -}}
<img src="{{ $url.String }}" alt="{{ $altText }}" class="{{ $class }}"/>
{{- end -}}

View File

@ -13,7 +13,9 @@
{{ $altText = (.Get "caption") | markdownify | plainify }}
{{ end }}
{{ partial "picture.html" (dict "img" $image "alt" $altText "x2" true) }}
{{ $lazy := $.Page.Site.Params.enableImageLazyLoading | default true }}
{{ $webp := $.Page.Site.Params.enableImageWebp | default true }}
{{ partial "picture.html" (dict "img" $image "alt" $altText "x2" true "lazy" $lazy "webp" $webp) }}
{{- if .Get "href" }}</a>{{ end -}}
{{- if .Get "caption" -}}