feat: impact-media page type with OG scraping and cache
All checks were successful
Deploy / Deploy to Production (push) Successful in 12s

- Add impact-media blueprint (entries field + linked investigation)
- Add minimal impact-media template
- Refactor card-open-graph snippet: accepts $url param, Kirby cache (6h TTL), decode HTML entities, empty alt on images
- Update impacts.yml to allow impact-media pages
- Render impact-media in investigation aside with dynamic count + details/summary
- Add OG cache config in config.php
- CSS formatting fixes (body, card-block-small, category)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-02-27 17:31:00 +01:00
parent b8352c81fa
commit f757906584
11 changed files with 505 additions and 452 deletions

View file

@ -138,8 +138,11 @@ img {
cursor: pointer;
}
.swiper-button-next, .swiper-button-prev,
body, #site-header, #site-footer {
.swiper-button-next,
.swiper-button-prev,
body,
#site-header,
#site-footer {
transition: background-color 0.3s ease, color 0.3s ease;
}
@ -741,6 +744,8 @@ button:disabled {
.type {
height: calc(var(--h-block) * 0.75);
border-radius: var(--radius-small);
width: -moz-max-content;
width: max-content;
display: inline-flex;
align-items: center;
justify-content: center;
@ -1951,13 +1956,13 @@ figcaption,
top: -1px;
left: 0;
}
.card--package:hover,
.card--article-small:hover {
.card--package:not([data-impact-type=media]):hover,
.card--article-small:not([data-impact-type=media]):hover {
background-color: var(--grey-950);
border-color: var(--color-txt);
}
.card--package:hover::before,
.card--article-small:hover::before {
.card--package:not([data-impact-type=media]):hover::before,
.card--article-small:not([data-impact-type=media]):hover::before {
border-color: var(--color-txt);
}
@media screen and (max-width: 1080px) {
@ -2025,11 +2030,11 @@ figcaption,
top: -1px;
left: 0;
}
.card--block:hover {
.card--block:not([data-impact-type=media]):hover {
background-color: var(--grey-950);
border-color: var(--color-txt);
}
.card--block:hover::before {
.card--block:not([data-impact-type=media]):hover::before {
border-color: var(--color-txt);
}
.card--block > figure {
@ -2156,11 +2161,11 @@ figcaption,
top: -1px;
left: 0;
}
.card--block-small:hover {
.card--block-small:not([data-impact-type=media]):hover {
background-color: var(--grey-950);
border-color: var(--color-txt);
}
.card--block-small:hover::before {
.card--block-small:not([data-impact-type=media]):hover::before {
border-color: var(--color-txt);
}
.card--block-small .group-top {
@ -2235,7 +2240,7 @@ figcaption,
margin-right: 1ch;
}
.card--block-small .date {
margin-top: 0px;
margin-top: 0px;
}
}
@ -2243,6 +2248,9 @@ figcaption,
grid-column: 2;
z-index: 10;
}
.card--block-small .card--open-graph:not(:last-child) {
margin-bottom: 1rem;
}
.card--block-small .open-graph__details {
grid-column: 2;
}