Move features to Markdown content model

This commit is contained in:
Marc Froehlich
2026-07-07 00:06:47 +02:00
parent 59aade8004
commit 59638f6ab3
12 changed files with 223 additions and 126 deletions
+17 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>AirScout Integration</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/airscout/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="AirScout Integration">
<meta property="og:description" content="AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/airscout/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -64,16 +64,12 @@
<article class="card content-card">
<div class="feature-icon large">✈️</div>
<h2>Why it matters</h2>
<p>AirScout information helps operators evaluate AP windows, aircraft scatter timing and candidate stations during VHF/UHF/SHF contests.</p>
<h2>Airplane scatter in the operator workflow</h2>
<p>Aircraft reflections can create short but valuable contact opportunities.</p>
<p>KST4Contest helps combine ON4KST chat activity with AirScout-based propagation awareness.</p>
<h2>From candidate to sked decision</h2>
<p>AirScout information can support the decision whether a candidate station should be called immediately, scheduled later or monitored for a better window.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -100,6 +96,8 @@
<a class="button secondary" href="/features/timeline/">Timeline View</a>
@@ -116,6 +114,8 @@
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
@@ -139,6 +139,8 @@
+15 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>Dual Chat Categories</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/dual-chat/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="Dual Chat Categories">
<meta property="og:description" content="Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/dual-chat/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -64,16 +64,12 @@
<article class="card content-card">
<div class="feature-icon large">💬</div>
<h2>Why it matters</h2>
<p>Dual category support gives contest operators better overview when working across multiple ON4KST chat rooms.</p>
<h2>Two categories, one workflow</h2>
<p>KST4Contest can operate with two ON4KST chat categories at once.</p>
<p>This is useful when contest activity spans VHF/UHF and microwave operation.</p>
<h2>Less window switching</h2>
<p>The operator can keep more information visible without constantly changing tools.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -94,6 +90,8 @@
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
@@ -119,6 +117,8 @@
+14 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>DXCluster Server</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/dx-cluster/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="DXCluster Server">
<meta property="og:description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/dx-cluster/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<meta name="twitter:title" content="DXCluster Server">
<meta name="twitter:description" content="KST4Contest includes DXCluster functionality to support situational awareness during contest operation.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -64,16 +64,11 @@
<article class="card content-card">
<div class="feature-icon large">📡</div>
<h2>Why it matters</h2>
<p>KST4Contest includes DXCluster functionality to support situational awareness during contest operation.</p>
<h2>More situational awareness</h2>
<p>DXCluster information can support contest operators by adding another source of activity information.</p>
<h2>Integrated workflow</h2>
<p>The goal is not to open another isolated tool, but to connect activity information with the wider KST4Contest workflow.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -102,6 +97,8 @@
<a class="button secondary" href="/features/log-sync/">Log Synchronization</a>
@@ -114,6 +111,8 @@
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
+8
View File
@@ -66,6 +66,14 @@
<section class="section">
<div class="grid">
<article class="card feature-card">
<div class="feature-icon"></div>
<p class="eyebrow"></p>
<h3><a href="/features/">KST4Contest Features</a></h3>
<p></p>
<a href="/features/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">🎯</div>
<p class="eyebrow">Contest Workflow</p>
+15 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>Log Synchronization</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/log-sync/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="Log Synchronization">
<meta property="og:description" content="Log synchronization helps KST4Contest understand worked stations, active bands and contest context.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/log-sync/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<meta name="twitter:title" content="Log Synchronization">
<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">
</head>
@@ -64,16 +64,12 @@
<article class="card content-card">
<div class="feature-icon large">🔄</div>
<h2>Why it matters</h2>
<p>Log synchronization helps KST4Contest understand worked stations, active bands and contest context.</p>
<h2>Connect chat and logging</h2>
<p>Contest operation is faster when chat information and log state are connected.</p>
<p>KST4Contest can use logger information to improve workflow awareness.</p>
<h2>Worked and band awareness</h2>
<p>Log synchronization helps the client understand which stations and bands are relevant.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -94,6 +90,8 @@
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
@@ -121,6 +119,8 @@
+14 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>Macros and Variables</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/macros/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="Macros and Variables">
<meta property="og:description" content="Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/macros/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -64,16 +64,11 @@
<article class="card content-card">
<div class="feature-icon large"></div>
<h2>Why it matters</h2>
<p>Macros reduce repetitive typing and help operators respond quickly during active ON4KST contest sessions.</p>
<h2>Faster messages</h2>
<p>Macros reduce repetitive typing during active contest operation.</p>
<h2>More consistent operation</h2>
<p>Variables help keep messages structured and reduce manual errors.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -100,6 +95,8 @@
<a class="button secondary" href="/features/sked-reminder/">Sked Reminder</a>
@@ -121,6 +118,8 @@
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>Priority Score System</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/priority-score/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="Priority Score System">
<meta property="og:description" content="KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/priority-score/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -65,15 +65,11 @@
<div class="feature-icon large">🎯</div>
<h2>Why it matters</h2>
<p>KST4Contest ranks stations by activity, direction, sked context, band information, QRG hints and operator workflow signals.</p>
<p>During active VHF, UHF and microwave contests, relevant stations can disappear quickly in busy ON4KST chat traffic.</p>
<p>The Priority Score System helps operators focus on stations that are more likely to be useful during contest operation.</p>
<h2>Built for contest decisions</h2>
<p>KST4Contest is not just a chat viewer. It evaluates contest-relevant context and helps turn chat activity into better operating decisions.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -104,6 +100,8 @@
<a class="button secondary" href="/features/timeline/">Timeline View</a>
@@ -122,6 +120,8 @@
<a class="button secondary" href="/features/airscout/">AirScout Integration</a>
@@ -143,6 +143,8 @@
+17 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>Sked Reminder</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/sked-reminder/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="Sked Reminder">
<meta property="og:description" content="KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/sked-reminder/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -64,16 +64,12 @@
<article class="card content-card">
<div class="feature-icon large">🔔</div>
<h2>Why it matters</h2>
<p>KST4Contest keeps skeds in focus while the operator handles chat traffic, logging, bands and aircraft scatter timing.</p>
<h2>Never lose important skeds</h2>
<p>During active contests, it is easy to miss a planned contact while handling chat traffic, logging and band changes.</p>
<p>Sked Reminder keeps scheduled contacts visible.</p>
<h2>Built for real contest pressure</h2>
<p>The workflow supports time-critical operation where missing a few minutes can mean missing a QSO.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -94,6 +90,8 @@
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
@@ -113,6 +111,8 @@
@@ -135,6 +135,8 @@
+15 -15
View File
@@ -2,20 +2,20 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>{{ feature.title }} | KST4Contest</title>
<title>Timeline View</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="{{ feature.summary }}">
<meta name="description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/timeline/">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ feature.title }} | KST4Contest">
<meta property="og:description" content="{{ feature.summary }}">
<meta property="og:title" content="Timeline View">
<meta property="og:description" content="The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/timeline/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="{{ feature.title }} | KST4Contest">
<meta name="twitter:description" content="{{ feature.summary }}">
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
@@ -64,16 +64,12 @@
<article class="card content-card">
<div class="feature-icon large">⏱️</div>
<h2>Why it matters</h2>
<p>The timeline view helps operators understand short propagation windows and candidate timing during active contest operation.</p>
<h2>Timing matters</h2>
<p>Many VHF/UHF/SHF opportunities are short-lived.</p>
<p>The Timeline View helps operators see upcoming timing windows instead of keeping everything in mind manually.</p>
<h2>Designed for fast awareness</h2>
<p>The timeline supports quick decisions during busy contest operation.</p>
<h2>Built for contest operation</h2>
<p>
This feature supports real VHF, UHF and SHF contest workflows where timing,
awareness and fast decisions matter. It is part of the broader KST4Contest
approach: ON4KST chat should not just be displayed, it should actively support
contest operation.
</p>
<h2>Keywords</h2>
@@ -96,6 +92,8 @@
<a class="button secondary" href="/features/airscout/">AirScout Integration</a>
@@ -114,6 +112,8 @@
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
+60 -1
View File
@@ -76,8 +76,57 @@
<span></span><span></span><span></span>
<strong>KST4Contest workflow</strong>
</div>
<div class="mock-grid">
<div class="mini-card">
<strong> KST4Contest Features</strong>
<small></small>
</div>
<div class="mini-card">
<strong>🎯 Priority Score System</strong>
<small>Find the most promising stations faster using contest-aware candidate scoring.</small>
</div>
<div class="mini-card">
<strong>✈️ AirScout Integration</strong>
<small>Use aircraft scatter awareness directly inside your ON4KST contest workflow.</small>
</div>
<div class="mini-card">
<strong>⏱️ Timeline View</strong>
<small>See upcoming AP windows and candidate timing in a compact contest timeline.</small>
</div>
<div class="mini-card">
<strong>🔔 Sked Reminder</strong>
<small>Keep scheduled contacts visible and avoid missing time-critical skeds.</small>
</div>
<div class="mini-card">
<strong>🔄 Log Synchronization</strong>
<small>Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</small>
</div>
</div>
</div>
</section>
@@ -86,11 +135,21 @@
<div class="section-heading">
<p class="eyebrow">Powerful features</p>
<h2>Everything you need for contest success</h2>
<p>Every feature is designed to reduce operator workload and improve decision speed during real contest operation.</p>
<p>
Every feature is designed to reduce operator workload and improve decision speed during real contest operation.
</p>
</div>
<div class="grid">
<article class="card feature-card">
<div class="feature-icon"></div>
<p class="eyebrow"></p>
<h3><a href="/features/">KST4Contest Features</a></h3>
<p></p>
<a href="/features/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">🎯</div>
<p class="eyebrow">Contest Workflow</p>
+21
View File
@@ -33,4 +33,25 @@
<url>
<loc>https://kst4contest.hamradioonline.de/features/priority-score/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/airscout/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/timeline/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/sked-reminder/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/log-sync/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/dual-chat/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/dx-cluster/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/macros/</loc>
</url>
</urlset>
+7 -2
View File
@@ -26,12 +26,15 @@ description: KST4Contest is a modern ON4KST chat client built for VHF, UHF and S
<span></span><span></span><span></span>
<strong>KST4Contest workflow</strong>
</div>
<div class="mock-grid">
{% for feature in features | slice(0, 6) %}
{% for feature in collections.features %}
{% if loop.index <= 6 %}
<div class="mini-card">
<strong>{{ feature.data.icon }} {{ feature.data.title }}</strong>
<small>{{ feature.data.summary }}</small>
</div>
{% endif %}
{% endfor %}
</div>
</div>
@@ -41,7 +44,9 @@ description: KST4Contest is a modern ON4KST chat client built for VHF, UHF and S
<div class="section-heading">
<p class="eyebrow">Powerful features</p>
<h2>Everything you need for contest success</h2>
<p>Every feature is designed to reduce operator workload and improve decision speed during real contest operation.</p>
<p>
Every feature is designed to reduce operator workload and improve decision speed during real contest operation.
</p>
</div>
<div class="grid">