From b3cbee17f86aa1e2d2025101eed185a2c45e7364 Mon Sep 17 00:00:00 2001 From: Richard Dern Date: Sat, 1 Nov 2025 16:33:54 +0100 Subject: [PATCH] Stylisation des liens morts --- themes/42/assets/css/a.css | 8 +++++ themes/42/layouts/_markup/render-link.html | 35 +++++++++++++++++-- .../assets/css/variables/aesthetics.css | 2 ++ 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/themes/42/assets/css/a.css b/themes/42/assets/css/a.css index c378122d..54ee3565 100644 --- a/themes/42/assets/css/a.css +++ b/themes/42/assets/css/a.css @@ -12,4 +12,12 @@ &:hover { color: var(--color-link-affiliated-hover); } +} + +.dead { + color: var(--color-link-dead); + + &:hover { + color: var(--color-link-dead-hover); + } } \ No newline at end of file diff --git a/themes/42/layouts/_markup/render-link.html b/themes/42/layouts/_markup/render-link.html index f79597e3..6f01de92 100644 --- a/themes/42/layouts/_markup/render-link.html +++ b/themes/42/layouts/_markup/render-link.html @@ -3,8 +3,26 @@ {{- $host := $parsed.Host -}} {{- $path := $parsed.Path -}} {{- $query := $parsed.RawQuery -}} -{{- $aff := index site.Data.affiliates.sites $host -}} +{{- $page := .Page -}} +{{- $site := $page.Site -}} +{{- $aff := index $site.Data.affiliates.sites $host -}} {{- $isAffiliated := false -}} +{{- $scratch := $page.Scratch -}} +{{- $externalCache := $scratch.Get "externalLinksCache" -}} +{{- if not $externalCache -}} + {{- $externalCache = dict -}} + {{- if fileExists "tools/cache/external_links.yaml" -}} + {{- with readFile "tools/cache/external_links.yaml" -}} + {{- $parsedCache := transform.Unmarshal . -}} + {{- if $parsedCache -}} + {{- $externalCache = $parsedCache -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- $scratch.Set "externalLinksCache" $externalCache -}} +{{- end -}} +{{- $cacheEntry := index $externalCache .Destination -}} +{{- $isDeadLink := and $cacheEntry (eq (index $cacheEntry "manually_killed") true) -}} {{- $newURL := .Destination -}} {{- if and $isExternal $aff -}} {{- $param := $aff.param -}} @@ -22,7 +40,18 @@ {{- else if $isExternal -}} {{- $titlePrefix = "Lien externe" -}} {{- end -}} +{{- $classes := slice -}} +{{- if $isExternal -}} + {{- $classes = $classes | append "external" -}} + {{- if $isAffiliated -}} + {{- $classes = $classes | append "affiliated" -}} + {{- end -}} +{{- end -}} +{{- if $isDeadLink -}} + {{- $classes = $classes | append "dead" -}} +{{- end -}} + {{- if $isExternal -}} rel="noreferrer"{{- end -}} + {{- if gt (len $classes) 0 -}} class="{{ delimit $classes " " }}"{{- end -}}> {{- .Text | safeHTML -}} - \ No newline at end of file + diff --git a/themes/default/assets/css/variables/aesthetics.css b/themes/default/assets/css/variables/aesthetics.css index 234db3c4..04180413 100644 --- a/themes/default/assets/css/variables/aesthetics.css +++ b/themes/default/assets/css/variables/aesthetics.css @@ -21,6 +21,8 @@ --color-link-external-hover: var(--green-300); --color-link-affiliated: var(--pink-500); --color-link-affiliated-hover: var(--pink-300); + --color-link-dead: var(--red-500); + --color-link-dead-hover: var(--red-300); /* Border tokens */ --border-outer-color: var(--gray-800);