From 1bafd4e5151d8c1cdf4da5f75bf00421e1cd8292 Mon Sep 17 00:00:00 2001 From: ngosang Date: Thu, 25 Jun 2026 12:53:44 +0200 Subject: [PATCH] home: Add latest-release banner and make highlights evergreen Keep the homepage low-maintenance across minor releases: - Add src/releaseInfo.ts as the single source of truth for release data (latest version/date, changelog/asset URLs, and the PREV_RELEASES history). Publishing a release now only requires editing this file. - Make download.tsx import all release constants from releaseInfo instead of defining them locally. - Add a ReleaseBanner component at the top of the homepage announcing the latest release with inline Download and changelog links. The version is interpolated at runtime via , so translations never need redoing when the version bumps. Styling is theme-aware (color-mix over Infima variables). - Rename the highlights section from 'What's new in 3.0.0' to 'What's new in aMule 3.0' and point its changelog link to the /changelog index, so the section stays current across the 3.0.x line. - Regenerate i18n/en base and add translations for the new banner strings plus the updated title/intro across ca, es, fr, it, lv, pt-BR, tr. --- i18n/ca/code.json | 13 ++++++-- i18n/en/code.json | 18 ++++++++-- i18n/es/code.json | 13 ++++++-- i18n/fr/code.json | 13 ++++++-- i18n/it/code.json | 13 ++++++-- i18n/lv/code.json | 13 ++++++-- i18n/pt-BR/code.json | 13 ++++++-- i18n/tr/code.json | 13 ++++++-- src/components/HighlightsSection/index.tsx | 8 ++--- src/components/ReleaseBanner/index.tsx | 33 +++++++++++++++++++ .../ReleaseBanner/styles.module.css | 33 +++++++++++++++++++ src/pages/download.tsx | 28 +++++----------- src/pages/index.tsx | 2 ++ src/releaseInfo.ts | 24 ++++++++++++++ 14 files changed, 197 insertions(+), 40 deletions(-) create mode 100644 src/components/ReleaseBanner/index.tsx create mode 100644 src/components/ReleaseBanner/styles.module.css create mode 100644 src/releaseInfo.ts diff --git a/i18n/ca/code.json b/i18n/ca/code.json index 4fd29a5..afd7d25 100644 --- a/i18n/ca/code.json +++ b/i18n/ca/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "registre de canvis →" + }, + "homepage.banner.download": { + "message": "descàrrega" + }, + "homepage.banner.text": { + "message": "L'aMule {version} ja està disponible — {download} o llegeix el {changelog}" + }, "homepage.download.linux.platform": { "message": "glibc ≥ 2.35 · x64 · ARM64" }, @@ -222,7 +231,7 @@ "message": "Transferències espectacularment més ràpides" }, "homepage.highlights.title": { - "message": "Novetats a la 3.0.0" + "message": "Novetats a l'aMule 3.0" }, "homepage.screenshots.downloads.alt": { "message": "Pestanya de descàrregues amb descàrregues actives" @@ -267,7 +276,7 @@ "message": "aMule és un client gratuït per compartir fitxers entre iguals i amb llicència GPL per a les xarxes {ed2k} i {kad}. És compatible amb eMule i s'executa de manera nativa a Windows, macOS i Linux. El mateix estat al disc, el mateix protocol, un binari per escriptori principal." }, "homepage.whatisamule.p2": { - "message": "Després d'anys de silenci, el projecte torna a estar en manteniment actiu. La versió 3.0.0 aporta millores espectaculars del rendiment, un sistema de construcció modernitzat, paquets natius nous per a tots els escriptoris principals i una base de codi actualitzada preparada per als sistemes actuals, sense trencar la compatibilitat del protocol que permet a aMule treballar juntament amb qualsevol client basat en eMule." + "message": "Després d'anys de silenci, el projecte torna a estar en manteniment actiu. L'aMule 3.0 aporta millores espectaculars del rendiment, un sistema de construcció modernitzat, paquets natius nous per a tots els escriptoris principals i una base de codi actualitzada preparada per als sistemes actuals, sense trencar la compatibilitat del protocol que permet a aMule treballar juntament amb qualsevol client basat en eMule." }, "homepage.whatisamule.title": { "message": "Què és aMule?" diff --git a/i18n/en/code.json b/i18n/en/code.json index 955f39b..83976ee 100644 --- a/i18n/en/code.json +++ b/i18n/en/code.json @@ -401,7 +401,7 @@ }, "homepage.highlights.changelog": { "message": "Full changelog →", - "description": "Link to the full 3.0.0 changelog in the release-highlights section" + "description": "Link to the changelog from the release-highlights section" }, "homepage.highlights.packages.detail": { "message": "Windows installer and portable .zip, macOS Universal2 .dmg, AppImage, Flatpak — x64 and ARM64 where supported.", @@ -428,7 +428,7 @@ "description": "Category badge of the Performance card in the 'What's new in 3.0.0' section" }, "homepage.highlights.title": { - "message": "What's new in 3.0.0", + "message": "What's new in aMule 3.0", "description": "Heading of the release-highlights section on the homepage" }, "homepage.screenshots.downloads.alt": { @@ -492,7 +492,7 @@ "description": "First paragraph of the 'What is aMule?' homepage section; {ed2k} and {kad} are network names rendered in bold" }, "homepage.whatisamule.p2": { - "message": "After years of quiet, the project is back under active maintenance. The 3.0.0 release brings dramatic throughput improvements, a modernized build system, fresh native packages for every major desktop, and an updated codebase ready for current systems — without breaking the protocol compatibility that lets aMule work alongside any eMule-based client.", + "message": "After years of quiet, the project is back under active maintenance. aMule 3.0 brings dramatic throughput improvements, a modernized build system, fresh native packages for every major desktop, and an updated codebase ready for current systems — without breaking the protocol compatibility that lets aMule work alongside any eMule-based client.", "description": "Intro paragraph above the release-highlights cards on the homepage" }, "homepage.whatisamule.title": { @@ -872,5 +872,17 @@ "homepage.download.docker.guide.link": { "message": "Docker section of the installation guide", "description": "Link text for the Docker section of the installation guide in the download footer note" + }, + "homepage.banner.text": { + "message": "aMule {version} is out — {download} or read the {changelog}", + "description": "Top-of-homepage banner announcing the latest aMule release; {version} is the version number, {download} is the link to the download page, {changelog} is the link to the changelog" + }, + "homepage.banner.download": { + "message": "download", + "description": "Download link label in the latest-release banner; lowercase, reads inline mid-sentence" + }, + "homepage.banner.changelog": { + "message": "changelog →", + "description": "Changelog link label in the latest-release banner" } } diff --git a/i18n/es/code.json b/i18n/es/code.json index b328986..fc545f2 100644 --- a/i18n/es/code.json +++ b/i18n/es/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "changelog →" + }, + "homepage.banner.download": { + "message": "descargar" + }, + "homepage.banner.text": { + "message": "aMule {version} ya está disponible — {download} o lee el {changelog}" + }, "homepage.description": { "message": "aMule es un cliente eD2k/Kad libre, multiplataforma y compatible con eMule para Windows, macOS y Linux." }, @@ -321,7 +330,7 @@ "message": "Rendimiento" }, "homepage.highlights.title": { - "message": "Novedades de 3.0.0" + "message": "Novedades de aMule 3.0" }, "homepage.screenshots.downloads.alt": { "message": "Pestaña Descargas con descargas activas" @@ -369,7 +378,7 @@ "message": "aMule es un cliente peer-to-peer (P2P) para compartir archivos, libre y con licencia GPL, para las redes {ed2k} y {kad}. Es compatible con eMule y se ejecuta de forma nativa en Windows, macOS y Linux. Mismo estado en disco, mismo protocolo y un binario nativo para cada plataforma de escritorio principal." }, "homepage.whatisamule.p2": { - "message": "Tras años de poca actividad, el proyecto vuelve a tener mantenimiento activo. La versión 3.0.0 incorpora mejoras dramáticas de rendimiento, un sistema de compilación modernizado, nuevos paquetes nativos para las principales plataformas de escritorio y una base de código actualizada para los sistemas actuales, sin romper la compatibilidad de protocolo que permite a aMule interoperar con cualquier cliente basado en eMule." + "message": "Tras años de poca actividad, el proyecto vuelve a tener mantenimiento activo. aMule 3.0 incorpora mejoras dramáticas de rendimiento, un sistema de compilación modernizado, nuevos paquetes nativos para las principales plataformas de escritorio y una base de código actualizada para los sistemas actuales, sin romper la compatibilidad de protocolo que permite a aMule interoperar con cualquier cliente basado en eMule." }, "homepage.whatisamule.title": { "message": "¿Qué es aMule?" diff --git a/i18n/fr/code.json b/i18n/fr/code.json index 25cdfaf..c6cf320 100644 --- a/i18n/fr/code.json +++ b/i18n/fr/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "journal des modifications →" + }, + "homepage.banner.download": { + "message": "télécharger" + }, + "homepage.banner.text": { + "message": "aMule {version} est disponible — {download} ou lisez le {changelog}" + }, "homepage.description": { "message": "aMule est un client libre et multi-plateforme eD2k/Kad compatible avec eMule pour Windows, macOS et GNU/Linux." }, @@ -321,7 +330,7 @@ "message": "Performances" }, "homepage.highlights.title": { - "message": "Quoi de neuf dans la version 3.0.0 ?" + "message": "Quoi de neuf dans aMule 3.0 ?" }, "homepage.screenshots.downloads.alt": { "message": "Onglet de téléchargement avec des téléchargements en cours" @@ -369,7 +378,7 @@ "message": "aMule est un client de partage de fichiers pair à pair libre, sous licence GPL pour les réseaux {ed2k} et {kad}. Il est compatible avec eMule et fonctionne nativement sous GNU/Linux, macOS et Windows. Même état sur le disque, même protocole, un binaire par bureau majeur." }, "homepage.whatisamule.p2": { - "message": "Après des années de calme, le projet est à nouveau maintenu activement. La version 3.0.0 apporte des débits considérablement améliorés, un système de compilation modernisé, des nouveaux paquets natifs pour chaque bureau notable et un code source modernisé pour les systèmes actuels — sans rompre la compatibilité du protocole qui permet à aMule de fonctionner avec n'importe quel autre client fondé sur eMule." + "message": "Après des années de calme, le projet est à nouveau maintenu activement. aMule 3.0 apporte des débits considérablement améliorés, un système de compilation modernisé, des nouveaux paquets natifs pour chaque bureau notable et un code source modernisé pour les systèmes actuels — sans rompre la compatibilité du protocole qui permet à aMule de fonctionner avec n'importe quel autre client fondé sur eMule." }, "homepage.whatisamule.title": { "message": "Ce qu'est aMule" diff --git a/i18n/it/code.json b/i18n/it/code.json index cbff33a..fe09d8a 100644 --- a/i18n/it/code.json +++ b/i18n/it/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "changelog →" + }, + "homepage.banner.download": { + "message": "scarica" + }, + "homepage.banner.text": { + "message": "aMule {version} è disponibile — {download} o leggi il {changelog}" + }, "homepage.download.windows.os": { "message": "Windows" }, @@ -312,13 +321,13 @@ "message": "Autotools rimosso del tutto. Build CMake unica, CMake minimo 3.10, wxWidgets minimo 3.2.0." }, "homepage.highlights.title": { - "message": "Novità nella 3.0.0" + "message": "Novità in aMule 3.0" }, "homepage.highlights.changelog": { "message": "Changelog completo →" }, "homepage.whatisamule.p2": { - "message": "Dopo anni di silenzio, il progetto è tornato sotto manutenzione attiva. La release 3.0.0 introduce miglioramenti drastici al throughput, un sistema di compilazione modernizzato, nuovi pacchetti nativi per ogni desktop principale e una base di codice aggiornata, pronta per i sistemi attuali — senza rompere la compatibilità di protocollo che permette ad aMule di funzionare insieme a qualsiasi client basato su eMule." + "message": "Dopo anni di silenzio, il progetto è tornato sotto manutenzione attiva. aMule 3.0 introduce miglioramenti drastici al throughput, un sistema di compilazione modernizzato, nuovi pacchetti nativi per ogni desktop principale e una base di codice aggiornata, pronta per i sistemi attuali — senza rompere la compatibilità di protocollo che permette ad aMule di funzionare insieme a qualsiasi client basato su eMule." }, "homepage.screenshots.networks.alt": { "message": "Scheda Reti — elenco dei server e stato Kademlia" diff --git a/i18n/lv/code.json b/i18n/lv/code.json index a6c2391..e8ac354 100644 --- a/i18n/lv/code.json +++ b/i18n/lv/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "izmaiņu saraksts →" + }, + "homepage.banner.download": { + "message": "lejupielādēt" + }, + "homepage.banner.text": { + "message": "aMule {version} ir pieejama — {download} vai lasi {changelog}" + }, "theme.navbar.mobileVersionsDropdown.label": { "message": "Versijas" }, @@ -159,10 +168,10 @@ "message": "aMule — brīvs, ar GPL licenci aizsargāts vienādranga (P2P) datņu koplietošanas klients, kas paredzēts {ed2k} un {kad} tīkliem. Tas saderīgs ar eMule un darbojas vietēji Windows, macOS un Linux operētājsistēmās bez papildprogrammatūras — emulatora, virtualizācijas utt. Tas pats stāvoklis diskā, tas pats protokols un viena izpildāmā datne katrai nozīmīgai darbvirsmas operētājsistēmai." }, "homepage.highlights.title": { - "message": "3.0.0 versijas jaunumi" + "message": "aMule 3.0 jaunumi" }, "homepage.whatisamule.p2": { - "message": "Pēc gadiem ilga klusuma projekts atkal atdzimis un tiek aktīvi uzturēts. 3.0.0 izlaiduma versija sniedz ievērojamus datu caurlaidspējas uzlabojumus, modernizētu pakotņu izveides sistēmu, jaunas programmatūras pakotnes katrai nozīmīgai darbvirsmas operētājsistēmai un mūsdienu prasībām sagatavotu, atjauninātu pirmkodu — nesabojājot protokola saderību, kas ļauj aMule darboties līdzās jebkuram uz eMule bāzes izstrādātam klientam." + "message": "Pēc gadiem ilga klusuma projekts atkal atdzimis un tiek aktīvi uzturēts. aMule 3.0 sniedz ievērojamus datu caurlaidspējas uzlabojumus, modernizētu pakotņu izveides sistēmu, jaunas programmatūras pakotnes katrai nozīmīgai darbvirsmas operētājsistēmai un mūsdienu prasībām sagatavotu, atjauninātu pirmkodu — nesabojājot protokola saderību, kas ļauj aMule darboties līdzās jebkuram uz eMule bāzes izstrādātam klientam." }, "theme.docs.DocCard.categoryDescription.plurals": { "message": "1 vienums|{count} vienumi(-s)" diff --git a/i18n/pt-BR/code.json b/i18n/pt-BR/code.json index 947531c..4fc4842 100644 --- a/i18n/pt-BR/code.json +++ b/i18n/pt-BR/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "changelog →" + }, + "homepage.banner.download": { + "message": "download" + }, + "homepage.banner.text": { + "message": "aMule {version} já está disponível — {download} ou leia o {changelog}" + }, "homepage.download.previous.entry.sourceforge": { "message": "SourceForge" }, @@ -153,7 +162,7 @@ "message": "aMule é um cliente de compartilhamento de arquivos p2p para as redes {ed2k} and {kad}, livre, com licensa GPL. É compatível com o eMule e roda nativamente em Windows, macOS e Linux. O mesmo estado em disco, o mesmo protocolo, um binário por desktop principal." }, "homepage.whatisamule.p2": { - "message": "Depois de anos quieto, o projeto está de volta com manutenção ativa. A versão 3.0.0 traz melhorias dramáticas de taxa de transferência, um sistema de compilação modernizado, pacotes fescos e nativos para todas as principais distribuições de desktop e uma base de código atualizada e pronta para sistemas atuais — sem quebrar a compatibilidade de protocolo que permite que o aMule funcione junto com qualquer cliente baseado em eMule." + "message": "Depois de anos quieto, o projeto está de volta com manutenção ativa. O aMule 3.0 traz melhorias dramáticas de taxa de transferência, um sistema de compilação modernizado, pacotes fescos e nativos para todas as principais distribuições de desktop e uma base de código atualizada e pronta para sistemas atuais — sem quebrar a compatibilidade de protocolo que permite que o aMule funcione junto com qualquer cliente baseado em eMule." }, "homepage.whatisamule.title": { "message": "O que é o aMule?" @@ -597,7 +606,7 @@ "message": "Desempenho" }, "homepage.highlights.title": { - "message": "O que há de novo no 3.0.0" + "message": "O que há de novo no aMule 3.0" }, "homepage.features.preview.desc": { "message": "Toca vídeos e arquivos de audio antes de terminar um download. Compatível com MPlayer, VLC e outros tocadores de midia." diff --git a/i18n/tr/code.json b/i18n/tr/code.json index 477b1e0..73e1336 100644 --- a/i18n/tr/code.json +++ b/i18n/tr/code.json @@ -1,4 +1,13 @@ { + "homepage.banner.changelog": { + "message": "değişiklik listesi →" + }, + "homepage.banner.download": { + "message": "indir" + }, + "homepage.banner.text": { + "message": "aMule {version} yayında — {download} veya {changelog}" + }, "homepage.description": { "message": "aMule, özgür, Windows, macOS ve GNU/Linux için her platforma uygun, eMule ile uyumlu bir eD2k/Kad istemcisidir." }, @@ -321,7 +330,7 @@ "message": "Performans" }, "homepage.highlights.title": { - "message": "3.0.0 sürümündeki yenilikler" + "message": "aMule 3.0 sürümündeki yenilikler" }, "homepage.screenshots.downloads.alt": { "message": "Faal indirmeler bulunan indirme sekmesi" @@ -369,7 +378,7 @@ "message": "aMule, özgür, GPL kapsamında lisanslanmış {ed2k} ve {kad} ağları için eşten eşe dosya paylaşım istemcisidir. eMule ile uyumludur ve Windows, macOS ve GNU/Linux üzerinde yerel olarak çalışır. Aynı disk üzerinde durum, aynı protokol, her ana masaüstü için bir ikili çalıştırılabilir dosya." }, "homepage.whatisamule.p2": { - "message": "Seneler süren sessizliğin ardından proje yeniden etkin bakıma alınmıştır. 3.0.0 sürümü, veri aktarım hızında son derece büyük iyileştirmeler, güncellenmiş bir derleme sistemi, her hatırı sayılır platform için yeni yerel paketler ve çağdaş sistemler için güncellenmiş kaynak kod tabanı sağlar — tüm bunlar, aMule'ün eMule temelli istemcilerle çalışmasını sağlayan protokol uyumluluğunu bozmadan yapılmıştır." + "message": "Seneler süren sessizliğin ardından proje yeniden etkin bakıma alınmıştır. aMule 3.0, veri aktarım hızında son derece büyük iyileştirmeler, güncellenmiş bir derleme sistemi, her hatırı sayılır platform için yeni yerel paketler ve çağdaş sistemler için güncellenmiş kaynak kod tabanı sağlar — tüm bunlar, aMule'ün eMule temelli istemcilerle çalışmasını sağlayan protokol uyumluluğunu bozmadan yapılmıştır." }, "homepage.whatisamule.title": { "message": "aMule Nedir?" diff --git a/src/components/HighlightsSection/index.tsx b/src/components/HighlightsSection/index.tsx index 8202002..487968d 100644 --- a/src/components/HighlightsSection/index.tsx +++ b/src/components/HighlightsSection/index.tsx @@ -54,18 +54,18 @@ export default function HighlightsSection(): React.JSX.Element {

- What's new in 3.0.0 + What's new in aMule 3.0

- Full changelog → + Full changelog →

- After years of quiet, the project is back under active maintenance. The 3.0.0 release brings dramatic throughput improvements, a modernized build system, fresh native packages for every major desktop, and an updated codebase ready for current systems — without breaking the protocol compatibility that lets aMule work alongside any eMule-based client. + After years of quiet, the project is back under active maintenance. aMule 3.0 brings dramatic throughput improvements, a modernized build system, fresh native packages for every major desktop, and an updated codebase ready for current systems — without breaking the protocol compatibility that lets aMule work alongside any eMule-based client.

diff --git a/src/components/ReleaseBanner/index.tsx b/src/components/ReleaseBanner/index.tsx new file mode 100644 index 0000000..b2ae82b --- /dev/null +++ b/src/components/ReleaseBanner/index.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import Link from '@docusaurus/Link'; +import Translate from '@docusaurus/Translate'; +import {LATEST_VERSION, CHANGELOG_URL} from '@site/src/releaseInfo'; +import styles from './styles.module.css'; + +export default function ReleaseBanner(): React.JSX.Element { + return ( +
+ + + download + + ), + changelog: ( + + changelog → + + ), + }} + > + {'aMule {version} is out — {download} or read the {changelog}'} + + +
+ ); +} diff --git a/src/components/ReleaseBanner/styles.module.css b/src/components/ReleaseBanner/styles.module.css new file mode 100644 index 0000000..0b7e48c --- /dev/null +++ b/src/components/ReleaseBanner/styles.module.css @@ -0,0 +1,33 @@ +.banner { + width: 100%; + padding: 0.6rem 1rem; + text-align: center; + background-color: color-mix(in srgb, var(--ifm-color-primary) 14%, var(--ifm-background-color)); + border-bottom: 1px solid color-mix(in srgb, var(--ifm-color-primary) 35%, transparent); + color: var(--ifm-font-color-base); + font-size: 0.95rem; + line-height: 1.4; +} + +/* In dark mode the page-wide brand gradient (.main-wrapper) uses the same + ~12% primary tint, so a subtle banner blends into it. Use a stronger mix + so the bar reads as a distinct surface. */ +[data-theme='dark'] .banner { + background-color: color-mix(in srgb, var(--ifm-color-primary) 28%, var(--ifm-background-color)); +} + +.content { + display: inline-block; +} + +.link { + color: var(--ifm-color-primary); + font-weight: 600; + text-decoration: underline; + text-underline-offset: 2px; +} + +.link:hover { + color: var(--ifm-color-primary-darker); + text-decoration: none; +} diff --git a/src/pages/download.tsx b/src/pages/download.tsx index 8508c66..11a1b7f 100644 --- a/src/pages/download.tsx +++ b/src/pages/download.tsx @@ -3,6 +3,15 @@ import Layout from '@theme/Layout'; import Link from '@docusaurus/Link'; import Translate, {translate} from '@docusaurus/Translate'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import { + LATEST_VERSION, + LATEST_DATE, + CHANGELOG_URL, + RELEASES_URL, + ASSET_BASE, + SOURCE_ARCHIVE_BASE, + PREV_RELEASES, +} from '@site/src/releaseInfo'; import styles from './download.module.css'; // Format an ISO date (YYYY-MM-DD) for the active locale, e.g. "1 de junio de 2026". @@ -24,25 +33,6 @@ const WINDOWS_SVG = 'M0,0H11.377V11.372H0ZM12.623,0H24V11.372H12.623ZM0,12.623H1 const SOURCE_SVG = 'M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm4 18H6V4h7v5h5v11z'; const DOWNLOAD_SVG = 'M5 20h14v-2H5v2zM19 9h-4V3H9v6H5l7 7 7-7z'; -// Latest release. Update these three constants when a new version ships. -const LATEST_VERSION = '3.0.1'; -const LATEST_DATE = '2026-06-24'; -const CHANGELOG_URL = `/changelog/${LATEST_VERSION}`; - -// Generic releases page (version number link, footer links). -const RELEASES_URL = 'https://github.com/amule-org/amule/releases/latest'; -// Per-artifact download bases, derived from the version number. -const ASSET_BASE = `https://github.com/amule-org/amule/releases/download/${LATEST_VERSION}`; -const SOURCE_ARCHIVE_BASE = `https://github.com/amule-org/amule/archive/refs/tags/${LATEST_VERSION}`; - -// Archived releases (before 3.0.0). URLs are derived from the version number. -const PREV_RELEASES = [ - {version: '3.0.0', date: '2026-06-08'}, - {version: '2.3.3', date: '2021-02-07'}, - {version: '2.3.2', date: '2016-09-16'}, - {version: '2.3.1', date: '2011-11-11'}, -]; - interface DownloadFile { // Architecture label, e.g. "x64" arch: React.ReactNode; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 9d50298..d063887 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -4,6 +4,7 @@ import Link from '@docusaurus/Link'; import Translate, {translate} from '@docusaurus/Translate'; import useBaseUrl from '@docusaurus/useBaseUrl'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import ReleaseBanner from '@site/src/components/ReleaseBanner'; import HighlightsSection from '@site/src/components/HighlightsSection'; import FeaturesSection from '@site/src/components/FeaturesSection'; import ScreenshotsSection from '@site/src/components/ScreenshotsSection'; @@ -22,6 +23,7 @@ export default function Home(): React.JSX.Element { description: 'Homepage SEO meta description (HTML description tag)', })} > +
{translate({id: diff --git a/src/releaseInfo.ts b/src/releaseInfo.ts new file mode 100644 index 0000000..a0d4055 --- /dev/null +++ b/src/releaseInfo.ts @@ -0,0 +1,24 @@ +// Single source of truth for aMule releases. +// +// When publishing a new version, edit ONLY this file: +// 1. Move the current {version, date} to the top of PREV_RELEASES. +// 2. Update LATEST_VERSION and LATEST_DATE with the new release. +// Consumed by the homepage (release banner) and the download page. + +export const LATEST_VERSION = '3.0.1'; +export const LATEST_DATE = '2026-06-24'; +export const CHANGELOG_URL = `/changelog/${LATEST_VERSION}`; + +// Generic releases page (version-number link, footer links). +export const RELEASES_URL = 'https://github.com/amule-org/amule/releases/latest'; +// Per-artifact download bases, derived from the version number. +export const ASSET_BASE = `https://github.com/amule-org/amule/releases/download/${LATEST_VERSION}`; +export const SOURCE_ARCHIVE_BASE = `https://github.com/amule-org/amule/archive/refs/tags/${LATEST_VERSION}`; + +// Archived releases (most recent first). URLs are derived from the version number. +export const PREV_RELEASES = [ + {version: '3.0.0', date: '2026-06-08'}, + {version: '2.3.3', date: '2021-02-07'}, + {version: '2.3.2', date: '2016-09-16'}, + {version: '2.3.1', date: '2011-11-11'}, +];