Separation as Tool

This commit is contained in:
2026-07-11 13:43:52 +02:00
commit f542382e58
80 changed files with 5863 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
:root { color-scheme: light dark; }
body { font-family: system-ui, sans-serif; margin: 0; color: #1a1a1a; }
.container { max-width: 760px; margin: 0 auto; padding: 1.5rem; }
.skip-link { position: absolute; left: -999px; }
.skip-link:focus { left: 1rem; top: 1rem; background: #0b5fff; color: #fff; padding: .5rem; }
.site-header { display: flex; gap: 1rem; align-items: center; padding: .75rem 1.5rem; border-bottom: 1px solid #ddd; }
.site-nav { display: flex; gap: 1rem; }
.brand { font-weight: 700; text-decoration: none; color: #0b5fff; }
.lang-dropdown__menu { list-style: none; display: flex; gap: .5rem; }
.site-footer { border-top: 1px solid #ddd; padding: 1.5rem; margin-top: 2rem; color: #555; }
.muted { color: #777; }
.page-nav { display: flex; justify-content: space-between; margin-top: 2rem; }
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#0b5fff"/><text x="16" y="22" font-size="16" text-anchor="middle" fill="#fff" font-family="sans-serif">G</text></svg>

After

Width:  |  Height:  |  Size: 220 B

@@ -0,0 +1,9 @@
{
"name": "Meine Website",
"short_name": "Website",
"icons": [
{ "src": "/assets/favicon/favicon.svg", "sizes": "any", "type": "image/svg+xml" }
],
"start_url": "/",
"display": "standalone"
}
+12
View File
@@ -0,0 +1,12 @@
// GCBoK.WebStaticBuilder example theme script.
(function () {
var t = localStorage.getItem('gc-theme') || 'light';
document.documentElement.setAttribute('data-theme', t);
var btn = document.getElementById('themeToggle');
if (btn) btn.addEventListener('click', function () {
var cur = document.documentElement.getAttribute('data-theme');
var next = cur === 'light' ? 'dark' : 'light';
document.documentElement.setAttribute('data-theme', next);
localStorage.setItem('gc-theme', next);
});
})();
+73
View File
@@ -0,0 +1,73 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Impressum</title>
<meta name="description" content="Eine mehrsprachige, statische Website.">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Impressum">
<meta property="og:description" content="Eine mehrsprachige, statische Website.">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/impressum/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Impressum">
<meta name="twitter:description" content="Eine mehrsprachige, statische Website.">
<link rel="canonical" href="http://localhost:8000/impressum/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Zum Hauptinhalt springen</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Zur Startseite">Meine Website</a>
<nav class="site-nav" aria-label="Hauptnavigation">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Sprachumschalter">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h2 id="impressum">Impressum</h2>
<p>Beispiel-Website · Ansprechpartner: webmaster@example.org</p>
<p>© 2026 Beispiel-Website. Erstellt mit GCBoK.WebStaticBuilder (MIT).</p>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>MEINE WEBSITE</h4>
<p class="muted">Ein Beispiel für GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="glossar.html">Glossar</a></li>
<li><a href="impressum.html">Impressum</a></li>
</ul>
<p>© 2026 Meine Website</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+85
View File
@@ -0,0 +1,85 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Startseite</title>
<meta name="description" content="Die Landing-Page dieser Beispiel-Website">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Startseite">
<meta property="og:description" content="Die Landing-Page dieser Beispiel-Website">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Startseite">
<meta name="twitter:description" content="Die Landing-Page dieser Beispiel-Website">
<link rel="canonical" href="http://localhost:8000/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Zum Hauptinhalt springen</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Zur Startseite">Meine Website</a>
<nav class="site-nav" aria-label="Hauptnavigation">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Sprachumschalter">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h1 id="willkommen-bei-gcbok.webstaticbuilder">Willkommen bei GCBoK.WebStaticBuilder</h1>
<p>Dies ist der Banner-Block (order 0), der auf der Startseite (Hero/Landing) eingebettet wird.</p>
<h2 id="einfuhrung">Einführung</h2>
<p>Diese Seite wurde mit <strong>GCBoK.WebStaticBuilder</strong> erzeugt — einem statischen, mehrsprachigen
Generator für compliance-freundliche Websites (MIT, OSS).</p>
<h2 id="funktionen">Funktionen</h2>
<ul>
<li>Markdown mit YAML-Frontmatter</li>
<li>Mehrsprachigkeit (de / en / vi)</li>
<li>SEO-Kopf, Sitemap, robots.txt</li>
<li>Client-Suche via Pagefind</li>
<li>UI-Lokalisierung über <code>{{ i18n.* }}</code></li>
</ul>
<h2 id="nachste-schritte">Nächste Schritte</h2>
<p>Siehe <code>docs/</code> im Repository für die Einrichtung.</p>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>MEINE WEBSITE</h4>
<p class="muted">Ein Beispiel für GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="glossar.html">Glossar</a></li>
<li><a href="impressum.html">Impressum</a></li>
</ul>
<p>© 2026 Meine Website</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Über das Projekt</title>
<meta name="description" content="Hintergrund zum Beispiel-Projekt">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Über das Projekt">
<meta property="og:description" content="Hintergrund zum Beispiel-Projekt">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/ueber/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Über das Projekt">
<meta name="twitter:description" content="Hintergrund zum Beispiel-Projekt">
<link rel="canonical" href="http://localhost:8000/ueber/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Zum Hauptinhalt springen</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Zur Startseite">Meine Website</a>
<nav class="site-nav" aria-label="Hauptnavigation">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Sprachumschalter">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h2 id="uber">Über</h2>
<p>GCBoK.WebStaticBuilder ist ein eigenständiges OSS-Tool der GitCover Commons.
Es erzeugt statische Websites ohne Server, Datenbank oder Build-Service.</p>
<div class="mermaid">graph TD
A[Markdown] --> B(Builder)
B --> C[HTML]
C --> D[Pagefind Index]
</div>
<nav class="page-nav" aria-label="Seitennavigation">
<span class="page-nav__link">&nbsp;</span>
<span class="page-nav__link page-nav__link--next">&nbsp;</span>
</nav>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>MEINE WEBSITE</h4>
<p class="muted">Ein Beispiel für GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="glossar.html">Glossar</a></li>
<li><a href="impressum.html">Impressum</a></li>
</ul>
<p>© 2026 Meine Website</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+73
View File
@@ -0,0 +1,73 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Impressum</title>
<meta name="description" content="A multilingual, static website.">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Impressum">
<meta property="og:description" content="A multilingual, static website.">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/impressum/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Impressum">
<meta name="twitter:description" content="A multilingual, static website.">
<link rel="canonical" href="http://localhost:8000/impressum/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Skip to main content</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Back to home">My Website</a>
<nav class="site-nav" aria-label="Main navigation">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Language switcher">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h2 id="impressum">Impressum</h2>
<p>Beispiel-Website · Ansprechpartner: webmaster@example.org</p>
<p>© 2026 Beispiel-Website. Erstellt mit GCBoK.WebStaticBuilder (MIT).</p>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>MY WEBSITE</h4>
<p class="muted">An example for GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="impressum.html">Imprint</a></li>
</ul>
<p>© 2026 My Website</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+85
View File
@@ -0,0 +1,85 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Startseite</title>
<meta name="description" content="Die Landing-Page dieser Beispiel-Website">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Startseite">
<meta property="og:description" content="Die Landing-Page dieser Beispiel-Website">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Startseite">
<meta name="twitter:description" content="Die Landing-Page dieser Beispiel-Website">
<link rel="canonical" href="http://localhost:8000/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Skip to main content</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Back to home">My Website</a>
<nav class="site-nav" aria-label="Main navigation">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Language switcher">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h1 id="willkommen-bei-gcbok.webstaticbuilder">Willkommen bei GCBoK.WebStaticBuilder</h1>
<p>Dies ist der Banner-Block (order 0), der auf der Startseite (Hero/Landing) eingebettet wird.</p>
<h2 id="einfuhrung">Einführung</h2>
<p>Diese Seite wurde mit <strong>GCBoK.WebStaticBuilder</strong> erzeugt — einem statischen, mehrsprachigen
Generator für compliance-freundliche Websites (MIT, OSS).</p>
<h2 id="funktionen">Funktionen</h2>
<ul>
<li>Markdown mit YAML-Frontmatter</li>
<li>Mehrsprachigkeit (de / en / vi)</li>
<li>SEO-Kopf, Sitemap, robots.txt</li>
<li>Client-Suche via Pagefind</li>
<li>UI-Lokalisierung über <code>{{ i18n.* }}</code></li>
</ul>
<h2 id="nachste-schritte">Nächste Schritte</h2>
<p>Siehe <code>docs/</code> im Repository für die Einrichtung.</p>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>MY WEBSITE</h4>
<p class="muted">An example for GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="impressum.html">Imprint</a></li>
</ul>
<p>© 2026 My Website</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Über das Projekt</title>
<meta name="description" content="Hintergrund zum Beispiel-Projekt">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Über das Projekt">
<meta property="og:description" content="Hintergrund zum Beispiel-Projekt">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/ueber/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Über das Projekt">
<meta name="twitter:description" content="Hintergrund zum Beispiel-Projekt">
<link rel="canonical" href="http://localhost:8000/ueber/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Skip to main content</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Back to home">My Website</a>
<nav class="site-nav" aria-label="Main navigation">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Language switcher">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h2 id="uber">Über</h2>
<p>GCBoK.WebStaticBuilder ist ein eigenständiges OSS-Tool der GitCover Commons.
Es erzeugt statische Websites ohne Server, Datenbank oder Build-Service.</p>
<div class="mermaid">graph TD
A[Markdown] --> B(Builder)
B --> C[HTML]
C --> D[Pagefind Index]
</div>
<nav class="page-nav" aria-label="Seitennavigation">
<span class="page-nav__link">&nbsp;</span>
<span class="page-nav__link page-nav__link--next">&nbsp;</span>
</nav>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>MY WEBSITE</h4>
<p class="muted">An example for GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="glossary.html">Glossary</a></li>
<li><a href="impressum.html">Imprint</a></li>
</ul>
<p>© 2026 My Website</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+30
View File
@@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meine Website</title>
<script>
(function() {
var supported = ["de","en","vi"];
var defaultLang = "de";
var lang = defaultLang;
if (navigator.languages && navigator.languages.length) {
for (var i = 0; i < navigator.languages.length; i++) {
var pref = navigator.languages[i].toLowerCase().split("-")[0];
if (supported.indexOf(pref) !== -1) { lang = pref; break; }
}
} else if (navigator.language) {
var pref = navigator.language.toLowerCase().split("-")[0];
if (supported.indexOf(pref) !== -1) lang = pref;
}
window.location.replace("/" + lang + "/");
})();
</script>
<meta http-equiv="refresh" content="0; url=/de/">
<link rel="canonical" href="http://localhost:8000/de/">
</head>
<body>
<p>Redirecting to <a href="/de/">Deutsch</a> | <a href="/en/">English</a> | <a href="/vi/">Tiếng Việt</a></p>
</body>
</html>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
{"version":"1.5.2","languages":{"de":{"hash":"de_8987bfa9ae","wasm":"de","page_count":3},"vi":{"hash":"vi_2270a45bad","wasm":null,"page_count":3},"en":{"hash":"en_9b2654cc0d","wasm":"en","page_count":3}},"include_characters":["_","‿","⁀","⁔","︳","︴","","","","_"]}
File diff suppressed because it is too large Load Diff
+214
View File
@@ -0,0 +1,214 @@
:root {
--pagefind-ui-scale: 0.8;
--pagefind-ui-primary: #034AD8;
--pagefind-ui-fade: #707070;
--pagefind-ui-text: #393939;
--pagefind-ui-background: #ffffff;
--pagefind-ui-border: #eeeeee;
--pagefind-ui-tag: #eeeeee;
--pagefind-ui-border-width: 2px;
--pagefind-ui-border-radius: 8px;
--pagefind-ui-image-border-radius: 8px;
--pagefind-ui-image-box-ratio: 3 / 2;
--pagefind-ui-font: system, -apple-system, ".SFNSText-Regular",
"San Francisco", "Roboto", "Segoe UI", "Helvetica Neue",
"Lucida Grande", sans-serif;
}
[data-pfmod-hidden] {
display: none !important;
}
[data-pfmod-suppressed] {
opacity: 0 !important;
pointer-events: none !important;
}
[data-pfmod-sr-hidden] {
-webkit-clip: rect(0 0 0 0) !important;
clip: rect(0 0 0 0) !important;
-webkit-clip-path: inset(100%) !important;
clip-path: inset(100%) !important;
height: 1px !important;
overflow: hidden !important;
overflow: clip !important;
position: absolute !important;
white-space: nowrap !important;
width: 1px !important;
}
[data-pfmod-loading] {
color: var(--pagefind-ui-text);
background-color: var(--pagefind-ui-text);
border-radius: var(--pagefind-ui-border-radius);
opacity: 0.1;
pointer-events: none;
}
/* Input */
.pagefind-modular-input-wrapper {
position: relative;
}
.pagefind-modular-input-wrapper::before {
background-color: var(--pagefind-ui-text);
width: calc(18px * var(--pagefind-ui-scale));
height: calc(18px * var(--pagefind-ui-scale));
top: calc(23px * var(--pagefind-ui-scale));
left: calc(20px * var(--pagefind-ui-scale));
content: "";
position: absolute;
display: block;
opacity: 0.7;
-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");
mask-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.7549 11.255H11.9649L11.6849 10.985C12.6649 9.845 13.2549 8.365 13.2549 6.755C13.2549 3.165 10.3449 0.255005 6.75488 0.255005C3.16488 0.255005 0.254883 3.165 0.254883 6.755C0.254883 10.345 3.16488 13.255 6.75488 13.255C8.36488 13.255 9.84488 12.665 10.9849 11.685L11.2549 11.965V12.755L16.2549 17.745L17.7449 16.255L12.7549 11.255ZM6.75488 11.255C4.26488 11.255 2.25488 9.245 2.25488 6.755C2.25488 4.26501 4.26488 2.255 6.75488 2.255C9.24488 2.255 11.2549 4.26501 11.2549 6.755C11.2549 9.245 9.24488 11.255 6.75488 11.255Z' fill='%23000000'/%3E%3C/svg%3E%0A");
-webkit-mask-size: 100%;
mask-size: 100%;
z-index: 9;
pointer-events: none;
}
.pagefind-modular-input {
height: calc(64px * var(--pagefind-ui-scale));
padding: 0 calc(70px * var(--pagefind-ui-scale)) 0 calc(54px * var(--pagefind-ui-scale));
background-color: var(--pagefind-ui-background);
border: var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);
border-radius: var(--pagefind-ui-border-radius);
font-size: calc(21px * var(--pagefind-ui-scale));
position: relative;
appearance: none;
-webkit-appearance: none;
display: flex;
width: 100%;
box-sizing: border-box;
font-weight: 700;
}
.pagefind-modular-input::placeholder {
opacity: 0.2;
}
.pagefind-modular-input-clear {
position: absolute;
top: calc(2px * var(--pagefind-ui-scale));
right: calc(2px * var(--pagefind-ui-scale));
height: calc(60px * var(--pagefind-ui-scale));
border-radius: var(--pagefind-ui-border-radius);
padding: 0 calc(15px * var(--pagefind-ui-scale)) 0 calc(2px * var(--pagefind-ui-scale));
color: var(--pagefind-ui-text);
font-size: calc(14px * var(--pagefind-ui-scale));
cursor: pointer;
background-color: var(--pagefind-ui-background);
border: none;
appearance: none;
}
/* ResultList */
.pagefind-modular-list-result {
list-style-type: none;
display: flex;
align-items: flex-start;
gap: min(calc(40px * var(--pagefind-ui-scale)), 3%);
padding: calc(30px * var(--pagefind-ui-scale)) 0 calc(40px * var(--pagefind-ui-scale));
border-top: solid var(--pagefind-ui-border-width) var(--pagefind-ui-border);
}
.pagefind-modular-list-result:last-of-type {
border-bottom: solid var(--pagefind-ui-border-width) var(--pagefind-ui-border);
}
.pagefind-modular-list-thumb {
width: min(30%,
calc((30% - (100px * var(--pagefind-ui-scale))) * 100000));
max-width: calc(120px * var(--pagefind-ui-scale));
margin-top: calc(10px * var(--pagefind-ui-scale));
aspect-ratio: var(--pagefind-ui-image-box-ratio);
position: relative;
}
.pagefind-modular-list-image {
display: block;
position: absolute;
left: 50%;
transform: translateX(-50%);
font-size: 0;
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
border-radius: var(--pagefind-ui-image-border-radius);
}
.pagefind-modular-list-inner {
flex: 1;
display: flex;
flex-direction: column;
align-items: flex-start;
margin-top: calc(10px * var(--pagefind-ui-scale));
}
.pagefind-modular-list-title {
display: inline-block;
font-weight: 700;
font-size: calc(21px * var(--pagefind-ui-scale));
margin-top: 0;
margin-bottom: 0;
}
.pagefind-modular-list-link {
color: var(--pagefind-ui-text);
text-decoration: none;
}
.pagefind-modular-list-link:hover {
text-decoration: underline;
}
.pagefind-modular-list-excerpt {
display: inline-block;
font-weight: 400;
font-size: calc(16px * var(--pagefind-ui-scale));
margin-top: calc(4px * var(--pagefind-ui-scale));
margin-bottom: 0;
min-width: calc(250px * var(--pagefind-ui-scale));
}
/* FilterPills */
.pagefind-modular-filter-pills-wrapper {
overflow-x: scroll;
padding: 15px 0;
}
.pagefind-modular-filter-pills {
display: flex;
gap: 6px;
}
.pagefind-modular-filter-pill {
display: flex;
justify-content: center;
align-items: center;
border: none;
appearance: none;
padding: 0 calc(24px * var(--pagefind-ui-scale));
background-color: var(--pagefind-ui-background);
color: var(--pagefind-ui-fade);
border: var(--pagefind-ui-border-width) solid var(--pagefind-ui-border);
border-radius: calc(25px * var(--pagefind-ui-scale));
font-size: calc(18px * var(--pagefind-ui-scale));
height: calc(50px * var(--pagefind-ui-scale));
cursor: pointer;
white-space: nowrap;
}
.pagefind-modular-filter-pill:hover {
border-color: var(--pagefind-ui-primary);
}
.pagefind-modular-filter-pill[aria-pressed="true"] {
border-color: var(--pagefind-ui-primary);
color: var(--pagefind-ui-primary);
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
User-agent: *
Allow: /
Sitemap: http://localhost:8000/sitemap.xml
+15
View File
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>http://localhost:8000/de/</loc></url>
<url><loc>http://localhost:8000/</loc></url>
<url><loc>http://localhost:8000/</loc></url>
<url><loc>http://localhost:8000/ueber/</loc></url>
<url><loc>http://localhost:8000/en/</loc></url>
<url><loc>http://localhost:8000/</loc></url>
<url><loc>http://localhost:8000/</loc></url>
<url><loc>http://localhost:8000/ueber/</loc></url>
<url><loc>http://localhost:8000/vi/</loc></url>
<url><loc>http://localhost:8000/</loc></url>
<url><loc>http://localhost:8000/</loc></url>
<url><loc>http://localhost:8000/ueber/</loc></url>
</urlset>
+73
View File
@@ -0,0 +1,73 @@
<!doctype html>
<html lang="vi">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Impressum</title>
<meta name="description" content="Một trang web tĩnh, đa ngôn ngữ.">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Impressum">
<meta property="og:description" content="Một trang web tĩnh, đa ngôn ngữ.">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/impressum/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Impressum">
<meta name="twitter:description" content="Một trang web tĩnh, đa ngôn ngữ.">
<link rel="canonical" href="http://localhost:8000/impressum/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Đến nội dung chính</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Về trang chủ">Trang web của tôi</a>
<nav class="site-nav" aria-label="Điều hướng chính">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Chuyển ngôn ngữ">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h2 id="impressum">Impressum</h2>
<p>Beispiel-Website · Ansprechpartner: webmaster@example.org</p>
<p>© 2026 Beispiel-Website. Erstellt mit GCBoK.WebStaticBuilder (MIT).</p>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>TRANG WEB CỦA TÔI</h4>
<p class="muted">Một ví dụ cho GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="b-ng-thu-t-ng.html">Bảng thuật ngữ</a></li>
<li><a href="impressum.html">Thông tin pháp lý</a></li>
</ul>
<p>© 2026 Trang web của tôi</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+85
View File
@@ -0,0 +1,85 @@
<!doctype html>
<html lang="vi">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Startseite</title>
<meta name="description" content="Die Landing-Page dieser Beispiel-Website">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Startseite">
<meta property="og:description" content="Die Landing-Page dieser Beispiel-Website">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Startseite">
<meta name="twitter:description" content="Die Landing-Page dieser Beispiel-Website">
<link rel="canonical" href="http://localhost:8000/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Đến nội dung chính</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Về trang chủ">Trang web của tôi</a>
<nav class="site-nav" aria-label="Điều hướng chính">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Chuyển ngôn ngữ">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h1 id="willkommen-bei-gcbok.webstaticbuilder">Willkommen bei GCBoK.WebStaticBuilder</h1>
<p>Dies ist der Banner-Block (order 0), der auf der Startseite (Hero/Landing) eingebettet wird.</p>
<h2 id="einfuhrung">Einführung</h2>
<p>Diese Seite wurde mit <strong>GCBoK.WebStaticBuilder</strong> erzeugt — einem statischen, mehrsprachigen
Generator für compliance-freundliche Websites (MIT, OSS).</p>
<h2 id="funktionen">Funktionen</h2>
<ul>
<li>Markdown mit YAML-Frontmatter</li>
<li>Mehrsprachigkeit (de / en / vi)</li>
<li>SEO-Kopf, Sitemap, robots.txt</li>
<li>Client-Suche via Pagefind</li>
<li>UI-Lokalisierung über <code>{{ i18n.* }}</code></li>
</ul>
<h2 id="nachste-schritte">Nächste Schritte</h2>
<p>Siehe <code>docs/</code> im Repository für die Einrichtung.</p>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>TRANG WEB CỦA TÔI</h4>
<p class="muted">Một ví dụ cho GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="b-ng-thu-t-ng.html">Bảng thuật ngữ</a></li>
<li><a href="impressum.html">Thông tin pháp lý</a></li>
</ul>
<p>© 2026 Trang web của tôi</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+81
View File
@@ -0,0 +1,81 @@
<!doctype html>
<html lang="vi">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Über das Projekt</title>
<meta name="description" content="Hintergrund zum Beispiel-Projekt">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Über das Projekt">
<meta property="og:description" content="Hintergrund zum Beispiel-Projekt">
<meta property="og:type" content="website">
<meta property="og:url" content="http://localhost:8000/ueber/">
<meta property="og:locale" content="">
<meta property="og:image" content="/assets/favicon/web-app-manifest-512x512.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Über das Projekt">
<meta name="twitter:description" content="Hintergrund zum Beispiel-Projekt">
<link rel="canonical" href="http://localhost:8000/ueber/">
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<a href="#main" class="skip-link">Đến nội dung chính</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="Về trang chủ">Trang web của tôi</a>
<nav class="site-nav" aria-label="Điều hướng chính">
<a class="nav-gcbok__link" href="ueber.html">Über</a>
</nav>
<div class="lang-dropdown" aria-label="Chuyển ngôn ngữ">
<ul class="lang-dropdown__menu">
<li><a href="/de/" hreflang="de"><span>Deutsch</span> <span class="lang-dropdown__code">DE</span></a></li>
<li><a href="/en/" hreflang="en"><span>English</span> <span class="lang-dropdown__code">EN</span></a></li>
<li><a href="/vi/" hreflang="vi"><span>Tiếng Việt</span> <span class="lang-dropdown__code">VI</span></a></li>
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
<h2 id="uber">Über</h2>
<p>GCBoK.WebStaticBuilder ist ein eigenständiges OSS-Tool der GitCover Commons.
Es erzeugt statische Websites ohne Server, Datenbank oder Build-Service.</p>
<div class="mermaid">graph TD
A[Markdown] --> B(Builder)
B --> C[HTML]
C --> D[Pagefind Index]
</div>
<nav class="page-nav" aria-label="Seitennavigation">
<span class="page-nav__link">&nbsp;</span>
<span class="page-nav__link page-nav__link--next">&nbsp;</span>
</nav>
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>TRANG WEB CỦA TÔI</h4>
<p class="muted">Một ví dụ cho GCBoK.WebStaticBuilder</p>
<ul>
<li><a href="b-ng-thu-t-ng.html">Bảng thuật ngữ</a></li>
<li><a href="impressum.html">Thông tin pháp lý</a></li>
</ul>
<p>© 2026 Trang web của tôi</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>