25 Commits

Author SHA1 Message Date
Rsclub2_2 4a34e28a84 fix Problems with sendfield again #56 2026-07-08 21:09:02 +02:00
Rsclub2_2 38ef50cee8 Revert version bump to 1.42, set to 1.41.1 for upcoming hotfix 2026-07-08 20:52:58 +02:00
Marc Froehlich d45a637d00 Fixed symbol of the show on map -button 2026-07-08 20:35:13 +02:00
Marc Froehlich 1ec2b1a450 Prevent periodic ChatMember refreshes from overwriting manually typed send text, while keeping /cq auto-fill for real user selections. Also ensure /cq messages are sent in the correct chat category and improve text/QTF/QRB filter behavior. 2026-07-08 20:26:44 +02:00
Marc Froehlich 19e8cff6b6 Fix send input selection handling 2026-07-08 20:15:49 +02:00
Rsclub2_2 62999cfed8 Update Nightly Pipeline to run less often, to not put to much stress on Servers 2026-07-07 17:08:13 +02:00
Rsclub2_2 49524146e8 Changed to direct to people to the new Website 2026-07-07 17:01:29 +02:00
Rsclub2_2 dd2ac3bc69 Remove Node_modules as not needed vendored
also changed few Things about Website
2026-07-07 14:05:47 +02:00
Marc Froehlich 098dd31b58 Add legal, privacy, contact and roadmap pages 2026-07-07 01:46:33 +02:00
Marc Froehlich 8ecbf7dfa0 Add legal, privacy, contact and roadmap pages 2026-07-07 01:41:28 +02:00
Marc Froehlich 1b30de34cc Improve download page guidance 2026-07-07 01:24:35 +02:00
Marc Froehlich 65b2e561f4 Add social preview metadata 2026-07-07 01:14:19 +02:00
Marc Froehlich 6907af5c81 Add structured data to feature pages 2026-07-07 01:10:36 +02:00
Marc Froehlich 59b8e2fbbb Improve XML sitemap metadata 2026-07-07 01:07:02 +02:00
Marc Froehlich 5838d3a999 Add RSS feed for news 2026-07-07 01:03:11 +02:00
Marc Froehlich 6d1e08711a Add Markdown-based news content model 2026-07-07 00:51:36 +02:00
Marc Froehlich 67b91a766a Add cache busting for website assets 2026-07-07 00:43:12 +02:00
Marc Froehlich f83cdbd804 Improve cross-browser visual design 2026-07-07 00:36:46 +02:00
Marc Froehlich 9359568a33 Add ordered and featured feature collections 2026-07-07 00:23:45 +02:00
Marc Froehlich 8f46909ebf Add ordered and featured feature collections 2026-07-07 00:12:20 +02:00
Marc Froehlich 59638f6ab3 Move features to Markdown content model 2026-07-07 00:06:47 +02:00
Marc Froehlich 59aade8004 Move features to Markdown content model 2026-07-07 00:01:59 +02:00
Marc Froehlich 42255e2b41 Add direct download links for release assets 2026-07-06 23:33:54 +02:00
Marc Froehlich 217c7e8451 Refactor website into data-driven content model 2026-07-06 23:27:06 +02:00
Marc Froehlich a99d611ea8 Introduce feature content model 2026-07-06 23:03:17 +02:00
1499 changed files with 7506 additions and 205707 deletions
+6 -2
View File
@@ -4,8 +4,12 @@ on:
push:
branches:
- main
schedule:
- cron: "20 2 * * *"
paths:
- "src/**"
- "pom.xml"
- "mvnw"
- "mvnw.cmd"
- ".github/workflows/nightly-artifacts.yml"
workflow_dispatch:
env:
+3
View File
@@ -35,3 +35,6 @@ dist/
#zip files for local backups
*.zip
# node Modules in website
website/node_modules/
+5 -1
View File
@@ -1,6 +1,10 @@
# KST4Contest
KST4Contest (also known as pratiKST) is a Java-based chat client for ON4KST, focused on VHF/UHF/SHF contest operation.
KST4Contest (also known as pratiKST) is a Java-based chat client for [ON4KST](http://www.on4kst.com/chat), focused on VHF/UHF/SHF contest operation.
## Website
The offical Website of KST4Contest is now instead of [do5amf.funkerportal.de](https://do5amf.funkerportal.de) the new website [here](https://kst4contest.hamradioonline.de) [https://kst4contest.hamradioonline.de](https://kst4contest.hamradioonline.de)
## Documentation
+1 -1
View File
@@ -6,7 +6,7 @@
<groupId>de.x08</groupId>
<artifactId>praktiKST</artifactId>
<version>1.42.0-nightly</version>
<version>1.41.1-nightly</version>
<name>praktiKST</name>
@@ -20,7 +20,7 @@ public class ApplicationConstants {
/**
* Name of file to store preferences in.
*/
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.42;
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.411;
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://do5amf.funkerportal.de/kst4ContestVersionInfo.xml";
public static final String VERSIONINFDOWNLOADEDLOCALFILE = "kst4ContestVersionInfo.xml";
File diff suppressed because it is too large Load Diff
+35
View File
@@ -27,6 +27,41 @@ function rewriteManualLinks(content, lang) {
}
module.exports = function (eleventyConfig) {
eleventyConfig.addFilter("dateToIso", function (dateObj) {
return new Date(dateObj).toISOString().split("T")[0];
});
eleventyConfig.addFilter("dateToRfc822", function (dateObj) {
return new Date(dateObj).toUTCString();
});
eleventyConfig.addFilter("readableDate", function (dateObj) {
return new Intl.DateTimeFormat("en", {
year: "numeric",
month: "long",
day: "numeric"
}).format(dateObj);
});
eleventyConfig.addCollection("sortedFeatures", function (collectionApi) {
return collectionApi.getFilteredByTag("features").sort((a, b) => {
return (a.data.order || 999) - (b.data.order || 999);
});
});
eleventyConfig.addCollection("featuredFeatures", function (collectionApi) {
return collectionApi.getFilteredByTag("features")
.filter(item => item.data.featured)
.sort((a, b) => {
return (a.data.order || 999) - (b.data.order || 999);
});
});
eleventyConfig.addFilter("whereTag", function(collection, tag) {
return collection.filter(item => item.data.tags && item.data.tags.includes(tag));
});
eleventyConfig.addPassthroughCopy({ "src/assets": "assets" });
const md = markdownIt({
+122
View File
@@ -0,0 +1,122 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>About KST4Contest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="About KST4Contest and its contest-oriented ON4KST workflow.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/about/">
<meta property="og:type" content="website">
<meta property="og:title" content="About KST4Contest">
<meta property="og:description" content="About KST4Contest and its contest-oriented ON4KST workflow.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/about/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="About KST4Contest">
<meta name="twitter:description" content="About KST4Contest and its contest-oriented ON4KST workflow.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">About</p>
<h1>Built for real contest operation.</h1>
<p class="lead">
KST4Contest was created to turn ON4KST chat activity into actionable contest workflow.
</p>
</section>
<section class="section narrow">
<article class="card content-card">
<h2>Why KST4Contest exists</h2>
<p>
Generic chat clients display messages. KST4Contest goes further:
it helps operators identify candidates, manage skeds, use AirScout timing,
synchronize with loggers and reduce workload during VHF/UHF/SHF contests.
</p>
<h2>Open source and practical</h2>
<p>
The project is open source and focused on practical contest station workflows.
Features are designed around real operating pressure, not theoretical UI concepts.
</p>
</article>
</section>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+435 -38
View File
@@ -1,23 +1,98 @@
:root {
--bg: #0f172a;
--panel: #111827;
--panel2: #1f2937;
--text: #e5e7eb;
--muted: #9ca3af;
--bg: #050816;
--bg2: #0b1224;
--panel: rgba(15, 23, 42, 0.78);
--panel2: rgba(30, 41, 59, 0.72);
--border: rgba(148, 163, 184, 0.22);
--text: #f8fafc;
--muted: #aab6ca;
--soft: #64748b;
--accent: #38bdf8;
--accent2: #a78bfa;
--accent2: #a855f7;
--accent3: #22c55e;
--shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
background: var(--bg);
}
body {
margin: 0;
background: radial-gradient(circle at top left, #1e293b, var(--bg));
min-height: 100vh;
background:
radial-gradient(circle at 14% 12%, rgba(168, 85, 247, 0.30), transparent 28%),
radial-gradient(circle at 82% 16%, rgba(56, 189, 248, 0.24), transparent 30%),
radial-gradient(circle at 50% 85%, rgba(34, 197, 94, 0.11), transparent 35%),
linear-gradient(180deg, #050816 0%, #07111f 100%);
color: var(--text);
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.6;
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.65;
overflow-x: hidden;
}
body::before {
content: "";
position: fixed;
inset: -20%;
z-index: -3;
background:
radial-gradient(circle at 20% 20%, rgba(168, 85, 247, 0.22), transparent 28%),
radial-gradient(circle at 78% 18%, rgba(56, 189, 248, 0.18), transparent 30%),
radial-gradient(circle at 45% 80%, rgba(34, 197, 94, 0.10), transparent 26%);
filter: blur(48px);
transform: translateZ(0);
}
body::after {
content: "";
position: fixed;
inset: 0;
z-index: -2;
pointer-events: none;
background-image:
linear-gradient(rgba(255,255,255,0.038) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.038) 1px, transparent 1px);
background-size: 54px 54px;
-webkit-mask-image: radial-gradient(circle at center, black 0%, black 46%, transparent 78%);
mask-image: radial-gradient(circle at center, black 0%, black 46%, transparent 78%);
}
.site-bg {
position: fixed;
inset: 0;
z-index: -1;
pointer-events: none;
background:
linear-gradient(180deg, rgba(5, 8, 22, 0.10), rgba(5, 8, 22, 0.84)),
radial-gradient(circle at 8% 24%, rgba(168, 85, 247, 0.18), transparent 26%),
radial-gradient(circle at 82% 20%, rgba(56, 189, 248, 0.16), transparent 30%);
}
.site-bg::before {
content: "";
position: absolute;
inset: 0;
background:
radial-gradient(circle at top, transparent 0%, rgba(5, 8, 22, 0.42) 72%),
linear-gradient(90deg, rgba(5, 8, 22, 0.25), transparent 50%, rgba(5, 8, 22, 0.25));
}
.site-bg::after {
content: "";
position: absolute;
inset: 0;
background-image:
radial-gradient(circle at 1px 1px, rgba(255,255,255,0.10) 1px, transparent 0);
background-size: 28px 28px;
opacity: 0.11;
-webkit-mask-image: radial-gradient(circle at 50% 22%, black 0%, transparent 68%);
mask-image: radial-gradient(circle at 50% 22%, black 0%, transparent 68%);
}
a {
@@ -25,72 +100,288 @@ a {
text-decoration: none;
}
a:hover {
color: white;
}
.site-header {
position: sticky;
top: 0;
z-index: 10;
display: flex;
justify-content: space-between;
gap: 24px;
align-items: center;
padding: 24px 7vw;
padding: 18px 6vw;
background: rgba(5, 8, 22, 0.76);
-webkit-backdrop-filter: blur(18px);
backdrop-filter: blur(18px);
border-bottom: 1px solid var(--border);
}
.brand {
font-weight: 800;
font-size: 1.25rem;
display: flex;
gap: 12px;
align-items: center;
color: white;
}
nav {
.brand-mark {
display: grid;
place-items: center;
width: 40px;
height: 40px;
border-radius: 14px;
background:
radial-gradient(circle at 30% 20%, white, transparent 22%),
linear-gradient(135deg, var(--accent), var(--accent2));
box-shadow:
0 0 26px rgba(168, 85, 247, 0.45),
0 0 50px rgba(56, 189, 248, 0.18);
}
.brand strong {
display: block;
font-size: 1.05rem;
letter-spacing: 0.02em;
}
.brand small {
display: block;
color: var(--muted);
font-size: 0.78rem;
margin-top: -4px;
}
.site-nav {
display: flex;
gap: 18px;
align-items: center;
gap: 16px;
flex-wrap: wrap;
}
nav a {
.site-nav a {
color: var(--muted);
font-size: 0.95rem;
}
nav a:hover {
.site-nav a:hover {
color: white;
}
.nav-cta {
padding: 9px 14px;
border-radius: 999px;
color: white !important;
background: linear-gradient(135deg, var(--accent), var(--accent2));
box-shadow: 0 0 22px rgba(56, 189, 248, 0.28);
}
.hero {
padding: 90px 7vw 70px;
max-width: 1100px;
position: relative;
padding: 92px 6vw 62px;
max-width: 1180px;
}
.hero::before {
content: "";
position: absolute;
inset: -160px -12vw auto -12vw;
height: 420px;
z-index: -1;
pointer-events: none;
background:
radial-gradient(circle at 24% 40%, rgba(168, 85, 247, 0.20), transparent 36%),
radial-gradient(circle at 62% 30%, rgba(56, 189, 248, 0.14), transparent 40%);
filter: blur(74px);
}
.hero-split {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
gap: 42px;
align-items: center;
max-width: 1500px;
}
.hero h1 {
font-size: clamp(2.4rem, 6vw, 5rem);
line-height: 1.02;
margin: 0 0 24px;
margin: 0 0 22px;
font-size: clamp(3rem, 8vw, 6.5rem);
line-height: 0.95;
letter-spacing: -0.07em;
background: linear-gradient(90deg, #ffffff 0%, #7dd3fc 40%, #a855f7 78%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.hero p {
font-size: 1.25rem;
.hero .lead,
.hero > p,
.section-heading p,
.cta-panel p {
color: var(--muted);
max-width: 760px;
font-size: 1.18rem;
max-width: 850px;
}
.badge,
.eyebrow {
display: inline-flex;
width: fit-content;
align-items: center;
gap: 8px;
color: #e9d5ff;
background: rgba(168, 85, 247, 0.13);
border: 1px solid rgba(168, 85, 247, 0.34);
padding: 6px 12px;
border-radius: 999px;
text-transform: uppercase;
letter-spacing: 0.08em;
font-size: 0.74rem;
font-weight: 800;
box-shadow: 0 0 22px rgba(168, 85, 247, 0.12);
}
.actions {
display: flex;
gap: 16px;
margin-top: 32px;
gap: 14px;
margin-top: 30px;
flex-wrap: wrap;
}
.button {
padding: 13px 20px;
border-radius: 999px;
background: var(--accent);
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 46px;
padding: 12px 18px;
border-radius: 14px;
color: #020617;
font-weight: 700;
background: linear-gradient(135deg, var(--accent), var(--accent2));
font-weight: 800;
box-shadow:
0 16px 44px rgba(56, 189, 248, 0.25),
inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.button:hover {
color: white;
transform: translateY(-1px);
}
.button.secondary {
background: var(--panel2);
color: white;
background: rgba(30, 41, 59, 0.85);
border: 1px solid var(--border);
box-shadow: none;
}
.button.ghost {
color: white;
background: transparent;
border: 1px solid var(--border);
box-shadow: none;
}
.hero-panel,
.card,
.cta-panel {
background:
linear-gradient(180deg, rgba(255,255,255,0.045), transparent 42%),
var(--panel);
border: 1px solid var(--border);
border-radius: 26px;
box-shadow: var(--shadow);
-webkit-backdrop-filter: blur(16px);
backdrop-filter: blur(16px);
}
.hero-panel {
position: relative;
overflow: hidden;
transform: perspective(1200px) rotateY(-5deg) rotateX(2deg);
}
.hero-panel::before {
content: "";
position: absolute;
inset: -1px;
pointer-events: none;
background:
linear-gradient(135deg, rgba(56, 189, 248, 0.45), transparent 35%, rgba(168, 85, 247, 0.38));
opacity: 0.18;
}
.terminal-bar {
display: flex;
gap: 8px;
align-items: center;
padding: 14px 16px;
border-bottom: 1px solid var(--border);
background: rgba(2, 6, 23, 0.74);
}
.terminal-bar span {
width: 11px;
height: 11px;
border-radius: 50%;
background: var(--accent2);
}
.terminal-bar span:nth-child(2) {
background: #f59e0b;
}
.terminal-bar span:nth-child(3) {
background: var(--accent3);
}
.terminal-bar strong {
margin-left: 8px;
color: var(--muted);
font-size: 0.85rem;
}
.mock-grid {
display: grid;
gap: 12px;
padding: 18px;
}
.mini-card {
padding: 14px;
border-radius: 16px;
background: rgba(15, 23, 42, 0.88);
border: 1px solid rgba(148, 163, 184, 0.16);
}
.mini-card strong,
.mini-card small {
display: block;
}
.mini-card small {
color: var(--muted);
margin-top: 4px;
}
.section {
padding: 40px 7vw;
padding: 52px 6vw;
}
.section.narrow {
max-width: 1040px;
}
.section-heading {
margin-bottom: 26px;
}
.section h2 {
font-size: clamp(2rem, 4vw, 3.4rem);
line-height: 1.05;
margin: 12px 0 14px;
letter-spacing: -0.04em;
}
.grid {
@@ -100,21 +391,79 @@ nav a:hover {
}
.card {
background: rgba(17, 24, 39, 0.82);
border: 1px solid rgba(148, 163, 184, 0.18);
border-radius: 22px;
padding: 24px;
transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}
.card h3 {
.card:hover {
transform: translateY(-4px);
border-color: rgba(56, 189, 248, 0.45);
background:
linear-gradient(180deg, rgba(255,255,255,0.055), transparent 42%),
rgba(15, 23, 42, 0.92);
box-shadow:
0 26px 90px rgba(0, 0, 0, 0.50),
0 0 30px rgba(56, 189, 248, 0.08);
}
.card h3,
.card h2 {
margin-top: 0;
}
.site-footer {
padding: 40px 7vw;
.card p {
color: var(--muted);
}
.feature-icon {
font-size: 2rem;
margin-bottom: 14px;
}
.feature-icon.large {
font-size: 4rem;
}
.content-card {
max-width: 980px;
}
.tag-list {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.tag-list span {
padding: 7px 11px;
border-radius: 999px;
color: var(--muted);
background: rgba(15, 23, 42, 0.85);
border: 1px solid var(--border);
}
.download-card {
min-height: 220px;
}
.screenshot-placeholder {
display: grid;
place-items: center;
min-height: 180px;
margin-bottom: 16px;
border-radius: 18px;
background:
linear-gradient(135deg, rgba(56, 189, 248, 0.20), rgba(168, 85, 247, 0.20)),
rgba(2, 6, 23, 0.7);
border: 1px solid var(--border);
color: white;
font-weight: 800;
}
.cta-panel {
padding: clamp(28px, 5vw, 60px);
}
.manual-content {
max-width: 980px;
}
@@ -148,3 +497,51 @@ nav a:hover {
padding: 10px;
text-align: left;
}
.site-footer {
padding: 42px 6vw;
color: var(--muted);
border-top: 1px solid var(--border);
}
@media (max-width: 900px) {
.hero-split {
grid-template-columns: 1fr;
}
.hero-panel {
transform: none;
}
.site-header {
align-items: flex-start;
flex-direction: column;
}
}
@media (prefers-reduced-motion: no-preference) {
.button,
.card {
transition: all 180ms ease;
}
}
.footer-grid {
display: grid;
grid-template-columns: 2fr repeat(3, 1fr);
gap: 24px;
}
.footer-grid strong {
color: white;
}
.footer-grid p {
margin: 8px 0;
}
@media (max-width: 800px) {
.footer-grid {
grid-template-columns: 1fr;
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

+125
View File
@@ -0,0 +1,125 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Contact | KST4Contest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Contact options for KST4Contest.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/contact/">
<meta property="og:type" content="website">
<meta property="og:title" content="Contact | KST4Contest">
<meta property="og:description" content="Contact options for KST4Contest.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/contact/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Contact | KST4Contest">
<meta name="twitter:description" content="Contact options for KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">Contact</p>
<h1>Contact</h1>
<p class="lead">Get in touch, report issues or contribute to KST4Contest.</p>
</section>
<section class="section">
<div class="grid">
<article class="card">
<h3>GitHub Issues</h3>
<p>Report bugs, request features or discuss technical problems.</p>
<a href="https://github.com/praktimarc/kst4contest/issues">Open issues →</a>
</article>
<article class="card">
<h3>GitHub Repository</h3>
<p>Browse source code, releases and documentation.</p>
<a href="https://github.com/praktimarc/kst4contest">Open repository →</a>
</article>
<article class="card">
<h3>Email</h3>
<p>For legal or website-related contact.</p>
<a href="https://groups.google.com/g/kst4contest">Join the mailing list →</a>
</article>
</div>
</section>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+218 -14
View File
@@ -5,7 +5,6 @@
<title>Download KST4Contest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Download KST4Contest releases for Windows, Linux and macOS.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/download/">
<meta property="og:type" content="website">
@@ -18,40 +17,245 @@
<meta name="twitter:title" content="Download KST4Contest">
<meta name="twitter:description" content="Download KST4Contest releases for Windows, Linux and macOS.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Download KST4Contest</h1>
<p>
Official builds are published through GitHub Releases for Windows, Linux
and macOS.
<p class="badge">Download</p>
<h1>Get KST4Contest</h1>
<p class="lead">
Choose the package for your operating system. Official builds are published through GitHub Releases.
</p>
<div class="actions">
<a class="button" href="https://github.com/praktimarc/kst4contest/releases/latest">Latest Release</a>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases">All Releases</a>
<a class="button" href="https://github.com/praktimarc/kst4contest/releases/latest">Latest release on GitHub</a>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases">All releases</a>
</div>
</section>
<section class="section">
<div class="section-heading">
<p class="eyebrow">Recommended downloads</p>
<h2>Pick your platform</h2>
</div>
<div class="grid">
<article class="card download-card">
<div class="feature-icon">🪟</div>
<p class="badge">Recommended</p>
<h3>Windows</h3>
<p><strong>ZIP x64</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">🐧</div>
<p class="badge">Recommended</p>
<h3>Linux</h3>
<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>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest/releases/download/v1.41.0/de.x08.KST4Contest.flatpakref">Download →</a>
</article>
<article class="card download-card">
<div class="feature-icon">🐧</div>
<h3>Linux</h3>
<p><strong>AppImage x86_64</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">📦</div>
<h3>Debian / Ubuntu</h3>
<p><strong>DEB amd64</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">📦</div>
<h3>Fedora</h3>
<p><strong>RPM x86_64</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">📦</div>
<h3>Arch Linux</h3>
<p><strong>pkg.tar.zst</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">🍎</div>
<h3>macOS Apple Silicon</h3>
<p><strong>DMG arm64</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">🍎</div>
<h3>macOS Intel</h3>
<p><strong>DMG x86_64</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">📘</div>
<h3>Manual English</h3>
<p><strong>PDF</strong></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>
</article>
<article class="card download-card">
<div class="feature-icon">📘</div>
<h3>Manual German</h3>
<p><strong>PDF</strong></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>
</article>
</div>
</section>
<section class="section">
<div class="cta-panel">
<p class="eyebrow">Not sure?</p>
<h2>Which file should I use?</h2>
<p>
Windows users usually want the ZIP package. Linux users are best served by the Flatpak,
which auto-updates and works across distributions; the AppImage or a native DEB/RPM/Arch
package are alternatives if preferred. The PDF manuals are attached to the same GitHub release.
</p>
<div class="actions">
<a class="button" href="/manual/en/installation/">Installation guide</a>
<a class="button secondary" href="/faq/">FAQ</a>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+61 -8
View File
@@ -5,7 +5,6 @@
<title>KST4Contest FAQ</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Frequently asked questions about KST4Contest, ON4KST contest operation, AirScout integration and VHF/UHF/SHF contest workflow.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/faq/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -109,7 +136,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+185 -29
View File
@@ -2,66 +2,222 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>AirScout Integration for ON4KST Contest Operation</title>
<title>AirScout Integration</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest integrates AirScout and airplane scatter workflow support for VHF, UHF and SHF contest operators.">
<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="AirScout Integration for ON4KST Contest Operation">
<meta property="og:description" content="KST4Contest integrates AirScout and airplane scatter workflow support for VHF, UHF and SHF contest operators.">
<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="AirScout Integration for ON4KST Contest Operation">
<meta name="twitter:description" content="KST4Contest integrates AirScout and airplane scatter workflow support for VHF, UHF and SHF contest operators.">
<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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>AirScout integration for airplane scatter contest workflow.</h1>
<p>
KST4Contest connects ON4KST chat operation with AirScout-based airplane scatter awareness.
</p>
<p class="badge">Aircraft Scatter · since 1.26</p>
<h1>AirScout Integration</h1>
<p class="lead">Use aircraft scatter awareness directly inside your ON4KST contest workflow.</p>
</section>
<section class="section">
<div class="card">
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">✈️</div>
<h2>Airplane scatter in the operator workflow</h2>
<p>
For VHF, UHF and microwave contests, aircraft reflections can create short but valuable contact opportunities.
KST4Contest is designed to help operators use this information directly while working with ON4KST chat traffic.
</p>
<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>Keywords</h2>
<div class="tag-list">
<span>AirScout</span>
<span>airplane scatter</span>
<span>aircraft scatter</span>
<span>VHF contest</span>
<h2>From chat candidate to sked decision</h2>
<p>
AirScout information can support the decision whether a candidate station is worth scheduling immediately
or should be monitored for a later propagation window.
</p>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/timeline/">Timeline View</a>
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
<a class="button secondary" href="/features/sked-reminder/">Sked Reminder</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "AirScout Integration",
"description": "Use aircraft scatter awareness directly inside your ON4KST contest workflow.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/airscout/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+199
View File
@@ -0,0 +1,199 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Dual Chat Categories</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<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="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="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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">ON4KST Chat · since 1.26</p>
<h1>Dual Chat Categories</h1>
<p class="lead">Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">💬</div>
<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>Keywords</h2>
<div class="tag-list">
<span>ON4KST</span>
<span>dual chat</span>
<span>microwave contest</span>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
<a class="button secondary" href="/features/log-sync/">Log Synchronization</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Dual Chat Categories",
"description": "Operate in two ON4KST categories at once, for example VHF/UHF and microwave.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/dual-chat/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,198 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>DXCluster Server</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<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="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="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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">Radio Workflow · since 1.23</p>
<h1>DXCluster Server</h1>
<p class="lead">Use DXCluster information as part of the wider contest operating workflow.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">📡</div>
<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>Keywords</h2>
<div class="tag-list">
<span>DXCluster</span>
<span>ham radio</span>
<span>contest</span>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/log-sync/">Log Synchronization</a>
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "DXCluster Server",
"description": "Use DXCluster information as part of the wider contest operating workflow.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/dx-cluster/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+137 -29
View File
@@ -4,73 +4,181 @@
<meta charset="utf-8">
<title>KST4Contest Features</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Explore the contest-optimized features of KST4Contest for ON4KST, VHF, UHF and SHF contest operation.">
<meta name="description" content="Contest-optimized ON4KST features for VHF, UHF and SHF operation.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/features/">
<meta property="og:type" content="website">
<meta property="og:title" content="KST4Contest Features">
<meta property="og:description" content="Explore the contest-optimized features of KST4Contest for ON4KST, VHF, UHF and SHF contest operation.">
<meta property="og:description" content="Contest-optimized ON4KST features for VHF, UHF and SHF operation.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/features/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="KST4Contest Features">
<meta name="twitter:description" content="Explore the contest-optimized features of KST4Contest for ON4KST, VHF, UHF and SHF contest 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=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Features built for serious VHF/UHF/SHF contest operation.</h1>
<p>
KST4Contest combines ON4KST chat, sked workflow, AirScout support,
priority candidate ranking, log synchronization and contest-focused operator tools.
<p class="badge">Features</p>
<h1>Contest tools, not just chat windows.</h1>
<p class="lead">
KST4Contest combines ON4KST chat, candidate scoring, AirScout workflow,
sked handling, log synchronization and operator decision support.
</p>
</section>
<section class="section">
<div class="grid">
<div class="card">
<h3><a href="/features/priority-score/">Priority Score</a></h3>
<p>Find promising stations faster with score-based candidate ranking.</p>
</div>
<div class="card">
<article class="card feature-card">
<div class="feature-icon">✈️</div>
<p class="eyebrow">Aircraft Scatter</p>
<h3><a href="/features/airscout/">AirScout Integration</a></h3>
<p>Use airplane scatter information directly inside the contest workflow.</p>
</div>
<p>Use aircraft scatter awareness directly inside your ON4KST contest workflow.</p>
<a href="/features/airscout/">Learn more →</a>
</article>
<div class="card">
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
<p>Keep scheduled contacts visible and avoid missing important timing windows.</p>
</div>
<article class="card feature-card">
<div class="feature-icon">💬</div>
<p class="eyebrow">ON4KST Chat</p>
<h3><a href="/features/dual-chat/">Dual Chat Categories</a></h3>
<p>Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</p>
<a href="/features/dual-chat/">Learn more →</a>
</article>
<div class="card">
<article class="card feature-card">
<div class="feature-icon">📡</div>
<p class="eyebrow">Radio Workflow</p>
<h3><a href="/features/dx-cluster/">DXCluster Server</a></h3>
<p>Use DXCluster information as part of the wider contest operating workflow.</p>
<a href="/features/dx-cluster/">Learn more →</a>
</article>
<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">Logger Integration</p>
<h3><a href="/features/log-sync/">Log Synchronization</a></h3>
<p>Integrate contest logging workflows with Win-Test and UCXLog.</p>
</div>
<p>Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</p>
<a href="/features/log-sync/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon"></div>
<p class="eyebrow">Operator Speed</p>
<h3><a href="/features/macros/">Macros and Variables</a></h3>
<p>Send recurring contest messages faster with configurable macros and variables.</p>
<a href="/features/macros/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">🎯</div>
<p class="eyebrow">Contest Workflow</p>
<h3><a href="/features/priority-score/">Priority Score System</a></h3>
<p>Find the most promising stations faster using contest-aware candidate scoring.</p>
<a href="/features/priority-score/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">🔔</div>
<p class="eyebrow">Sked Management</p>
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
<p>Keep scheduled contacts visible and avoid missing time-critical skeds.</p>
<a href="/features/sked-reminder/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">⏱️</div>
<p class="eyebrow">Contest Awareness</p>
<h3><a href="/features/timeline/">Timeline View</a></h3>
<p>See upcoming AP windows and candidate timing in a compact contest timeline.</p>
<a href="/features/timeline/">Learn more →</a>
</article>
</div>
</section>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+161 -28
View File
@@ -2,65 +2,198 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Log Synchronization with Win-Test and UCXLog</title>
<title>Log Synchronization</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest supports contest workflow integration with logging software such as Win-Test and UCXLog.">
<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="Log Synchronization with Win-Test and UCXLog">
<meta property="og:description" content="KST4Contest supports contest workflow integration with logging software such as Win-Test and UCXLog.">
<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="Log Synchronization with Win-Test and UCXLog">
<meta name="twitter:description" content="KST4Contest supports contest workflow integration with logging software such as Win-Test and UCXLog.">
<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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Log synchronization for contest workflow integration.</h1>
<p>
KST4Contest can support operating workflows with external contest loggers such as Win-Test and UCXLog.
</p>
<p class="badge">Logger Integration · since 1.31</p>
<h1>Log Synchronization</h1>
<p class="lead">Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</p>
</section>
<section class="section">
<div class="card">
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">🔄</div>
<h2>Connect chat and logging</h2>
<p>
Contest operation is faster when chat information and log state are connected.
KST4Contest is designed to support this workflow instead of treating ON4KST chat as an isolated window.
</p>
<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>Keywords</h2>
<div class="tag-list">
<span>Win-Test</span>
<span>UCXLog</span>
<span>contest logger</span>
<h2>Band and contact awareness</h2>
<p>
Log synchronization can help the client understand which stations and bands are relevant during the contest.
</p>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
<a class="button secondary" href="/features/dual-chat/">Dual Chat Categories</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Log Synchronization",
"description": "Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/log-sync/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+198
View File
@@ -0,0 +1,198 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Macros and Variables</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<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="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="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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">Operator Speed · since 1.0</p>
<h1>Macros and Variables</h1>
<p class="lead">Send recurring contest messages faster with configurable macros and variables.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large"></div>
<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>Keywords</h2>
<div class="tag-list">
<span>macros</span>
<span>ON4KST</span>
<span>operator workflow</span>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/sked-reminder/">Sked Reminder</a>
<a class="button secondary" href="/features/dual-chat/">Dual Chat Categories</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Macros and Variables",
"description": "Send recurring contest messages faster with configurable macros and variables.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/macros/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+188 -36
View File
@@ -2,74 +2,226 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Priority Score for ON4KST Contest Operation</title>
<title>Priority Score System</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest uses priority candidates and scoring to help VHF, UHF and SHF contest operators identify promising stations faster.">
<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="Priority Score for ON4KST Contest Operation">
<meta property="og:description" content="KST4Contest uses priority candidates and scoring to help VHF, UHF and SHF contest operators identify promising stations faster.">
<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="Priority Score for ON4KST Contest Operation">
<meta name="twitter:description" content="KST4Contest uses priority candidates and scoring to help VHF, UHF and SHF contest operators identify promising stations faster.">
<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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Priority Score for contest-focused ON4KST operation.</h1>
<p>
KST4Contest helps operators focus on the most promising stations instead of scanning
busy chat traffic manually.
</p>
<p class="badge">Contest Workflow · since 1.40</p>
<h1>Priority Score System</h1>
<p class="lead">Find the most promising stations faster using contest-aware candidate scoring.</p>
</section>
<section class="section">
<div class="card">
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">🎯</div>
<h2>Why it matters</h2>
<p>
During VHF, UHF and microwave contests, relevant stations can disappear quickly in active
ON4KST chat traffic. The priority candidate system helps highlight stations that are likely
worth attention based on contest-relevant 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>Contest-oriented signals</h2>
<p>
Candidate priority can take information such as activity, bands, QTF direction,
sked-related messages, known frequencies and workflow context into account.
</p>
<h2>Different from generic chat clients</h2>
<p>
KST4Contest is not only an ON4KST chat viewer. It is designed to support operator decisions
during contest operation.
</p>
<h2>Keywords</h2>
<div class="tag-list">
<span>ON4KST</span>
<span>VHF</span>
<span>UHF</span>
<span>SHF</span>
<span>contest</span>
<span>priority candidates</span>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/timeline/">Timeline View</a>
<a class="button secondary" href="/features/airscout/">AirScout Integration</a>
<a class="button secondary" href="/features/sked-reminder/">Sked Reminder</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Priority Score System",
"description": "Find the most promising stations faster using contest-aware candidate scoring.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/priority-score/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+183 -30
View File
@@ -2,67 +2,220 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sked Reminder for VHF UHF SHF Contests</title>
<title>Sked Reminder</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest includes sked reminder tools to help ON4KST contest operators keep scheduled contacts visible.">
<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="Sked Reminder for VHF UHF SHF Contests">
<meta property="og:description" content="KST4Contest includes sked reminder tools to help ON4KST contest operators keep scheduled contacts visible.">
<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="Sked Reminder for VHF UHF SHF Contests">
<meta name="twitter:description" content="KST4Contest includes sked reminder tools to help ON4KST contest operators keep scheduled contacts visible.">
<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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Sked reminders for time-critical contest contacts.</h1>
<p>
Keep scheduled contacts visible and reduce the risk of missing important VHF, UHF or SHF sked windows.
</p>
<p class="badge">Sked Management · since 1.40</p>
<h1>Sked Reminder</h1>
<p class="lead">Keep scheduled contacts visible and avoid missing time-critical skeds.</p>
</section>
<section class="section">
<div class="card">
<h2>Why sked reminders matter</h2>
<p>
During active contest periods, chat messages, log entries and aircraft scatter timing can easily distract operators.
KST4Contest helps keep important skeds in focus.
</p>
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">🔔</div>
<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>Keywords</h2>
<div class="tag-list">
<span>sked</span>
<span>ON4KST</span>
<span>contest reminder</span>
<h2>Designed for real contest operation</h2>
<p>
The reminder workflow supports operators who coordinate contacts through ON4KST while also watching bands,
aircraft scatter opportunities and logging software.
</p>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
<a class="button secondary" href="/features/airscout/">AirScout Integration</a>
<a class="button secondary" href="/features/timeline/">Timeline View</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Sked Reminder",
"description": "Keep scheduled contacts visible and avoid missing time-critical skeds.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/sked-reminder/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+199
View File
@@ -0,0 +1,199 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Timeline View</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<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="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="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?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">Contest Awareness · since 1.40</p>
<h1>Timeline View</h1>
<p class="lead">See upcoming AP windows and candidate timing in a compact contest timeline.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<div class="feature-icon large">⏱️</div>
<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>Keywords</h2>
<div class="tag-list">
<span>timeline</span>
<span>AP windows</span>
<span>airplane scatter</span>
</div>
<h2>Related features</h2>
<div class="actions">
<a class="button secondary" href="/features/airscout/">AirScout Integration</a>
<a class="button secondary" href="/features/priority-score/">Priority Score System</a>
</div>
</article>
</section>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Timeline View",
"description": "See upcoming AP windows and candidate timing in a compact contest timeline.",
"about": "KST4Contest",
"url": "https://kst4contest.hamradioonline.de/features/timeline/",
"author": {
"@type": "Person",
"name": "Praktimarc"
},
"publisher": {
"@type": "Organization",
"name": "KST4Contest"
}
}
</script>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>KST4Contest News</title>
<link>https://kst4contest.hamradioonline.de/</link>
<description>News and release updates for KST4Contest.</description>
<language>en</language>
<item>
<title>KST4Contest Website Launch</title>
<link>https://kst4contest.hamradioonline.de/news/2026-07-website-launch/</link>
<guid>https://kst4contest.hamradioonline.de/news/2026-07-website-launch/</guid>
<pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
<description>The new KST4Contest website is being built as a static, SEO-friendly product portal with GitHub-based documentation.</description>
</item>
</channel>
</rss>
+232 -40
View File
@@ -4,68 +4,239 @@
<meta charset="utf-8">
<title>KST4Contest Contest-Optimized ON4KST Chat Client</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF ham radio contest operation.">
<meta name="description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/">
<meta property="og:type" content="website">
<meta property="og:title" content="KST4Contest Contest-Optimized ON4KST Chat Client">
<meta property="og:description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF ham radio contest operation.">
<meta property="og:description" content="KST4Contest is a modern ON4KST chat client built for VHF, UHF and SHF contest operation.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<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 ham radio 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=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
<link rel="stylesheet" href="/assets/css/main.css">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Contest-optimized ON4KST chat for VHF, UHF and SHF operators.</h1>
<p>
KST4Contest is built for serious ham radio contest operation:
priority candidates, AirScout integration, sked reminders, band detection,
frequency detection, dual chat categories and workflow support for modern VHF/UHF/SHF contest stations.
<section class="hero hero-split">
<div>
<p class="badge">The contest-optimized ON4KST client</p>
<h1>KST4Contest</h1>
<p class="lead">
Work smarter. Make more QSOs. KST4Contest brings priority candidates,
AirScout workflow, sked reminders, dual chat categories and log synchronization
into one contest-focused ON4KST client.
</p>
<div class="actions">
<a class="button" href="https://github.com/praktimarc/kst4contest/releases">Download releases</a>
<a class="button" href="/download/">Download KST4Contest</a>
<a class="button secondary" href="https://github.com/praktimarc/kst4contest">View on GitHub</a>
<a class="button ghost" href="/manual/">Read manual</a>
</div>
</div>
<div class="hero-panel">
<div class="terminal-bar">
<span></span><span></span><span></span>
<strong>KST4Contest workflow</strong>
</div>
<div class="mock-grid">
<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>💬 Dual Chat Categories</strong>
<small>Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</small>
</div>
<div class="mini-card">
<strong>📡 DXCluster Server</strong>
<small>Use DXCluster information as part of the wider contest operating workflow.</small>
</div>
<div class="mini-card">
<strong> KST4Contest Features</strong>
<small></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 class="mini-card">
<strong>⚡ Macros and Variables</strong>
<small>Send recurring contest messages faster with configurable macros and variables.</small>
</div>
</div>
</div>
</section>
<section class="section">
<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>
</div>
<div class="grid">
<div class="card">
<h3>Built for contests</h3>
<p>Unlike generic ON4KST clients, KST4Contest focuses on contest workflow, skeds, priorities and fast operator decisions.</p>
<article class="card feature-card">
<div class="feature-icon">✈️</div>
<p class="eyebrow">Aircraft Scatter</p>
<h3><a href="/features/airscout/">AirScout Integration</a></h3>
<p>Use aircraft scatter awareness directly inside your ON4KST contest workflow.</p>
<a href="/features/airscout/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">💬</div>
<p class="eyebrow">ON4KST Chat</p>
<h3><a href="/features/dual-chat/">Dual Chat Categories</a></h3>
<p>Operate in two ON4KST categories at once, for example VHF/UHF and microwave.</p>
<a href="/features/dual-chat/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">📡</div>
<p class="eyebrow">Radio Workflow</p>
<h3><a href="/features/dx-cluster/">DXCluster Server</a></h3>
<p>Use DXCluster information as part of the wider contest operating workflow.</p>
<a href="/features/dx-cluster/">Learn more →</a>
</article>
<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">Logger Integration</p>
<h3><a href="/features/log-sync/">Log Synchronization</a></h3>
<p>Connect ON4KST chat workflow with Win-Test, UCXLog and contest logging state.</p>
<a href="/features/log-sync/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon"></div>
<p class="eyebrow">Operator Speed</p>
<h3><a href="/features/macros/">Macros and Variables</a></h3>
<p>Send recurring contest messages faster with configurable macros and variables.</p>
<a href="/features/macros/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">🎯</div>
<p class="eyebrow">Contest Workflow</p>
<h3><a href="/features/priority-score/">Priority Score System</a></h3>
<p>Find the most promising stations faster using contest-aware candidate scoring.</p>
<a href="/features/priority-score/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">🔔</div>
<p class="eyebrow">Sked Management</p>
<h3><a href="/features/sked-reminder/">Sked Reminder</a></h3>
<p>Keep scheduled contacts visible and avoid missing time-critical skeds.</p>
<a href="/features/sked-reminder/">Learn more →</a>
</article>
<article class="card feature-card">
<div class="feature-icon">⏱️</div>
<p class="eyebrow">Contest Awareness</p>
<h3><a href="/features/timeline/">Timeline View</a></h3>
<p>See upcoming AP windows and candidate timing in a compact contest timeline.</p>
<a href="/features/timeline/">Learn more →</a>
</article>
</div>
<div class="card">
<h3>Priority candidates</h3>
<p>Score-based candidate ranking helps operators identify promising stations faster.</p>
</div>
<div class="card">
<h3>AirScout workflow</h3>
<p>Airplane scatter windows and candidate timing can be integrated into the operating workflow.</p>
</div>
<div class="card">
<h3>Cross-platform releases</h3>
<p>Windows, Linux and macOS builds are published through GitHub releases.</p>
</section>
<section class="section">
<div class="cta-panel">
<p class="eyebrow">Open Source</p>
<h2>Built by contesters for contesters.</h2>
<p>
KST4Contest is developed around real VHF/UHF/SHF contest workflows:
ON4KST chat, aircraft scatter, skeds, logging and fast operator decisions.
</p>
<div class="actions">
<a class="button" href="/download/">Download KST4Contest</a>
<a class="button secondary" href="/features/">Explore features</a>
</div>
</div>
</section>
@@ -76,21 +247,42 @@
"@type":"SoftwareApplication",
"name":"KST4Contest",
"applicationCategory":"CommunicationApplication",
"operatingSystem": "Windows, macOS, Linux",
"description": "KST4Contest is a contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.",
"url": "https://kst4contest.hamradioonline.de/",
"operatingSystem":"Windows, Linux, macOS",
"url":"https://kst4contest.hamradioonline.de",
"downloadUrl":"https://github.com/praktimarc/kst4contest/releases",
"softwareVersion": "latest",
"author": {
"@type": "Person",
"name": "Praktimarc"
}
"description":"Contest-optimized ON4KST client for VHF, UHF and SHF amateur radio contests."
}
</script>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+135
View File
@@ -0,0 +1,135 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Legal Notice | KST4Contest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Legal notice for the KST4Contest website.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/legal-notice/">
<meta property="og:type" content="website">
<meta property="og:title" content="Legal Notice | KST4Contest">
<meta property="og:description" content="Legal notice for the KST4Contest website.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/legal-notice/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Legal Notice | KST4Contest">
<meta name="twitter:description" content="Legal notice for the KST4Contest website.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">Legal Notice</p>
<h1>Legal Notice</h1>
<p class="lead">Information according to § 5 DDG.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<h2>Provider</h2>
<p>
Marc Fröhlich<br>
Rheingoldstr. 6<br>
68199 Mannheim<br>
Germany
</p>
<h2>Contact</h2>
<p>
Email: <a href="mailto:praktimarc+kst4contest@gmail.com">praktimarc+kst4contest@gmail.com</a>
</p>
<h2>Responsible for content</h2>
<p>
Marc Fröhlich<br>
Rheingoldstr. 6<br>
68199 Mannheim<br>
Germany
</p>
<h2>Project</h2>
<p>
KST4Contest is an open-source ON4KST contest client.
Source code and releases are available on
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>.
</p>
</article>
</section>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/airscout-integration/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>AirScout Integration</h1>
<h1 id="airscout-integration" tabindex="-1"><a class="header-anchor" href="#airscout-integration">AirScout-Integration</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-AirScout-Integration">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/airscout-integration/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>AirScout (von DL2ALF) ist ein Programm zur Erkennung von Flugzeugen für den Aircraft-Scatter-Betrieb. KST4Contest ist eng mit AirScout integriert und zeigt reflektierbare Flugzeuge direkt in der Benutzerliste an.</p>
<blockquote>
@@ -150,7 +177,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/benutzeroberflaeche/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Benutzeroberflaeche</h1>
<h1 id="benutzeroberfl%C3%A4che" tabindex="-1"><a class="header-anchor" href="#benutzeroberfl%C3%A4che">Benutzeroberfläche</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-User-Interface">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/user-interface/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<h2 id="verbinden-mit-dem-chat" tabindex="-1"><a class="header-anchor" href="#verbinden-mit-dem-chat">Verbinden mit dem Chat</a></h2>
<ol>
@@ -152,7 +179,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+62 -9
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/changelog/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Changelog</h1>
<h1 id="changelog" tabindex="-1"><a class="header-anchor" href="#changelog">Changelog</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Changelog">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/changelog/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>Versionsverlauf von KST4Contest / PraktiKST.</p>
<hr>
@@ -287,7 +314,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/dx-cluster-server/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>DX Cluster Server</h1>
<h1 id="integrierter-dx-cluster-server" tabindex="-1"><a class="header-anchor" href="#integrierter-dx-cluster-server">Integrierter DX-Cluster-Server</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-DX-Cluster-Server">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/dx-cluster-server/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>Ab <strong>Version 1.23</strong> enthält KST4Contest einen integrierten DX-Cluster-Server. Dieser sendet Spots direkt an das Logprogramm, wenn eine Richtungs-Warnung ausgelöst wird.</p>
<p><em>(Idee von OM0AAO, Viliam Petrik danke!)</em></p>
@@ -99,7 +126,7 @@
<p>Wenn KST4Contest auf einem separaten Computer läuft (nicht auf dem Log-Computer):</p>
<ul>
<li>Host im Logprogramm: IP des KST4Contest-Computers (nicht <code>127.0.0.1</code>)</li>
<li>Entspricht der Konfiguration der QSO-UDP-Broadcast-Pakete (siehe <a href="de-Log-Synchronisation">Log-Synchronisation</a>)</li>
<li>Entspricht der Konfiguration der QSO-UDP-Broadcast-Pakete (siehe <a href="/manual/de/log-synchronisation/">Log-Synchronisation</a>)</li>
</ul>
<hr>
<h2 id="getestete-logprogramme" tabindex="-1"><a class="header-anchor" href="#getestete-logprogramme">Getestete Logprogramme</a></h2>
@@ -114,7 +141,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+64 -11
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/funktionen/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Funktionen</h1>
<h1 id="funktionen" tabindex="-1"><a class="header-anchor" href="#funktionen">Funktionen</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Features">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/features/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>Übersicht aller Hauptfunktionen von KST4Contest.</p>
<hr>
@@ -87,7 +114,7 @@
</blockquote>
<hr>
<h2 id="sked-richtungs-spots-(integrierter-dx-cluster)" tabindex="-1"><a class="header-anchor" href="#sked-richtungs-spots-(integrierter-dx-cluster)">Sked-Richtungs-Spots (Integrierter DX-Cluster)</a></h2>
<p>Ab <strong>v1.23</strong>: Richtungs-Warnungen werden als DX-Cluster-Spots an das Logprogramm weitergeleitet, wenn eine QRG bekannt ist. Details: <a href="de-DX-Cluster-Server">DX-Cluster-Server</a>.</p>
<p>Ab <strong>v1.23</strong>: Richtungs-Warnungen werden als DX-Cluster-Spots an das Logprogramm weitergeleitet, wenn eine QRG bekannt ist. Details: <a href="/manual/de/dx-cluster-server/">DX-Cluster-Server</a>.</p>
<hr>
<h2 id="qrg-erkennung-(qrg-reading)" tabindex="-1"><a class="header-anchor" href="#qrg-erkennung-(qrg-reading)">QRG-Erkennung (QRG Reading)</a></h2>
<p>KST4Contest verarbeitet jede Chat-Nachricht und extrahiert automatisch <strong>Frequenzangaben</strong>. Diese werden in der Benutzerliste in der <strong>QRG-Spalte</strong> angezeigt.</p>
@@ -95,7 +122,7 @@
<p><strong>Nutzen</strong>: Ohne nachzufragen kann man direkt auf die QRG einer Station schauen und entscheiden, ob eine Verbindung möglich ist.</p>
<hr>
<h2 id="worked-markierung" tabindex="-1"><a class="header-anchor" href="#worked-markierung">Worked-Markierung</a></h2>
<p>Gearbeitete Stationen werden in der Benutzerliste visuell markiert pro Band. Grundlage ist die <a href="de-Log-Synchronisation">Log-Synchronisation</a> via UDP oder Simplelogfile.</p>
<p>Gearbeitete Stationen werden in der Benutzerliste visuell markiert pro Band. Grundlage ist die <a href="/manual/de/log-synchronisation/">Log-Synchronisation</a> via UDP oder Simplelogfile.</p>
<p>Vor jedem Contest die Datenbank zurücksetzen: <a href="Konfiguration#worked-station-database-settings">Konfiguration Worked Station Database Settings</a>.</p>
<hr>
<h2 id="not-qrv-tags-(ab-v1.2)" tabindex="-1"><a class="header-anchor" href="#not-qrv-tags-(ab-v1.2)">NOT-QRV-Tags (ab v1.2)</a></h2>
@@ -236,7 +263,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+71 -18
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/home/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Home</h1>
<h1 id="kst4contest-%E2%80%93-wiki" tabindex="-1"><a class="header-anchor" href="#kst4contest-%E2%80%93-wiki">KST4Contest Wiki</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Home">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/home/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p><strong>KST4Contest</strong> (auch bekannt als <em>PraktiKST</em>) ist ein Java-basierter Chat-Client für den <a href="http://www.on4kst.info/chat/">ON4KST-Chat</a>, der speziell für den Contest-Betrieb auf den VHF/UHF/SHF-Bändern (144 MHz und aufwärts) entwickelt wurde.</p>
<p>Entwickelt von <strong>DO5AMF (Marc Fröhlich)</strong>, Operator bei DM5M.</p>
@@ -57,39 +84,39 @@
</thead>
<tbody>
<tr>
<td><a href="de-Installation">Installation</a></td>
<td><a href="/manual/de/installation/">Installation</a></td>
<td>Download, Java-Voraussetzungen, Update</td>
</tr>
<tr>
<td><a href="de-Konfiguration">Konfiguration</a></td>
<td><a href="/manual/de/konfiguration/">Konfiguration</a></td>
<td>Alle Einstellungen im Detail</td>
</tr>
<tr>
<td><a href="de-Log-Synchronisation">Log-Synchronisation</a></td>
<td><a href="/manual/de/log-synchronisation/">Log-Synchronisation</a></td>
<td>UCXLog, N1MM+, QARTest, <a href="http://DXLog.net">DXLog.net</a>, WinTest</td>
</tr>
<tr>
<td><a href="de-AirScout-Integration">AirScout-Integration</a></td>
<td><a href="/manual/de/airscout-integration/">AirScout-Integration</a></td>
<td>Flugzeug-Scatter-Erkennung</td>
</tr>
<tr>
<td><a href="de-DX-Cluster-Server">DX-Cluster-Server</a></td>
<td><a href="/manual/de/dx-cluster-server/">DX-Cluster-Server</a></td>
<td>Integrierter DX-Cluster für das Log-Programm</td>
</tr>
<tr>
<td><a href="de-Funktionen">Funktionen</a></td>
<td><a href="/manual/de/funktionen/">Funktionen</a></td>
<td>Alle Features im Überblick</td>
</tr>
<tr>
<td><a href="de-Makros-und-Variablen">Makros und Variablen</a></td>
<td><a href="/manual/de/makros-und-variablen/">Makros und Variablen</a></td>
<td>Text-Snippets, Shortcuts, Variablen</td>
</tr>
<tr>
<td><a href="de-Benutzeroberflaeche">Benutzeroberfläche</a></td>
<td><a href="/manual/de/benutzeroberflaeche/">Benutzeroberfläche</a></td>
<td>UI-Erklärung und Bedienung</td>
</tr>
<tr>
<td><a href="de-Changelog">Changelog</a></td>
<td><a href="/manual/de/changelog/">Changelog</a></td>
<td>Versionsgeschichte</td>
</tr>
</tbody>
@@ -143,7 +170,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+61 -8
View File
@@ -5,7 +5,6 @@
<title>KST4Contest Deutsches Handbuch</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Deutsches Benutzerhandbuch für KST4Contest.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="KST4Contest Deutsches Handbuch">
<meta name="twitter:description" content="Deutsches Benutzerhandbuch für KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -139,7 +166,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/installation/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Installation</h1>
<h1 id="installation" tabindex="-1"><a class="header-anchor" href="#installation">Installation</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Installation">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/installation/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<h2 id="voraussetzungen" tabindex="-1"><a class="header-anchor" href="#voraussetzungen">Voraussetzungen</a></h2>
<p>Es wird eine Mindestauflösung von 1200px mal 720px empfohlen</p>
@@ -258,7 +285,33 @@ flatpak install kst4contest de.x08.KST4Contest//nightly
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/konfiguration/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Konfiguration</h1>
<h1 id="konfiguration" tabindex="-1"><a class="header-anchor" href="#konfiguration">Konfiguration</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Configuration">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/configuration/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>Nach dem ersten Start öffnet sich das <strong>Einstellungsfenster</strong> dieses ist der zentrale Ausgangspunkt für alle Konfigurationen. Es empfiehlt sich, das Einstellungsfenster während des Betriebs geöffnet zu lassen (z. B. um den Beacon schnell ein- und auszuschalten).</p>
<blockquote>
@@ -76,7 +103,7 @@ Zudem wird die <strong>primäre Chat-Kategorie</strong> (z. B. IARU Region 1 VHF
<p>Eine Änderung ist nur notwendig, wenn der Server umzieht oder ein alternativer Endpunkt genutzt wird.</p>
<hr>
<h2 id="log-sync-einstellungen" tabindex="-1"><a class="header-anchor" href="#log-sync-einstellungen">Log-Sync-Einstellungen</a></h2>
<p>Drei Methoden stehen zur Verfügung, um gearbeitete Stationen automatisch zu markieren. Details: <a href="de-Log-Synchronisation">Log-Synchronisation</a>.</p>
<p>Drei Methoden stehen zur Verfügung, um gearbeitete Stationen automatisch zu markieren. Details: <a href="/manual/de/log-synchronisation/">Log-Synchronisation</a>.</p>
<h3 id="universal-file-based-callsign-interpreter-(simplelogfile)" tabindex="-1"><a class="header-anchor" href="#universal-file-based-callsign-interpreter-(simplelogfile)">Universal File Based Callsign Interpreter (Simplelogfile)</a></h3>
<p>Interpretiert beliebige Log-Dateien per Regex nach Rufzeichen-Mustern. Keine Bandinformation möglich. Geeignet als Fallback oder für nicht direkt unterstützte Logprogramme.</p>
<h3 id="netzwerk-listener-f%C3%BCr-qso-udp-broadcast" tabindex="-1"><a class="header-anchor" href="#netzwerk-listener-f%C3%BCr-qso-udp-broadcast">Netzwerk-Listener für QSO-UDP-Broadcast</a></h3>
@@ -95,7 +122,7 @@ Zudem wird die <strong>primäre Chat-Kategorie</strong> (z. B. IARU Region 1 VHF
</blockquote>
<hr>
<h2 id="airscout-einstellungen" tabindex="-1"><a class="header-anchor" href="#airscout-einstellungen">AirScout-Einstellungen</a></h2>
<p>Konfiguration der Schnittstelle zu AirScout für die Flugzeug-Scatter-Erkennung. Details: <a href="de-AirScout-Integration">AirScout-Integration</a>.</p>
<p>Konfiguration der Schnittstelle zu AirScout für die Flugzeug-Scatter-Erkennung. Details: <a href="/manual/de/airscout-integration/">AirScout-Integration</a>.</p>
<hr>
<h2 id="notification-settings-(benachrichtigungen)" tabindex="-1"><a class="header-anchor" href="#notification-settings-(benachrichtigungen)">Notification Settings (Benachrichtigungen)</a></h2>
<p>Drei Benachrichtigungstypen stehen zur Wahl:</p>
@@ -194,7 +221,33 @@ Zudem wird die <strong>primäre Chat-Kategorie</strong> (z. B. IARU Region 1 VHF
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/log-synchronisation/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Log Synchronisation</h1>
<h1 id="log-synchronisation" tabindex="-1"><a class="header-anchor" href="#log-synchronisation">Log-Synchronisation</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Log-Sync">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/log-sync/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>KST4Contest markiert gearbeitete Stationen automatisch in der Chat-Benutzerliste. Dafür gibt es zwei grundlegende Methoden:</p>
<hr>
@@ -172,7 +199,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/de/makros-und-variablen/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Makros und Variablen</h1>
<h1 id="makros-und-variablen" tabindex="-1"><a class="header-anchor" href="#makros-und-variablen">Makros und Variablen</a></h1>
<blockquote>
<p>🇬🇧 <a href="en-Macros-and-Variables">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
<p>🇬🇧 <a href="/manual/en/macros-and-variables/">English version</a> | 🇩🇪 Du liest gerade die deutsche Version</p>
</blockquote>
<p>KST4Contest bietet ein flexibles System aus Text-Snippets, Shortcuts und eingebauten Variablen, die den Chat-Workflow im Contest erheblich beschleunigen.</p>
<hr>
@@ -183,7 +210,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/airscout-integration/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>AirScout Integration</h1>
<h1 id="airscout-integration" tabindex="-1"><a class="header-anchor" href="#airscout-integration">AirScout Integration</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-AirScout-Integration">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/airscout-integration/">Deutsche Version</a></p>
</blockquote>
<p>AirScout (by DL2ALF) is a program for detecting aircraft for aircraft scatter operation. KST4Contest is tightly integrated with AirScout and shows reflectable aircraft directly in the user list.</p>
<blockquote>
@@ -150,7 +177,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+62 -9
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/changelog/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Changelog</h1>
<h1 id="changelog" tabindex="-1"><a class="header-anchor" href="#changelog">Changelog</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Changelog">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/changelog/">Deutsche Version</a></p>
</blockquote>
<p>Version history of KST4Contest / PraktiKST.</p>
<hr>
@@ -287,7 +314,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/configuration/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Configuration</h1>
<h1 id="configuration" tabindex="-1"><a class="header-anchor" href="#configuration">Configuration</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Konfiguration">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/konfiguration/">Deutsche Version</a></p>
</blockquote>
<p>After the first start, the <strong>settings window</strong> opens this is the central starting point for all configuration. It is recommended to keep the settings window open during operation (e.g. to quickly toggle the beacon on and off).</p>
<blockquote>
@@ -76,7 +103,7 @@ Also, select the <strong>primary chat category</strong> (e.g., IARU Region 1 VHF
<p>A change is only needed if the server moves or an alternative endpoint is used.</p>
<hr>
<h2 id="log-sync-settings" tabindex="-1"><a class="header-anchor" href="#log-sync-settings">Log Sync Settings</a></h2>
<p>Three methods are available for automatically marking worked stations. Details: <a href="en-Log-Sync">Log Synchronisation</a>.</p>
<p>Three methods are available for automatically marking worked stations. Details: <a href="/manual/en/log-sync/">Log Synchronisation</a>.</p>
<h3 id="universal-file-based-callsign-interpreter-(simplelogfile)" tabindex="-1"><a class="header-anchor" href="#universal-file-based-callsign-interpreter-(simplelogfile)">Universal File Based Callsign Interpreter (Simplelogfile)</a></h3>
<p>Interprets any log file using regex for callsign patterns. No band information is available. Suitable as a fallback or for log programs that are not directly supported.</p>
<h3 id="network-listener-for-logger%E2%80%99s-qso-udp-broadcast" tabindex="-1"><a class="header-anchor" href="#network-listener-for-logger%E2%80%99s-qso-udp-broadcast">Network Listener for Loggers QSO UDP Broadcast</a></h3>
@@ -95,7 +122,7 @@ Also, select the <strong>primary chat category</strong> (e.g., IARU Region 1 VHF
</blockquote>
<hr>
<h2 id="airscout-settings" tabindex="-1"><a class="header-anchor" href="#airscout-settings">AirScout Settings</a></h2>
<p>Configuration of the interface to AirScout for aircraft scatter detection. Details: <a href="en-AirScout-Integration">AirScout Integration</a>.</p>
<p>Configuration of the interface to AirScout for aircraft scatter detection. Details: <a href="/manual/en/airscout-integration/">AirScout Integration</a>.</p>
<hr>
<h2 id="notification-settings" tabindex="-1"><a class="header-anchor" href="#notification-settings">Notification Settings</a></h2>
<p>Three notification types are available:</p>
@@ -194,7 +221,33 @@ Also, select the <strong>primary chat category</strong> (e.g., IARU Region 1 VHF
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/dx-cluster-server/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>DX Cluster Server</h1>
<h1 id="built-in-dx-cluster-server" tabindex="-1"><a class="header-anchor" href="#built-in-dx-cluster-server">Built-in DX Cluster Server</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-DX-Cluster-Server">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/dx-cluster-server/">Deutsche Version</a></p>
</blockquote>
<p>From <strong>version 1.23</strong>, KST4Contest includes a built-in DX cluster server. It sends spots directly to the logging software whenever a direction warning is triggered.</p>
<p><em>(Idea by OM0AAO, Viliam Petrik thank you!)</em></p>
@@ -99,7 +126,7 @@
<p>If KST4Contest runs on a separate computer (not the logging computer):</p>
<ul>
<li>Host in the logging software: IP of the KST4Contest computer (not <code>127.0.0.1</code>)</li>
<li>Same configuration as for the QSO UDP broadcast packets (see <a href="en-Log-Sync">Log Synchronisation</a>)</li>
<li>Same configuration as for the QSO UDP broadcast packets (see <a href="/manual/en/log-sync/">Log Synchronisation</a>)</li>
</ul>
<hr>
<h2 id="tested-logging-software" tabindex="-1"><a class="header-anchor" href="#tested-logging-software">Tested Logging Software</a></h2>
@@ -114,7 +141,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+64 -11
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/features/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Features</h1>
<h1 id="features" tabindex="-1"><a class="header-anchor" href="#features">Features</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Funktionen">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/funktionen/">Deutsche Version</a></p>
</blockquote>
<p>Overview of all main features of KST4Contest.</p>
<hr>
@@ -87,7 +114,7 @@
</blockquote>
<hr>
<h2 id="sked-direction-spots-(built-in-dx-cluster)" tabindex="-1"><a class="header-anchor" href="#sked-direction-spots-(built-in-dx-cluster)">Sked Direction Spots (Built-in DX Cluster)</a></h2>
<p>From <strong>v1.23</strong>: Direction warnings are forwarded as DX cluster spots to the logging software when a QRG is known. Details: <a href="en-DX-Cluster-Server">DX Cluster Server</a>.</p>
<p>From <strong>v1.23</strong>: Direction warnings are forwarded as DX cluster spots to the logging software when a QRG is known. Details: <a href="/manual/en/dx-cluster-server/">DX Cluster Server</a>.</p>
<hr>
<h2 id="qrg-detection-(qrg-reading)" tabindex="-1"><a class="header-anchor" href="#qrg-detection-(qrg-reading)">QRG Detection (QRG Reading)</a></h2>
<p>KST4Contest processes every line of text flowing through the channel and automatically extracts <strong>frequency references</strong>. These are displayed in the user list in the <strong>QRG column</strong>.</p>
@@ -95,7 +122,7 @@
<p><strong>Benefit</strong>: Without asking, you can directly look up a stations calling frequency and decide whether a contact is possible.</p>
<hr>
<h2 id="worked-marking" tabindex="-1"><a class="header-anchor" href="#worked-marking">Worked Marking</a></h2>
<p>Worked stations are visually marked in the user list per band. Based on <a href="en-Log-Sync">Log Synchronisation</a> via UDP or Simplelogfile.</p>
<p>Worked stations are visually marked in the user list per band. Based on <a href="/manual/en/log-sync/">Log Synchronisation</a> via UDP or Simplelogfile.</p>
<p>Reset the database before each contest: <a href="Configuration#worked-station-database-settings">Configuration Worked Station Database Settings</a>.</p>
<hr>
<h2 id="not-qrv-tags-(from-v1.2)" tabindex="-1"><a class="header-anchor" href="#not-qrv-tags-(from-v1.2)">NOT-QRV Tags (from v1.2)</a></h2>
@@ -235,7 +262,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+71 -18
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/home/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Home</h1>
<h1 id="kst4contest-%E2%80%93-wiki" tabindex="-1"><a class="header-anchor" href="#kst4contest-%E2%80%93-wiki">KST4Contest Wiki</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Home">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/home/">Deutsche Version</a></p>
</blockquote>
<p><strong>KST4Contest</strong> (also known as <em>PraktiKST</em>) is a Java-based chat client for the <a href="http://www.on4kst.info/chat/">ON4KST Chat</a>, specifically designed for contest operation on the VHF/UHF/SHF bands (144 MHz and above).</p>
<p>Developed by <strong>DO5AMF (Marc Fröhlich)</strong>, operator at DM5M.</p>
@@ -57,39 +84,39 @@
</thead>
<tbody>
<tr>
<td><a href="en-Installation">Installation</a></td>
<td><a href="/manual/en/installation/">Installation</a></td>
<td>Download, Java requirements, update</td>
</tr>
<tr>
<td><a href="en-Configuration">Configuration</a></td>
<td><a href="/manual/en/configuration/">Configuration</a></td>
<td>All settings in detail</td>
</tr>
<tr>
<td><a href="en-Log-Sync">Log Synchronisation</a></td>
<td><a href="/manual/en/log-sync/">Log Synchronisation</a></td>
<td>UCXLog, N1MM+, QARTest, <a href="http://DXLog.net">DXLog.net</a>, WinTest</td>
</tr>
<tr>
<td><a href="en-AirScout-Integration">AirScout Integration</a></td>
<td><a href="/manual/en/airscout-integration/">AirScout Integration</a></td>
<td>Aircraft scatter detection</td>
</tr>
<tr>
<td><a href="en-DX-Cluster-Server">DX Cluster Server</a></td>
<td><a href="/manual/en/dx-cluster-server/">DX Cluster Server</a></td>
<td>Built-in DX cluster for your logging software</td>
</tr>
<tr>
<td><a href="en-Features">Features</a></td>
<td><a href="/manual/en/features/">Features</a></td>
<td>All features at a glance</td>
</tr>
<tr>
<td><a href="en-Macros-and-Variables">Macros and Variables</a></td>
<td><a href="/manual/en/macros-and-variables/">Macros and Variables</a></td>
<td>Text snippets, shortcuts, variables</td>
</tr>
<tr>
<td><a href="en-User-Interface">User Interface</a></td>
<td><a href="/manual/en/user-interface/">User Interface</a></td>
<td>UI explanation and operation</td>
</tr>
<tr>
<td><a href="en-Changelog">Changelog</a></td>
<td><a href="/manual/en/changelog/">Changelog</a></td>
<td>Version history</td>
</tr>
</tbody>
@@ -143,7 +170,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+61 -8
View File
@@ -5,7 +5,6 @@
<title>KST4Contest English Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="English user manual for KST4Contest.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="KST4Contest English Manual">
<meta name="twitter:description" content="English user manual for KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -139,7 +166,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/installation/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Installation</h1>
<h1 id="installation" tabindex="-1"><a class="header-anchor" href="#installation">Installation</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Installation">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/installation/">Deutsche Version</a></p>
</blockquote>
<h2 id="prerequisites" tabindex="-1"><a class="header-anchor" href="#prerequisites">Prerequisites</a></h2>
<p>An resolution of 1200px by 720px is recommended</p>
@@ -258,7 +285,33 @@ flatpak install kst4contest de.x08.KST4Contest//nightly
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+62 -9
View File
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/log-sync/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Log Sync</h1>
<h1 id="log-synchronisation" tabindex="-1"><a class="header-anchor" href="#log-synchronisation">Log Synchronisation</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Log-Synchronisation">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/log-synchronisation/">Deutsche Version</a></p>
</blockquote>
<p>KST4Contest automatically marks worked stations in the chat user list. Two basic methods are available:</p>
<hr>
@@ -172,7 +199,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/macros-and-variables/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>Macros and Variables</h1>
<h1 id="macros-and-variables" tabindex="-1"><a class="header-anchor" href="#macros-and-variables">Macros and Variables</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Makros-und-Variablen">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/makros-und-variablen/">Deutsche Version</a></p>
</blockquote>
<p>KST4Contest offers a flexible system of text snippets, shortcuts and built-in variables that significantly speed up the chat workflow during contests.</p>
<hr>
@@ -183,7 +210,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -5,7 +5,6 @@
<title>{{ manual.title }} | KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/en/user-interface/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="{{ manual.title }} | KST4Contest Manual">
<meta name="twitter:description" content="KST4Contest manual page: {{ manual.title }}">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -42,7 +69,7 @@
<h1>User Interface</h1>
<h1 id="user-interface" tabindex="-1"><a class="header-anchor" href="#user-interface">User Interface</a></h1>
<blockquote>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="de-Benutzeroberflaeche">Deutsche Version</a></p>
<p>🇬🇧 You are reading the English version | 🇩🇪 <a href="/manual/de/benutzeroberflaeche/">Deutsche Version</a></p>
</blockquote>
<h2 id="connecting-to-the-chat" tabindex="-1"><a class="header-anchor" href="#connecting-to-the-chat">Connecting to the Chat</a></h2>
<ol>
@@ -152,7 +179,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+61 -8
View File
@@ -5,7 +5,6 @@
<title>KST4Contest Manual</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Online manual for KST4Contest, the contest-optimized ON4KST chat client.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/manual/">
<meta property="og:type" content="website">
@@ -18,19 +17,47 @@
<meta name="twitter:title" content="KST4Contest Manual">
<meta name="twitter:description" content="Online manual for KST4Contest, the contest-optimized ON4KST chat client.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
@@ -51,7 +78,33 @@
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,115 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>KST4Contest Website Launch</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="KST4Contest is a contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/2026-07-website-launch/">
<meta property="og:type" content="website">
<meta property="og:title" content="KST4Contest Website Launch">
<meta property="og:description" content="Contest-optimized ON4KST chat client for VHF, UHF and SHF ham radio contests.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/news/2026-07-website-launch/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<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.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">News · July 7, 2026</p>
<h1>KST4Contest Website Launch</h1>
<p class="lead">The new KST4Contest website is being built as a static, SEO-friendly product portal with GitHub-based documentation.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<h2>A new home for KST4Contest</h2>
<p>KST4Contest now has its own website at <code>kst4contest.hamradioonline.de</code>.</p>
<p>The site is built with Eleventy, generated from version-controlled Markdown and deployed as a fast static website.</p>
<h2>Why this matters</h2>
<p>The goal is to make KST4Contest easier to discover, easier to document and easier to maintain.</p>
<p>Documentation, release information, feature pages and future updates can now grow from a shared content model.</p>
</article>
</section>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+74 -17
View File
@@ -5,7 +5,6 @@
<title>KST4Contest News</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="News, release updates and development notes for KST4Contest.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/news/">
<meta property="og:type" content="website">
@@ -18,44 +17,102 @@
<meta name="twitter:title" content="KST4Contest News">
<meta name="twitter:description" content="News, release updates and development notes for KST4Contest.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>News</h1>
<p>
Release notes, development updates and contest workflow improvements.
<p class="badge">News</p>
<h1>Development updates and release notes.</h1>
<p class="lead">
Updates about KST4Contest releases, website improvements and contest workflow development.
</p>
</section>
<section class="section">
<div class="card">
<h2>Website launch</h2>
<p>
The new KST4Contest website is being built as a static, SEO-friendly product site
with GitHub-based documentation and automated deployment.
</p>
<div class="grid">
<article class="card">
<p class="eyebrow">July 7, 2026</p>
<h3><a href="/news/2026-07-website-launch/">KST4Contest Website Launch</a></h3>
<p>The new KST4Contest website is being built as a static, SEO-friendly product portal with GitHub-based documentation.</p>
<a href="/news/2026-07-website-launch/">Read more →</a>
</article>
</div>
</section>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+150
View File
@@ -0,0 +1,150 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Privacy Policy | KST4Contest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Privacy policy for the KST4Contest website.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/privacy/">
<meta property="og:type" content="website">
<meta property="og:title" content="Privacy Policy | KST4Contest">
<meta property="og:description" content="Privacy policy for the KST4Contest website.">
<meta property="og:url" content="https://kst4contest.hamradioonline.de/privacy/">
<meta property="og:site_name" content="KST4Contest">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Privacy Policy | KST4Contest">
<meta name="twitter:description" content="Privacy policy for the KST4Contest website.">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<p class="badge">Privacy</p>
<h1>Privacy Policy</h1>
<p class="lead">Information about data processing on this static website.</p>
</section>
<section class="section narrow">
<article class="card content-card">
<h2>Controller</h2>
<p>
Marc Fröhlich<br>
Rheingoldstr. 6<br>
68199 Mannheim<br>
Germany
</p>
<h2>Access logs</h2>
<p>
When this website is accessed, the web server may process technical access data such as
IP address, requested URL, date and time, user agent and referrer.
This processing is used to provide the website, maintain security and investigate technical issues.
</p>
<h2>Legal basis</h2>
<p>
The legal basis is Art. 6(1)(f) GDPR: legitimate interest in secure and reliable operation
of the website.
</p>
<h2>Cookies and tracking</h2>
<p>
This website currently does not use cookies, analytics tracking, advertising pixels or user profiling.
</p>
<h2>External links</h2>
<p>
This website links to GitHub for source code, releases and downloads. When you follow these links,
GitHub is responsible for its own data processing.
</p>
<h2>Your rights</h2>
<p>
You may have the right to access, rectification, erasure, restriction of processing,
data portability and objection under the GDPR.
</p>
<h2>Supervisory authority</h2>
<p>
You have the right to lodge a complaint with a competent data protection supervisory authority.
</p>
</article>
</section>
</main>
<footer class="site-footer">
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+84 -19
View File
@@ -5,7 +5,6 @@
<title>KST4Contest Screenshots</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Screenshots of KST4Contest, the contest-optimized ON4KST chat client for VHF, UHF and SHF operators.">
<link rel="canonical" href="https://kst4contest.hamradioonline.de/screenshots/">
<meta property="og:type" content="website">
@@ -18,27 +17,56 @@
<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.">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="stylesheet" href="/assets/css/main.css?v=1783425387839">
<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:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:image" content="https://kst4contest.hamradioonline.de/assets/social/kst4contest-og.png">
</head>
<body>
<div class="site-bg"></div>
<header class="site-header">
<a class="brand" href="/">KST4Contest</a>
<nav>
<a class="brand" href="/">
<span class="brand-mark"></span>
<span>
<strong>KST4Contest</strong>
<small>ON4KST Contest Client</small>
</span>
</a>
<nav class="site-nav">
<a href="/">Home</a>
<a href="/features/">Features</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/screenshots/">Screenshots</a>
<a href="/download/">Download</a>
<a href="/manual/">Manual</a>
<a href="/news/">News</a>
<a href="https://github.com/praktimarc/kst4contest">GitHub</a>
<a href="/about/">About</a>
<a href="/faq/">FAQ</a>
<a class="nav-cta" href="/download/">Download</a>
</nav>
</header>
<main>
<section class="hero">
<h1>Screenshots</h1>
<p>
<p class="badge">Screenshots</p>
<h1>See the contest workflow.</h1>
<p class="lead">
Visual impressions of KST4Contest: ON4KST chat workflow, priority candidates,
sked handling, AirScout integration and contest-focused operator tools.
</p>
@@ -46,26 +74,63 @@
<section class="section">
<div class="grid">
<div class="card">
<article class="card screenshot-card">
<div class="screenshot-placeholder">
<span>Main Window</span>
</div>
<h3>Main Window</h3>
<p>ON4KST chat workflow with contest-oriented controls.</p>
</div>
<p>Contest-oriented ON4KST chat workflow with candidate awareness.</p>
</article>
<div class="card">
<article class="card screenshot-card">
<div class="screenshot-placeholder">
<span>Priority Candidates</span>
</div>
<h3>Priority Candidates</h3>
<p>Candidate ranking for faster operator decisions.</p>
</div>
<p>Score-based candidate ranking for faster operator decisions.</p>
</article>
<div class="card">
<h3>AirScout / AP Timeline</h3>
<p>Aircraft scatter timing support for VHF/UHF/SHF operation.</p>
<article class="card screenshot-card">
<div class="screenshot-placeholder">
<span>Timeline View</span>
</div>
<h3>Timeline View</h3>
<p>Timeline support for AP windows and candidate timing.</p>
</article>
</div>
</section>
</main>
<footer class="site-footer">
<p>KST4Contest ON4KST contest workflow for VHF/UHF/SHF operators.</p>
<div class="footer-grid">
<div>
<strong>KST4Contest</strong>
<p>Contest-optimized ON4KST workflow for VHF/UHF/SHF operators.</p>
</div>
<div>
<strong>Project</strong>
<p><a href="/features/">Features</a></p>
<p><a href="/download/">Download</a></p>
<p><a href="/manual/">Manual</a></p>
<p><a href="/roadmap/">Roadmap</a></p>
</div>
<div>
<strong>Community</strong>
<p><a href="https://github.com/praktimarc/kst4contest">GitHub Repository</a></p>
<p><a href="https://github.com/praktimarc/kst4contest/issues">Issues</a></p>
<p><a href="/contact/">Contact</a></p>
</div>
<div>
<strong>Legal</strong>
<p><a href="/legal-notice/">Legal Notice</a></p>
<p><a href="/privacy/">Privacy Policy</a></p>
</div>
</div>
</footer>
</body>
</html>
+82 -36
View File
@@ -1,45 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://kst4contest.hamradioonline.de/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/en/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/download/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/</loc>
</url>
<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/sked-reminder/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/log-sync/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/screenshots/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/news/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/faq/</loc>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/de/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/de/airscout-integration/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/de/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/en/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/manual/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/airscout/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/dual-chat/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/dx-cluster/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/log-sync/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/macros/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/priority-score/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/sked-reminder/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/features/timeline/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/screenshots/</loc>
<lastmod>2026-07-06</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/news/2026-07-website-launch/</loc>
<lastmod>2026-07-07</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/about/</loc>
<lastmod>2026-07-07</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/contact/</loc>
<lastmod>2026-07-07</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/legal-notice/</loc>
<lastmod>2026-07-07</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/privacy/</loc>
<lastmod>2026-07-07</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/</loc>
<lastmod>2026-07-07</lastmod>
</url>
<url>
<loc>https://kst4contest.hamradioonline.de/download/</loc>
<lastmod>2026-07-07</lastmod>
</url>
</urlset>
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
else
exec node "$basedir/../acorn/bin/acorn" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
} else {
& "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../acorn/bin/acorn" $args
} else {
& "node$exe" "$basedir/../acorn/bin/acorn" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../@11ty/eleventy/cmd.cjs" "$@"
else
exec node "$basedir/../@11ty/eleventy/cmd.cjs" "$@"
fi
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../@11ty/eleventy-dev-server/cmd.js" "$@"
else
exec node "$basedir/../@11ty/eleventy-dev-server/cmd.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@11ty\eleventy-dev-server\cmd.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../@11ty/eleventy-dev-server/cmd.js" $args
} else {
& "$basedir/node$exe" "$basedir/../@11ty/eleventy-dev-server/cmd.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../@11ty/eleventy-dev-server/cmd.js" $args
} else {
& "node$exe" "$basedir/../@11ty/eleventy-dev-server/cmd.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@11ty\eleventy\cmd.cjs" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../@11ty/eleventy/cmd.cjs" $args
} else {
& "$basedir/node$exe" "$basedir/../@11ty/eleventy/cmd.cjs" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../@11ty/eleventy/cmd.cjs" $args
} else {
& "node$exe" "$basedir/../@11ty/eleventy/cmd.cjs" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../errno/cli.js" "$@"
else
exec node "$basedir/../errno/cli.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\errno\cli.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../errno/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../errno/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../errno/cli.js" $args
} else {
& "node$exe" "$basedir/../errno/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@"
else
exec node "$basedir/../esprima/bin/esparse.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esparse.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args
} else {
& "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esprima/bin/esparse.js" $args
} else {
& "node$exe" "$basedir/../esprima/bin/esparse.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@"
else
exec node "$basedir/../esprima/bin/esvalidate.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
} else {
& "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
} else {
& "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
else
exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
} else {
& "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
} else {
& "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../liquidjs/bin/liquid.js" "$@"
else
exec node "$basedir/../liquidjs/bin/liquid.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\liquidjs\bin\liquid.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
} else {
& "$basedir/node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
} else {
& "node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../liquidjs/bin/liquid.js" "$@"
else
exec node "$basedir/../liquidjs/bin/liquid.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\liquidjs\bin\liquid.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
} else {
& "$basedir/node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
} else {
& "node$exe" "$basedir/../liquidjs/bin/liquid.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../markdown-it/bin/markdown-it.mjs" "$@"
else
exec node "$basedir/../markdown-it/bin/markdown-it.mjs" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\markdown-it\bin\markdown-it.mjs" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../markdown-it/bin/markdown-it.mjs" $args
} else {
& "$basedir/node$exe" "$basedir/../markdown-it/bin/markdown-it.mjs" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../markdown-it/bin/markdown-it.mjs" $args
} else {
& "node$exe" "$basedir/../markdown-it/bin/markdown-it.mjs" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../mime/cli.js" "$@"
else
exec node "$basedir/../mime/cli.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mime\cli.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../mime/cli.js" $args
} else {
& "$basedir/node$exe" "$basedir/../mime/cli.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../mime/cli.js" $args
} else {
& "node$exe" "$basedir/../mime/cli.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../nunjucks/bin/precompile" "$@"
else
exec node "$basedir/../nunjucks/bin/precompile" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nunjucks\bin\precompile" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../nunjucks/bin/precompile" $args
} else {
& "$basedir/node$exe" "$basedir/../nunjucks/bin/precompile" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../nunjucks/bin/precompile" $args
} else {
& "node$exe" "$basedir/../nunjucks/bin/precompile" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-16
View File
@@ -1,16 +0,0 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
else
exec node "$basedir/../semver/bin/semver.js" "$@"
fi
-17
View File
@@ -1,17 +0,0 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*
-28
View File
@@ -1,28 +0,0 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
} else {
& "node$exe" "$basedir/../semver/bin/semver.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret
-1692
View File
File diff suppressed because it is too large Load Diff
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2023 Zach Leatherman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-53
View File
@@ -1,53 +0,0 @@
# `dependency-tree-esm`
Returns an unordered array of local paths to dependencies of a Node ES module JavaScript file.
* See also: [`dependency-tree`](https://github.com/11ty/eleventy-dependency-tree) for the CommonJS version.
This is used by Eleventy to find dependencies of a JavaScript file to watch for changes to re-run Eleventys build.
## Installation
```
npm install --save-dev @11ty/dependency-tree-esm
```
## Features
* Ignores bare specifiers (e.g. `import "my-package"`)
* Ignores Nodes built-ins (e.g. `import "path"`)
* Handles circular dependencies
* Returns an empty set if the file does not exist.
## Usage
```js
// my-file.js
// if my-local-dependency.js has dependencies, it will include those too
import "./my-local-dependency.js";
// ignored, is a built-in
import path from "path";
```
```js
import { find } from "@11ty/dependency-tree-esm";
// CommonJS is fine too
// const { find } = require("@11ty/dependency-tree-esm");
await find("./my-file.js");
// returns ["./my-local-dependency.js"]
```
Return a [dependency-graph](https://github.com/jriecken/dependency-graph) instance:
```js
import { findGraph } from "@11ty/dependency-tree-esm";
// CommonJS is fine too
// const { find } = require("@11ty/dependency-tree-esm");
(await findGraph("./my-file.js")).overallOrder();
// returns ["./my-local-dependency.js", "./my-file.js"]
```
-173
View File
@@ -1,173 +0,0 @@
const path = require("node:path");
const { readFileSync, existsSync } = require("node:fs");
const acorn = require("acorn");
const normalizePath = require("normalize-path");
const { TemplatePath } = require("@11ty/eleventy-utils");
const { DepGraph } = require("dependency-graph");
// Is *not* a bare specifier (e.g. 'some-package')
// https://nodejs.org/dist/latest-v18.x/docs/api/esm.html#terminology
function isNonBareSpecifier(importSource) {
// Change \\ to / on Windows
let normalized = normalizePath(importSource);
// Relative specifier (e.g. './startup.js')
if(normalized.startsWith("./") || normalized.startsWith("../")) {
return true;
}
// Absolute specifier (e.g. 'file:///opt/nodejs/config.js')
if(normalized.startsWith("file:")) {
return true;
}
return false;
}
function normalizeFilePath(filePath) {
return TemplatePath.standardizeFilePath(path.relative(".", filePath));
}
function normalizeImportSourceToFilePath(filePath, source) {
let { dir } = path.parse(filePath);
let normalized = path.join(dir, source);
return normalizeFilePath(normalized);
}
function getImportAttributeType(attributes = []) {
for(let node of attributes) {
if(node.type === "ImportAttribute" && node.key.type === "Identifier" && node.key.name === "type") {
return node.value.value;
}
}
}
async function getSources(filePath, contents, options = {}) {
let { parserOverride } = Object.assign({}, options);
let sources = new Set();
let sourcesToRecurse = new Set();
let ast = (parserOverride || acorn).parse(contents, {
sourceType: "module",
ecmaVersion: "latest",
});
for(let node of ast.body) {
if(node.type === "ImportDeclaration" && isNonBareSpecifier(node.source.value)) {
let importAttributeType = getImportAttributeType(node?.attributes);
let normalized = normalizeImportSourceToFilePath(filePath, node.source.value);
if(normalized !== filePath) {
sources.add(normalized);
// Recurse typeless (JavaScript) import types only
// Right now only `css` and `json` are valid but others might come later
if(!importAttributeType) {
sourcesToRecurse.add(normalized);
}
}
}
}
return {
sources,
sourcesToRecurse,
}
}
// second argument used to be `alreadyParsedSet = new Set()`, keep that backwards compat
async function find(filePath, options = {}) {
if(options instanceof Set) {
options = {
alreadyParsedSet: options
};
}
if(!options.alreadyParsedSet) {
options.alreadyParsedSet = new Set();
}
// TODO add a cache here
// Unfortunately we need to read the entire file, imports need to be at the top level but they can be anywhere 🫠
let normalized = normalizeFilePath(filePath);
if(options.alreadyParsedSet.has(normalized) || !existsSync(filePath)) {
return [];
}
options.alreadyParsedSet.add(normalized);
let contents = readFileSync(normalized, { encoding: 'utf8' });
let { sources, sourcesToRecurse } = await getSources(filePath, contents, options);
// Recurse for nested deps
for(let source of sourcesToRecurse) {
let s = await find(source, options);
for(let p of s) {
if(sources.has(p) || p === filePath) {
continue;
}
sources.add(p);
}
}
return Array.from(sources);
}
function mergeGraphs(rootGraph, ...graphs) {
if(!(rootGraph instanceof DepGraph)) {
throw new Error("Incorrect type passed to mergeGraphs, expected DepGraph");
}
for(let g of graphs) {
for(let node of g.overallOrder()) {
if(!rootGraph.hasNode(node)) {
rootGraph.addNode(node);
}
for(let dep of g.directDependenciesOf(node)) {
rootGraph.addDependency(node, dep);
}
}
}
}
// second argument used to be `alreadyParsedSet = new Set()`, keep that backwards compat
async function findGraph(filePath, options = {}) {
if(options instanceof Set) {
options = {
alreadyParsedSet: options
};
}
if(!options.alreadyParsedSet) {
options.alreadyParsedSet = new Set();
}
let graph = new DepGraph();
let normalized = normalizeFilePath(filePath);
graph.addNode(filePath);
if(options.alreadyParsedSet.has(normalized) || !existsSync(filePath)) {
return graph;
}
options.alreadyParsedSet.add(normalized);
let contents = readFileSync(normalized, "utf8");
let { sources, sourcesToRecurse } = await getSources(filePath, contents, options);
for(let source of sources) {
if(!graph.hasNode(source)) {
graph.addNode(source);
}
graph.addDependency(normalized, source);
}
// Recurse for nested deps
for(let source of sourcesToRecurse) {
let recursedGraph = await findGraph(source, options);
mergeGraphs(graph, recursedGraph);
}
return graph;
}
module.exports = {
find,
findGraph,
mergeGraphs,
};
-26
View File
@@ -1,26 +0,0 @@
{
"name": "@11ty/dependency-tree-esm",
"version": "2.0.4",
"description": "Finds all JavaScript ES Module dependencies from a filename.",
"main": "main.js",
"type": "commonjs",
"scripts": {
"test": "echo \"Error: run tests from root directory\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/11ty/eleventy-utils.git"
},
"author": {
"name": "Zach Leatherman",
"email": "zach@zachleat.com",
"url": "https://zachleat.com/"
},
"license": "MIT",
"dependencies": {
"@11ty/eleventy-utils": "^2.0.7",
"acorn": "^8.15.0",
"dependency-graph": "^1.0.0",
"normalize-path": "^3.0.0"
}
}
-21
View File
@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2019 Zach Leatherman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-109
View File
@@ -1,109 +0,0 @@
# `@11ty/dependency-tree`
Returns an unordered array of local paths to dependencies of a CommonJS node JavaScript file (everything it or any of its dependencies `require`s).
* See also: [`@11ty/dependency-tree-esm`](https://github.com/11ty/eleventy-utils/tree/main/parse-deps-esm) for the ESM version.
* See also: [`@11ty/dependency-tree-typescript`](https://github.com/11ty/eleventy-utils/tree/main/parse-deps-typescript) for the TypeScript version.
Reduced feature (faster) alternative to the [`dependency-tree` package](https://www.npmjs.com/package/dependency-tree). This is used by Eleventy to find dependencies of a JavaScript file to watch for changes to re-run Eleventys build.
## Big Huge Caveat
⚠ A big caveat to this plugin is that it will require the file in order to build a dependency tree. So if your module has side effects and you dont want it to execute—do not use this!
## Installation
```
npm install --save-dev @11ty/dependency-tree
```
## Features
* Ignores `node_modules`
* Or, use `nodeModuleNames` to control whether or not `node_modules` package names are included (added in v2.0.1)
* Ignores Nodes built-ins (e.g. `path`)
* Handles circular dependencies (Node does this too)
## Usage
```js
// my-file.js
// if my-local-dependency.js has dependencies, it will include those too
const test = require("./my-local-dependency.js");
// ignored, is a built-in
const path = require("path");
```
```js
const DependencyTree = require("@11ty/dependency-tree");
DependencyTree("./my-file.js");
// returns ["./my-local-dependency.js"]
```
### `allowNotFound`
```js
const DependencyTree = require("@11ty/dependency-tree");
DependencyTree("./this-does-not-exist.js"); // throws an error
DependencyTree("./this-does-not-exist.js", { allowNotFound: true });
// returns []
```
### `nodeModuleNames`
(Added in v2.0.1) Controls whether or not node package names are included in the list of dependencies.
* `nodeModuleNames: "include"`: included alongside the local JS files.
* `nodeModuleNames: "exclude"` (default): node module package names are excluded.
* `nodeModuleNames: "only"`: only node module package names are returned.
```js
// my-file.js:
require("./my-local-dependency.js");
require("@11ty/eleventy");
```
```js
const DependencyTree = require("@11ty/dependency-tree");
DependencyTree("./my-file.js");
// returns ["./my-local-dependency.js"]
DependencyTree("./my-file.js", { nodeModuleNames: "exclude" });
// returns ["./my-local-dependency.js"]
DependencyTree("./my-file.js", { nodeModuleNames: "include" });
// returns ["./my-local-dependency.js", "@11ty/eleventy"]
DependencyTree("./my-file.js", { nodeModuleNames: "only" });
// returns ["@11ty/eleventy"]
```
#### (Deprecated) `nodeModuleNamesOnly`
(Added in v2.0.0) Changed to use `nodeModuleNames` option instead. Backwards compatibility is maintained automatically.
* `nodeModuleNamesOnly: false` is mapped to `nodeModuleNames: "exclude"`
* `nodeModuleNamesOnly: true` is mapped to `nodeModuleNames: "only"`
If both `nodeModuleNamesOnly` and `nodeModuleNames` are included in options, `nodeModuleNames` takes precedence.
### `getPackagesByType` method
_Added in v4.0.2._
```js
const DependencyTree = require("@11ty/dependency-tree");
const {getPackagesByType} = DependencyTree;
// With `require(esm)` support, some targets may be modules!
// Return separate lists for commonjs and esm lists
getPackagesByType("./my-file.js");
// returns { commonjs: ["./my-file.js"], esm: [] }
```
-157
View File
@@ -1,157 +0,0 @@
const path = require("node:path");
const { TemplatePath } = require("@11ty/eleventy-utils");
function getAbsolutePath(filename) {
let normalizedFilename = path.normalize(filename); // removes dot slash
let hasDotSlash = filename.startsWith("./");
return hasDotSlash ? path.join(path.resolve("."), normalizedFilename) : normalizedFilename;
}
function getRelativePath(filename) {
let normalizedFilename = path.normalize(filename); // removes dot slash
let workingDirectory = path.resolve(".");
let result = "./" + (normalizedFilename.startsWith(workingDirectory) ? normalizedFilename.substr(workingDirectory.length + 1) : normalizedFilename);
return result;
}
function getNodeModuleName(filename) {
let foundNodeModules = false;
let moduleName = [];
let s = filename.split(path.sep);
for(let entry of s) {
if(entry === '.pnpm') {
foundNodeModules = false;
}
if(foundNodeModules) {
moduleName.push(entry);
if(!entry.startsWith("@")) {
return moduleName.join("/");
}
}
if(entry === "node_modules") {
foundNodeModules = true;
}
}
return false;
}
/* unordered */
function getDependenciesFor(filename, avoidCircular, optionsArg = {}) {
// backwards compatibility with `nodeModuleNamesOnly` boolean option
// Using `nodeModuleNames` property moving forward
if(("nodeModuleNamesOnly" in optionsArg) && !("nodeModuleNames" in optionsArg)) {
if(optionsArg.nodeModuleNamesOnly === true) {
optionsArg.nodeModuleNames = "only";
}
if(optionsArg.nodeModuleNamesOnly === false) {
optionsArg.nodeModuleNames = "exclude";
}
}
let options = Object.assign({
allowNotFound: false,
nodeModuleNames: "exclude", // also "include" or "only"
}, optionsArg);
let absoluteFilename = getAbsolutePath(filename);
let modules = new Set();
try {
let res = require(absoluteFilename);
if(res[Symbol.toStringTag] === "Module" || res.__esModule) {
modules.add(filename);
}
} catch(e) {
if(e.code === "MODULE_NOT_FOUND" && options.allowNotFound) {
// do nothing
} else {
throw e;
}
}
let mod;
for(let entry in require.cache) {
if(entry === absoluteFilename) {
mod = require.cache[entry];
break;
}
}
let dependencies = new Set();
if(!mod) {
if(!options.allowNotFound) {
throw new Error(`Could not find ${filename} in @11ty/dependency-tree`);
}
} else {
let relativeFilename = getRelativePath(mod.filename);
if(!avoidCircular) {
avoidCircular = {};
} else if(options.nodeModuleNames !== "only") {
dependencies.add(relativeFilename);
}
avoidCircular[relativeFilename] = true;
if(Array.isArray(mod.children) && mod.children.length > 0) {
for(let child of mod.children) {
let relativeChildFilename = getRelativePath(child.filename);
let nodeModuleName = getNodeModuleName(child.filename);
if(options.nodeModuleNames !== "exclude" && nodeModuleName) {
dependencies.add(nodeModuleName);
}
// Add dependencies of this dependency (not top level node_modules)
if(nodeModuleName === false) {
if(!dependencies.has(relativeChildFilename) && // avoid infinite looping with circular deps
!avoidCircular[relativeChildFilename] ) {
let { commonjs, esm } = getDependenciesFor(relativeChildFilename, avoidCircular, options);
for(let dependency of commonjs) {
dependencies.add(dependency);
}
for(let dependency of esm) {
modules.add(dependency);
}
}
}
}
}
}
return {
esm: modules,
commonjs: dependencies,
}
}
function normalizeList(packageSet) {
return Array.from( packageSet ).map(filePath => {
if(filePath.startsWith("./")) {
return TemplatePath.standardizeFilePath(filePath);
}
return filePath; // node_module name
})
}
function getCleanDependencyListFor(filename, options = {}) {
let { commonjs } = getDependenciesFor(filename, null, options);
return normalizeList(commonjs);
}
function getCleanDependencyListByTypeFor(filename, options = {}) {
let { commonjs, esm } = getDependenciesFor(filename, null, options);
return {
commonjs: normalizeList(commonjs),
esm: normalizeList(esm),
};
}
module.exports = getCleanDependencyListFor;
module.exports.getPackagesByType = getCleanDependencyListByTypeFor;
module.exports.getNodeModuleName = getNodeModuleName;

Some files were not shown because too many files have changed in this diff Show More