feat: servir les images via le CDN BunnyCDN

This commit is contained in:
2026-07-06 08:33:43 +04:00
parent 37121763a9
commit 58dd9297e0
7 changed files with 23 additions and 12 deletions
+8
View File
@@ -1,3 +1,5 @@
const cdn = require("./src/_data/cdn.json");
module.exports = function(eleventyConfig) {
// Locale-aware content: `t` resolves to the content bundle for the page's locale (fr by default)
eleventyConfig.addGlobalData("eleventyComputed", {
@@ -5,6 +7,12 @@ module.exports = function(eleventyConfig) {
t: (data) => data.i18n[data.locale || "fr"]
});
// Serve local images through the BunnyCDN pull zone; leaves external URLs untouched
eleventyConfig.addFilter("cdn", (path) => {
if (typeof path !== "string" || !path.startsWith("/")) return path;
return cdn.url + path;
});
// Copy assets folders to output
eleventyConfig.addPassthroughCopy("src/assets");
+3
View File
@@ -0,0 +1,3 @@
{
"url": "https://organisationka.b-cdn.net"
}
+6 -6
View File
@@ -23,7 +23,7 @@
<meta property="og:url" content="https://o-k-i.net{{ page.url or '/' }}">
<meta property="og:title" content="{% if title %}{{ title }}{% else %}{{ t.site.name }} - {{ t.site.og_tagline }}{% endif %}">
<meta property="og:description" content="{{ description or t.site.description }}">
<meta property="og:image" content="https://o-k-i.net/assets/images/logo-512x512.png">
<meta property="og:image" content="{{ '/assets/images/logo-512x512.png' | cdn }}">
<meta property="og:image:width" content="512">
<meta property="og:image:height" content="512">
<meta property="og:image:alt" content="Logo {{ t.site.name }}">
@@ -35,13 +35,13 @@
<meta name="twitter:url" content="https://o-k-i.net{{ page.url or '/' }}">
<meta name="twitter:title" content="{% if title %}{{ title }}{% else %}{{ t.site.name }} - {{ t.site.og_tagline }}{% endif %}">
<meta name="twitter:description" content="{{ description or t.site.description }}">
<meta name="twitter:image" content="https://o-k-i.net/assets/images/logo-512x512.png">
<meta name="twitter:image" content="{{ '/assets/images/logo-512x512.png' | cdn }}">
<meta name="twitter:image:alt" content="Logo {{ t.site.name }}">
<!-- Favicons -->
<link rel="icon" type="image/x-icon" href="/assets/images/favicon.ico">
<link rel="icon" type="image/png" sizes="512x512" href="/assets/images/logo-512x512.png">
<link rel="apple-touch-icon" href="/assets/images/logo-512x512.png">
<link rel="icon" type="image/x-icon" href="{{ '/assets/images/favicon.ico' | cdn }}">
<link rel="icon" type="image/png" sizes="512x512" href="{{ '/assets/images/logo-512x512.png' | cdn }}">
<link rel="apple-touch-icon" href="{{ '/assets/images/logo-512x512.png' | cdn }}">
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
@@ -59,7 +59,7 @@
"name": "{{ t.site.name }}",
"alternateName": "{{ t.site.shortName }}",
"url": "https://o-k-i.net",
"logo": "https://o-k-i.net/assets/images/logo-512x512.png",
"logo": "{{ '/assets/images/logo-512x512.png' | cdn }}",
"description": "{{ t.site.description }}",
"address": {
"@type": "PostalAddress",
+3 -3
View File
@@ -4,7 +4,7 @@
<h2>{{ t.djangokam.titre }} <span class="accent-text">{{ t.djangokam.titreAccent }}</span></h2>
<p class="section-subtitle">{{ t.djangokam.accroche }}</p>
<img src="/assets/images/djangokam-portrait.webp" alt="Portrait officiel de DJANGOKAM" class="djangokam-portrait" width="512" height="512" loading="lazy">
<img src="{{ '/assets/images/djangokam-portrait.webp' | cdn }}" alt="Portrait officiel de DJANGOKAM" class="djangokam-portrait" width="512" height="512" loading="lazy">
<blockquote class="djangokam-highlight">
{{ t.djangokam.message_cle }}
@@ -19,7 +19,7 @@
<figure class="djangokam-duo">
<a href="{{ t.djangokam.duo.url }}" target="_blank" rel="noopener noreferrer">
<img src="{{ t.djangokam.duo.image }}" alt="{{ t.djangokam.duo.alt }}" loading="lazy">
<img src="{{ t.djangokam.duo.image | cdn }}" alt="{{ t.djangokam.duo.alt }}" loading="lazy">
<figcaption>{{ t.djangokam.duo.legende }}</figcaption>
</a>
</figure>
@@ -39,7 +39,7 @@
{% for clip in t.djangokam.clips %}
<figure class="djangokam-clip">
<a href="{{ clip.url }}" target="_blank" rel="noopener noreferrer">
<img src="{{ clip.image }}" alt="{{ clip.alt }}" loading="lazy">
<img src="{{ clip.image | cdn }}" alt="{{ clip.alt }}" loading="lazy">
<figcaption>{{ clip.titre }}</figcaption>
</a>
</figure>
+1 -1
View File
@@ -1,7 +1,7 @@
<nav>
<div class="nav-container">
<a href="/" class="logo">
<img src="/assets/images/logo-512x512.png" alt="{{ t.site.shortName }} Logo" class="logo-image">
<img src="{{ '/assets/images/logo-512x512.png' | cdn }}" alt="{{ t.site.shortName }} Logo" class="logo-image">
<span>{{ t.site.shortName }}</span>
</a>
<ul class="nav-links">
+1 -1
View File
@@ -9,7 +9,7 @@
{% for partner in t.partners.items %}
<a href="{{ partner.url }}" target="_blank" rel="noopener noreferrer" class="partner-card">
<div class="partner-logo-container">
<img src="{{ partner.logo }}" alt="Logo {{ partner.name }}" class="partner-logo">
<img src="{{ partner.logo | cdn }}" alt="Logo {{ partner.name }}" class="partner-logo">
</div>
<h3>{{ partner.name }}</h3>
<p class="partner-description">{{ partner.description }}</p>
+1 -1
View File
@@ -316,7 +316,7 @@ html.light-theme .theme-icon-light {
right: -5%;
width: 55%;
height: 100%;
background: url('/assets/images/logo-512x512.png') center / contain no-repeat;
background: url('https://organisationka.b-cdn.net/assets/images/logo-512x512.png') center / contain no-repeat;
opacity: 0.05;
pointer-events: none;
}