Website: Version Dynamic and Roadmap Padding

This commit is contained in:
2026-07-08 22:03:38 +02:00
parent ead985a741
commit ff71623b90
47 changed files with 192 additions and 141 deletions
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="About KST4Contest"> <meta name="twitter:title" content="About KST4Contest">
<meta name="twitter:description" content="About KST4Contest and its contest-oriented ON4KST workflow."> <meta name="twitter:description" content="About KST4Contest and its contest-oriented ON4KST workflow.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+12
View File
@@ -415,6 +415,18 @@ a:hover {
color: var(--muted); color: var(--muted);
} }
.roadmap-version + .roadmap-version {
margin-top: 24px;
}
.roadmap-version ul {
padding-left: 20px;
}
.roadmap-version li {
margin-bottom: 8px;
}
.roadmap-done a { .roadmap-done a {
color: var(--muted); color: var(--muted);
text-decoration: line-through; text-decoration: line-through;
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Contact | KST4Contest"> <meta name="twitter:title" content="Contact | KST4Contest">
<meta name="twitter:description" content="Contact options for KST4Contest."> <meta name="twitter:description" content="Contact options for KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+11 -11
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Download KST4Contest"> <meta name="twitter:title" content="Download KST4Contest">
<meta name="twitter:description" content="Download KST4Contest releases for Windows, Linux and macOS."> <meta name="twitter:description" content="Download KST4Contest releases for Windows, Linux and macOS.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -95,7 +95,7 @@
<p><strong>ZIP x64</strong></p> <p><strong>ZIP x64</strong></p>
<p>Best choice for most Windows users.</p> <p>Best choice for most Windows users.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/praktiKST-v1.41.0-windows-x64.zip">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/praktiKST-v1.41.1-windows-x64.zip">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -109,7 +109,7 @@
<p><strong>Flatpak (.flatpakref)</strong></p> <p><strong>Flatpak (.flatpakref)</strong></p>
<p>Recommended for most Linux users. Open the file with GNOME Software / Discover, or run: flatpak install de.x08.KST4Contest.flatpakref</p> <p>Recommended for most Linux users. Open the file with GNOME Software / Discover, or run: flatpak install de.x08.KST4Contest.flatpakref</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/de.x08.KST4Contest.flatpakref">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/de.x08.KST4Contest.flatpakref">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -121,7 +121,7 @@
<p><strong>AppImage x86_64</strong></p> <p><strong>AppImage x86_64</strong></p>
<p>Portable Linux build without package installation.</p> <p>Portable Linux build without package installation.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-linux-x86_64.AppImage">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-linux-x86_64.AppImage">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -133,7 +133,7 @@
<p><strong>DEB amd64</strong></p> <p><strong>DEB amd64</strong></p>
<p>Native package for Debian and Ubuntu based systems.</p> <p>Native package for Debian and Ubuntu based systems.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-debian-amd64.deb">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-debian-amd64.deb">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -145,7 +145,7 @@
<p><strong>RPM x86_64</strong></p> <p><strong>RPM x86_64</strong></p>
<p>Native package for Fedora/RPM based systems.</p> <p>Native package for Fedora/RPM based systems.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-fedora-x86_64.rpm">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-fedora-x86_64.rpm">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -157,7 +157,7 @@
<p><strong>pkg.tar.zst</strong></p> <p><strong>pkg.tar.zst</strong></p>
<p>Package build for Arch Linux users.</p> <p>Package build for Arch Linux users.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-archlinux-x86_64.pkg.tar.zst">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-archlinux-x86_64.pkg.tar.zst">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -169,7 +169,7 @@
<p><strong>DMG arm64</strong></p> <p><strong>DMG arm64</strong></p>
<p>For Apple Silicon Macs.</p> <p>For Apple Silicon Macs.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-macos-arm64.dmg">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-macos-arm64.dmg">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -181,7 +181,7 @@
<p><strong>DMG x86_64</strong></p> <p><strong>DMG x86_64</strong></p>
<p>For Intel-based Macs.</p> <p>For Intel-based Macs.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-macos-x86_64.dmg">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-macos-x86_64.dmg">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -193,7 +193,7 @@
<p><strong>PDF</strong></p> <p><strong>PDF</strong></p>
<p>English PDF manual.</p> <p>English PDF manual.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-manual-en.pdf">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-manual-en.pdf">Download →</a>
</article> </article>
<article class="card download-card"> <article class="card download-card">
@@ -205,7 +205,7 @@
<p><strong>PDF</strong></p> <p><strong>PDF</strong></p>
<p>German PDF manual.</p> <p>German PDF manual.</p>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/KST4Contest-v1.41.0-manual-de.pdf">Download →</a> <a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.1/KST4Contest-v1.41.1-manual-de.pdf">Download →</a>
</article> </article>
</div> </div>
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest FAQ"> <meta name="twitter:title" content="KST4Contest FAQ">
<meta name="twitter:description" content="Frequently asked questions about KST4Contest, ON4KST contest operation, AirScout integration and VHF/UHF/SHF contest workflow."> <meta name="twitter:description" content="Frequently asked questions about KST4Contest, ON4KST contest operation, AirScout integration and VHF/UHF/SHF contest workflow.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="AirScout Integration"> <meta name="twitter:title" content="AirScout Integration">
<meta name="twitter:description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests."> <meta name="twitter:description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Dual Chat Categories"> <meta name="twitter:title" content="Dual Chat Categories">
<meta name="twitter:description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms."> <meta name="twitter:description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="DXCluster Server"> <meta name="twitter:title" content="DXCluster Server">
<meta name="twitter:description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation."> <meta name="twitter:description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Features"> <meta name="twitter:title" content="KST4Contest Features">
<meta name="twitter:description" content="Contest-optimized ON4KST features for VHF, UHF and SHF operation."> <meta name="twitter:description" content="Contest-optimized ON4KST features for VHF, UHF and SHF operation.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Log Synchronization"> <meta name="twitter:title" content="Log Synchronization">
<meta name="twitter:description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context."> <meta name="twitter:description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Macros and Variables"> <meta name="twitter:title" content="Macros and Variables">
<meta name="twitter:description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions."> <meta name="twitter:description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Priority Score System"> <meta name="twitter:title" content="Priority Score System">
<meta name="twitter:description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals."> <meta name="twitter:description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Sked Reminder"> <meta name="twitter:title" content="Sked Reminder">
<meta name="twitter:description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing."> <meta name="twitter:description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Timeline View"> <meta name="twitter:title" content="Timeline View">
<meta name="twitter:description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation."> <meta name="twitter:description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Contest-Optimized ON4KST Chat Client"> <meta name="twitter:title" content="KST4Contest Contest-Optimized ON4KST Chat Client">
<meta name="twitter:description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation."> <meta name="twitter:description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Legal Notice | KST4Contest"> <meta name="twitter:title" content="Legal Notice | KST4Contest">
<meta name="twitter:description" content="Legal notice for the KST4Contest website."> <meta name="twitter:description" content="Legal notice for the KST4Contest website.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Deutsches Handbuch"> <meta name="twitter:title" content="KST4Contest Deutsches Handbuch">
<meta name="twitter:description" content="Deutsches Benutzerhandbuch für KST4Contest."> <meta name="twitter:description" content="Deutsches Benutzerhandbuch für KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest English Manual"> <meta name="twitter:title" content="KST4Contest English Manual">
<meta name="twitter:description" content="English user manual for KST4Contest."> <meta name="twitter:description" content="English user manual for KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual"> <meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}"> <meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Manual"> <meta name="twitter:title" content="KST4Contest Manual">
<meta name="twitter:description" content="Online manual for KST4Contest, the contest-optimized ON4KST chat client."> <meta name="twitter:description" content="Online manual for KST4Contest, the contest-optimized ON4KST chat client.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Website Launch"> <meta name="twitter:title" content="KST4Contest Website Launch">
<meta name="twitter:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests."> <meta name="twitter:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest News"> <meta name="twitter:title" content="KST4Contest News">
<meta name="twitter:description" content="News, release updates and development notes for KST4Contest."> <meta name="twitter:description" content="News, release updates and development notes for KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="Privacy Policy | KST4Contest"> <meta name="twitter:title" content="Privacy Policy | KST4Contest">
<meta name="twitter:description" content="Privacy policy for the KST4Contest website."> <meta name="twitter:description" content="Privacy policy for the KST4Contest website.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+4 -4
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Roadmap"> <meta name="twitter:title" content="KST4Contest Roadmap">
<meta name="twitter:description" content="Planned enhancements for upcoming KST4Contest versions, generated from GitHub milestones and issues."> <meta name="twitter:description" content="Planned enhancements for upcoming KST4Contest versions, generated from GitHub milestones and issues.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
@@ -77,7 +77,7 @@
<article class="card content-card"> <article class="card content-card roadmap-version">
<h2><a href="https://github.com/praktimarc/kst4contest/milestone/2">v1.42</a></h2> <h2><a href="https://github.com/praktimarc/kst4contest/milestone/2">v1.42</a></h2>
@@ -92,7 +92,7 @@
</ul> </ul>
</article> </article>
<article class="card content-card"> <article class="card content-card roadmap-version">
<h2><a href="https://github.com/praktimarc/kst4contest/milestone/1">v1.41</a></h2> <h2><a href="https://github.com/praktimarc/kst4contest/milestone/1">v1.41</a></h2>
@@ -109,7 +109,7 @@
</ul> </ul>
</article> </article>
<article class="card content-card"> <article class="card content-card roadmap-version">
<h2>Planned, no version yet</h2> <h2>Planned, no version yet</h2>
+1 -1
View File
@@ -17,7 +17,7 @@
<meta name="twitter:title" content="KST4Contest Screenshots"> <meta name="twitter:title" content="KST4Contest Screenshots">
<meta name="twitter:description" content="Screenshots of KST4Contest, the contest-optimized ON4KST chat client for VHF, UHF and SHF operators."> <meta name="twitter:description" content="Screenshots of KST4Contest, the contest-optimized ON4KST chat client for VHF, UHF and SHF operators.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783539256714"> <link rel="stylesheet" href="/assets/css/main.css?v=1783540905666">
<link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml"> <link rel="alternate" type="application/rss+xml" title="KST4Contest News" href="/feed.xml">
<meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png"> <meta property="og:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
+110 -83
View File
@@ -1,85 +1,112 @@
const latestTag = "v1.41.0"; const REPO = "praktimarc/kst4contest";
const base = `https://github.com/praktimarc/kst4contest/releases/download/${latestTag}`; const API = `https://api.github.com/repos/${REPO}`;
const FALLBACK_TAG = "v1.41.1";
module.exports = [ async function fetchLatestReleaseTag() {
{ const headers = { Accept: "application/vnd.github+json" };
os: "Windows", if (process.env.GITHUB_TOKEN) {
format: "ZIP x64", headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`;
icon: "🪟",
recommended: true,
note: "Best choice for most Windows users.",
url: `${base}/praktiKST-${latestTag}-windows-x64.zip`
},
{
os: "Linux",
format: "Flatpak (.flatpakref)",
icon: "🐧",
recommended: true,
note: "Recommended for most Linux users. Open the file with GNOME Software / Discover, or run: flatpak install de.x08.KST4Contest.flatpakref",
url: `${base}/de.x08.KST4Contest.flatpakref`
},
{
os: "Linux",
format: "AppImage x86_64",
icon: "🐧",
recommended: false,
note: "Portable Linux build without package installation.",
url: `${base}/KST4Contest-${latestTag}-linux-x86_64.AppImage`
},
{
os: "Debian / Ubuntu",
format: "DEB amd64",
icon: "📦",
recommended: false,
note: "Native package for Debian and Ubuntu based systems.",
url: `${base}/KST4Contest-${latestTag}-debian-amd64.deb`
},
{
os: "Fedora",
format: "RPM x86_64",
icon: "📦",
recommended: false,
note: "Native package for Fedora/RPM based systems.",
url: `${base}/KST4Contest-${latestTag}-fedora-x86_64.rpm`
},
{
os: "Arch Linux",
format: "pkg.tar.zst",
icon: "📦",
recommended: false,
note: "Package build for Arch Linux users.",
url: `${base}/KST4Contest-${latestTag}-archlinux-x86_64.pkg.tar.zst`
},
{
os: "macOS Apple Silicon",
format: "DMG arm64",
icon: "🍎",
recommended: false,
note: "For Apple Silicon Macs.",
url: `${base}/KST4Contest-${latestTag}-macos-arm64.dmg`
},
{
os: "macOS Intel",
format: "DMG x86_64",
icon: "🍎",
recommended: false,
note: "For Intel-based Macs.",
url: `${base}/KST4Contest-${latestTag}-macos-x86_64.dmg`
},
{
os: "Manual English",
format: "PDF",
icon: "📘",
recommended: false,
note: "English PDF manual.",
url: `${base}/KST4Contest-${latestTag}-manual-en.pdf`
},
{
os: "Manual German",
format: "PDF",
icon: "📘",
recommended: false,
note: "German PDF manual.",
url: `${base}/KST4Contest-${latestTag}-manual-de.pdf`
} }
];
try {
const res = await fetch(`${API}/releases/latest`, { headers });
if (!res.ok) {
throw new Error(`GitHub API /releases/latest failed: ${res.status}`);
}
const release = await res.json();
return release.tag_name || FALLBACK_TAG;
} catch (err) {
console.warn(`[downloads] Could not load latest release tag, falling back to ${FALLBACK_TAG}: ${err.message}`);
return FALLBACK_TAG;
}
}
// Builds the download list from the latest GitHub release tag so it never
// drifts out of sync with what tagged-release.yml actually published.
module.exports = async function () {
const latestTag = await fetchLatestReleaseTag();
const base = `https://github.com/${REPO}/releases/download/${latestTag}`;
return [
{
os: "Windows",
format: "ZIP x64",
icon: "🪟",
recommended: true,
note: "Best choice for most Windows users.",
url: `${base}/praktiKST-${latestTag}-windows-x64.zip`
},
{
os: "Linux",
format: "Flatpak (.flatpakref)",
icon: "🐧",
recommended: true,
note: "Recommended for most Linux users. Open the file with GNOME Software / Discover, or run: flatpak install de.x08.KST4Contest.flatpakref",
url: `${base}/de.x08.KST4Contest.flatpakref`
},
{
os: "Linux",
format: "AppImage x86_64",
icon: "🐧",
recommended: false,
note: "Portable Linux build without package installation.",
url: `${base}/KST4Contest-${latestTag}-linux-x86_64.AppImage`
},
{
os: "Debian / Ubuntu",
format: "DEB amd64",
icon: "📦",
recommended: false,
note: "Native package for Debian and Ubuntu based systems.",
url: `${base}/KST4Contest-${latestTag}-debian-amd64.deb`
},
{
os: "Fedora",
format: "RPM x86_64",
icon: "📦",
recommended: false,
note: "Native package for Fedora/RPM based systems.",
url: `${base}/KST4Contest-${latestTag}-fedora-x86_64.rpm`
},
{
os: "Arch Linux",
format: "pkg.tar.zst",
icon: "📦",
recommended: false,
note: "Package build for Arch Linux users.",
url: `${base}/KST4Contest-${latestTag}-archlinux-x86_64.pkg.tar.zst`
},
{
os: "macOS Apple Silicon",
format: "DMG arm64",
icon: "🍎",
recommended: false,
note: "For Apple Silicon Macs.",
url: `${base}/KST4Contest-${latestTag}-macos-arm64.dmg`
},
{
os: "macOS Intel",
format: "DMG x86_64",
icon: "🍎",
recommended: false,
note: "For Intel-based Macs.",
url: `${base}/KST4Contest-${latestTag}-macos-x86_64.dmg`
},
{
os: "Manual English",
format: "PDF",
icon: "📘",
recommended: false,
note: "English PDF manual.",
url: `${base}/KST4Contest-${latestTag}-manual-en.pdf`
},
{
os: "Manual German",
format: "PDF",
icon: "📘",
recommended: false,
note: "German PDF manual.",
url: `${base}/KST4Contest-${latestTag}-manual-de.pdf`
}
];
};
+12
View File
@@ -415,6 +415,18 @@ a:hover {
color: var(--muted); color: var(--muted);
} }
.roadmap-version + .roadmap-version {
margin-top: 24px;
}
.roadmap-version ul {
padding-left: 20px;
}
.roadmap-version li {
margin-bottom: 8px;
}
.roadmap-done a { .roadmap-done a {
color: var(--muted); color: var(--muted);
text-decoration: line-through; text-decoration: line-through;
+2 -2
View File
@@ -16,7 +16,7 @@ description: Planned enhancements for upcoming KST4Contest versions, generated f
<section class="section narrow"> <section class="section narrow">
{% if roadmap.length == 0 %} {% if roadmap.length == 0 %}
<article class="card content-card"> <article class="card content-card roadmap-version">
<p>No planned enhancements are currently assigned to a version milestone.</p> <p>No planned enhancements are currently assigned to a version milestone.</p>
<p> <p>
See all open feature requests on See all open feature requests on
@@ -26,7 +26,7 @@ description: Planned enhancements for upcoming KST4Contest versions, generated f
{% endif %} {% endif %}
{% for version in roadmap %} {% for version in roadmap %}
<article class="card content-card"> <article class="card content-card roadmap-version">
{% if version.version %} {% if version.version %}
<h2><a href="{{ version.url }}">{{ version.version }}</a></h2> <h2><a href="{{ version.url }}">{{ version.version }}</a></h2>
{% else %} {% else %}