alpinux-www/site/modifications.html
Cédrix 256695b58d Cesser de télécharger 175 ko de logo pour en afficher 90 pixels
L'en-tête chargeait alpinux-logo.png — 1024×1024, 175 ko — pour une
image affichée en 90 px sur l'accueil et 66 px ailleurs. Le navigateur
téléchargeait donc dix fois le poids de la page elle-même, rien que pour
la réduire. alpinux-logo-180.png, déposé à côté sur static, fait 23 ko et
couvre les écrans à haute densité.

Les deux domaines tiers de la page — static et le wiki — gagnent au
passage un preconnect : la poignée de main TLS commence pendant que le
HTML se lit, au lieu d'attendre la première image.

Retire aussi Gitea du menu, comme le wiki et les mises à jour avant lui :
le service garde sa carte plus bas.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYfYUZRcJmmEWJwAxZb4o2
2026-09-23 14:06:00 +02:00

355 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Toutes les pages du wiki d'Alpinux, de la plus récemment mise à jour à la plus ancienne.">
<meta name="robots" content="index, follow">
<title>Les mises à jour du wiki — Alpinux</title>
<link rel="canonical" href="https://alpinux.org/modifications.html">
<link rel="preconnect" href="https://static.alpinux.org" crossorigin>
<link rel="preconnect" href="https://wiki.alpinux.org" crossorigin>
<link rel="icon" type="image/x-icon" href="https://static.alpinux.org/logo/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="https://static.alpinux.org/logo/favicon-32.png">
<link rel="apple-touch-icon" sizes="192x192" href="https://static.alpinux.org/logo/favicon-192.png">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Alpinux">
<meta property="og:title" content="Les mises à jour du wiki — Alpinux">
<meta property="og:description" content="Toutes les pages du wiki d'Alpinux, de la plus récemment mise à jour à la plus ancienne.">
<meta property="og:url" content="https://alpinux.org/modifications.html">
<meta property="og:image" content="https://static.alpinux.org/logo/alpinux-logo-512.png">
<meta property="og:locale" content="fr_FR">
<link rel="stylesheet" href="/commun.css">
<style>
.barre {
display: flex;
align-items: center;
gap: 1rem;
flex-wrap: wrap;
margin: 1.8rem 0 1.2rem;
}
.barre input {
flex: 1 1 260px;
font: inherit;
font-size: .95rem;
padding: .6rem .9rem;
border: 2px solid #dce8f5;
border-radius: 8px;
background: #fff;
color: inherit;
min-width: 0;
}
.barre input:focus {
outline: none;
border-color: #1a6bbf;
}
.compte {
font-size: .85rem;
color: #7a8ba0;
white-space: nowrap;
}
.mois {
font-size: .78rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
color: #0f4e8f;
background: #e8f1fb;
border-radius: 4px;
padding: .3rem .6rem;
display: inline-block;
margin: 1.8rem 0 .8rem;
}
.pages { list-style: none; }
.page-ligne {
display: grid;
grid-template-columns: 5.5rem 1fr;
gap: 1rem;
align-items: baseline;
background: #fff;
border-radius: 10px;
border-left: 4px solid #9fc5e8;
box-shadow: 0 2px 10px rgba(26,107,191,.08);
padding: .85rem 1.1rem;
margin-bottom: .6rem;
text-decoration: none;
color: inherit;
transition: transform .15s, box-shadow .15s;
}
.page-ligne:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(26,107,191,.18);
}
.page-ligne:hover .page-titre { color: #1a6bbf; }
.page-date {
font-size: .8rem;
font-weight: 700;
color: #7a8ba0;
letter-spacing: .04em;
text-transform: uppercase;
white-space: nowrap;
}
.page-titre {
display: block;
font-size: 1rem;
font-weight: 600;
line-height: 1.35;
}
.page-rubrique {
display: block;
font-size: .8rem;
color: #7a8ba0;
margin-top: .15rem;
}
.badge {
background: #f5a623;
color: #fff;
font-size: .66rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .06em;
padding: .1rem .45rem;
border-radius: 3px;
margin-left: .5rem;
vertical-align: .1em;
}
.etat {
background: #fff;
border-radius: 10px;
box-shadow: 0 2px 10px rgba(26,107,191,.08);
padding:1.4rem;
font-size: .95rem;
color: #4a5a6a;
line-height: 1.6;
}
.etat a { color: #1a6bbf; }
.genere {
margin-top: 2rem;
font-size: .8rem;
color: #93a2b3;
}
@media (max-width: 560px) {
.page-ligne { grid-template-columns: 1fr; gap: .25rem; }
}
</style>
</head>
<body>
<header>
<a href="/" class="logo-wrap">
<img src="https://static.alpinux.org/logo/alpinux-logo-180.png"
alt="Logo Alpinux — LUG de Savoie"
class="logo-img" width="66" height="66">
<span class="logo-text">
<span class="brand">
<span class="light">A</span><span class="bold">l</span><span class="light">p</span><span class="bold">inux</span>
</span>
<span class="tagline">le LUG de Savoie</span>
</span>
</a>
</header>
<nav aria-label="Navigation principale">
<a href="/">Accueil</a>
<a href="https://wiki.alpinux.org">Wiki</a>
<a href="/modifications.html" aria-current="page">Mises à jour</a>
<a href="https://portail.alpinux.org">Portail membres</a>
<a href="https://installparty.alpinux.org">Install Party</a>
<a href="https://messagerie.alpinux.org">Listes de diffusion</a>
</nav>
<main>
<h1>Les mises à jour du wiki</h1>
<p class="chapeau">
Toutes les pages de <a href="https://wiki.alpinux.org">wiki.alpinux.org</a>, de la
plus récemment retouchée à la plus ancienne. Les dates viennent de l'historique du
dépôt : c'est le jour où le texte a changé, pas celui où le fichier a été recopié.
Déplacer une page ne la fait donc pas remonter ici.
</p>
<div class="barre">
<label for="filtre" class="sr-only" hidden>Filtrer les pages</label>
<input id="filtre" type="search" placeholder="Filtrer par titre ou rubrique…"
autocomplete="off" hidden>
<span class="compte" id="compte"></span>
</div>
<div id="etat" class="etat">Chargement de la liste…</div>
<ol class="pages" id="pages"></ol>
<p class="genere" id="genere" hidden></p>
</main>
<footer>
<p>© Alpinux — Association loi 1901 &nbsp;·&nbsp; Chambéry, Savoie</p>
<p style="margin-top:.4rem;">
<a href="https://wiki.alpinux.org/alpinux/">À propos</a> &nbsp;·&nbsp;
<a href="https://wiki.alpinux.org/alpinux/faq/">FAQ</a> &nbsp;·&nbsp;
<a href="https://wiki.alpinux.org/alpinux/donnees-personnelles/">Vos données</a> &nbsp;·&nbsp;
<a href="https://messagerie.alpinux.org/archives">Archives des listes</a> &nbsp;·&nbsp;
<a href="https://www.helloasso.com/associations/alpinux-le-lug-de-savoie">Adhérer</a>
</p>
</footer>
<script>
(function () {
'use strict';
/* Le wiki publie l'inventaire complet à chaque build. Le second fichier est celui
que lit l'accueil : il ne porte que vingt entrées, mais il existe depuis plus
longtemps — s'en contenter vaut mieux qu'une page vide. */
var SOURCES = [
{ url: 'https://wiki.alpinux.org/toutes-les-pages.json', clef: 'pages', partiel: false },
{ url: 'https://wiki.alpinux.org/derniers-articles.json', clef: 'articles', partiel: true }
];
var etat = document.getElementById('etat');
var liste = document.getElementById('pages');
var compte = document.getElementById('compte');
var filtre = document.getElementById('filtre');
var genere = document.getElementById('genere');
var MOIS = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];
var toutes = [];
function echappe(texte) {
var d = document.createElement('div');
d.textContent = texte;
return d.innerHTML;
}
function sansAccent(texte) {
return texte.normalize ? texte.normalize('NFD').replace(/[̀-ͯ]/g, '') : texte;
}
function ligne(page) {
var a = document.createElement('a');
a.className = 'page-ligne';
a.href = page.url;
a.innerHTML =
'<time class="page-date" datetime="' + echappe(page.date) + '">' +
page.d.getDate() + ' ' + MOIS[page.d.getMonth()].slice(0, 4) + '.' +
'</time>' +
'<span>' +
'<span class="page-titre">' + echappe(page.titre) +
(page.nouveau ? '<span class="badge">Nouveau</span>' : '') +
'</span>' +
(page.rubrique ? '<span class="page-rubrique">' + echappe(page.rubrique) + '</span>' : '') +
'</span>';
return a;
}
function dessiner(pages) {
liste.textContent = '';
var moisCourant = '';
pages.forEach(function (page) {
var cle = page.d.getFullYear() + '-' + page.d.getMonth();
if (cle !== moisCourant) {
moisCourant = cle;
var titre = document.createElement('li');
titre.className = 'mois';
titre.textContent = MOIS[page.d.getMonth()] + ' ' + page.d.getFullYear();
liste.appendChild(titre);
}
var li = document.createElement('li');
li.appendChild(ligne(page));
liste.appendChild(li);
});
compte.textContent = pages.length + (pages.length > 1 ? ' pages' : ' page') +
(pages.length !== toutes.length ? ' sur ' + toutes.length : '');
}
function appliquerLeFiltre() {
var q = sansAccent(filtre.value.trim().toLowerCase());
if (!q) return dessiner(toutes);
dessiner(toutes.filter(function (page) {
return sansAccent((page.titre + ' ' + (page.rubrique || '')).toLowerCase()).indexOf(q) !== -1;
}));
}
async function lire(source) {
var r = await fetch(source.url, { cache: 'no-cache' });
if (!r.ok) throw new Error(r.status);
var data = await r.json();
var brut = data[source.clef];
if (!Array.isArray(brut) || !brut.length) throw new Error('vide');
return { data: data, brut: brut };
}
async function charger() {
var lu = null, source = null;
for (var i = 0; i < SOURCES.length && !lu; i++) {
try {
lu = await lire(SOURCES[i]);
source = SOURCES[i];
} catch (_) { /* on essaie la source suivante */ }
}
if (!lu) {
etat.innerHTML = 'La liste n\'a pas pu être chargée. ' +
'Le wiki reste consultable sur <a href="https://wiki.alpinux.org">wiki.alpinux.org</a>.';
return;
}
toutes = lu.brut
.map(function (page) {
var d = new Date(page.date);
return (page && page.titre && page.url && !isNaN(d)) ?
{ titre: page.titre, url: page.url, date: page.date,
nouveau: !!page.nouveau, rubrique: page.rubrique || '', d: d } : null;
})
.filter(Boolean)
.sort(function (a, b) { return b.d - a.d; });
if (!toutes.length) {
etat.textContent = 'Le wiki n\'annonce aucune page pour le moment.';
return;
}
etat.hidden = true;
filtre.hidden = false;
filtre.addEventListener('input', appliquerLeFiltre);
dessiner(toutes);
var quand = new Date(lu.data.genere);
genere.textContent =
(source.partiel
? 'Le wiki ne publie pour l\'instant que ses vingt dernières pages. '
: '') +
(isNaN(quand) ? '' : 'Liste publiée par le wiki le ' +
quand.toLocaleDateString('fr-FR', { day: 'numeric', month: 'long', year: 'numeric' }) +
' à ' + quand.toLocaleTimeString('fr-FR', { hour: '2-digit', minute: '2-digit' }) + '.');
genere.hidden = !genere.textContent;
}
document.addEventListener('DOMContentLoaded', charger);
})();
</script>
</body>
</html>