1

Sécuriser et documenter les liens morts

Rend les liens supprimés non cliquables, améliore le rapport des liens morts et accélère la génération du site.

Closes #2
Closes #3
Closes #4
This commit is contained in:
2026-04-02 22:23:16 +02:00
parent 0e4e8cd076
commit fe8037bb73
40 changed files with 423 additions and 112 deletions

View File

@@ -122,6 +122,28 @@ a.link-external:not(.link-affiliated):is(:hover, :focus-visible) {
color: var(--color-link-external-hover);
}
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) a.link-archive:not(.ui-button) {
color: var(--color-link-archive);
}
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) a.link-archive:not(.ui-button):is(:hover, :focus-visible) {
color: var(--color-link-archive-hover);
}
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) a.link-archive:not(.ui-button)::after {
content: "";
display: inline-block;
width: 0.9em;
height: 0.9em;
margin-left: 0.22em;
vertical-align: -0.08em;
background-color: currentColor;
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9h18v2h-1v8h2v2H2v-2h2v-8H3V9zm3 2v8h2v-8H6zm5 0v8h2v-8h-2zm5 0v8h2v-8h-2zM12 2l10 5v1H2V7l10-5zm0 2.2L7.2 6h9.6L12 4.2z' fill='%23000'/%3E%3C/svg%3E");
mask-repeat: no-repeat;
mask-position: center;
mask-size: contain;
}
a.link-affiliated {
color: var(--color-link-affiliated);
}
@@ -130,7 +152,8 @@ a.link-affiliated:is(:hover, :focus-visible) {
color: var(--color-link-affiliated-hover);
}
a.link-dead {
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) :is(a, span).link-dead:not(.ui-button),
body:has(> main.listing-page) > main.listing-page table span.link-dead {
text-decoration-line: underline;
text-decoration-style: wavy;
text-decoration-thickness: 1px;
@@ -138,23 +161,49 @@ a.link-dead {
text-underline-offset: 0.2em;
}
a.link-dead:is(:hover, :focus-visible) {
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) :is(a, span).link-dead:not(.ui-button):is(:hover, :focus-visible),
body:has(> main.listing-page) > main.listing-page table span.link-dead:is(:hover, :focus-visible) {
text-decoration-line: underline;
text-decoration-style: wavy;
text-decoration-thickness: 2px;
text-decoration-color: currentColor;
}
a.link-dead.link-dead-404 {
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) :is(a, span).link-dead.link-dead-404:not(.ui-button),
body:has(> main.listing-page) > main.listing-page table span.link-dead.link-dead-404 {
color: var(--color-link-dead-404);
text-decoration-color: color-mix(in srgb, var(--color-link-dead-404) 78%, transparent);
}
a.link-dead.link-dead-404:is(:hover, :focus-visible) {
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) :is(a, span).link-dead.link-dead-404:not(.ui-button):is(:hover, :focus-visible),
body:has(> main.listing-page) > main.listing-page table span.link-dead.link-dead-404:is(:hover, :focus-visible) {
color: var(--color-link-dead-404-hover);
text-decoration-color: currentColor;
}
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) del.link-dead.link-dead-marked,
body:has(> main.listing-page) > main.listing-page table del.link-dead.link-dead-marked {
color: var(--color-link-dead-marked);
text-decoration-color: color-mix(in srgb, var(--color-link-dead-marked) 82%, transparent);
}
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) del.link-dead.link-dead-marked > span.link-dead.link-dead-marked:not(.ui-button),
body:has(> main.listing-page) > main.listing-page table del.link-dead.link-dead-marked > span.link-dead.link-dead-marked {
color: inherit;
text-decoration-line: underline;
text-decoration-style: solid;
text-decoration-thickness: 1px;
text-decoration-color: inherit;
text-underline-offset: 0.2em;
cursor: help;
}
body:has(> header.article-header) > main > article > :not(footer):not(section.article-asides) del.link-dead.link-dead-marked > span.link-dead.link-dead-marked:not(.ui-button):is(:hover, :focus-visible),
body:has(> main.listing-page) > main.listing-page table del.link-dead.link-dead-marked > span.link-dead.link-dead-marked:is(:hover, :focus-visible) {
color: var(--color-link-dead-marked-hover);
text-decoration-color: currentColor;
}
img,
video,
audio,