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; }
@@ -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"
}
@@ -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);
});
})();
+34
View File
@@ -0,0 +1,34 @@
=== Build Started: 2026-07-11 12:00:07.845 ===
ENV: work
BASE_URL: http://localhost:8000
CDN_ASSETS: /assets
ROOT: /mnt/brx5/work/OSS/build_webstatic/webstatic.example
Assets copied to: /mnt/brx5/work/OSS/build_webstatic/webstatic.example/dist/assets
Legal: /mnt/brx5/work/OSS/build_webstatic/webstatic.example/dist/de/impressum.html
Legal: /mnt/brx5/work/OSS/build_webstatic/webstatic.example/dist/en/impressum.html
Legal: /mnt/brx5/work/OSS/build_webstatic/webstatic.example/dist/vi/impressum.html
Pagefind (exit 0): Running Pagefind v1.5.2 (Extended)
Running from: "/mnt/brx5/work/OSS/build_webstatic/webstatic.example"
Source: "dist"
Output: "dist/pagefind"
[Walking source directory]
Found 10 files matching **/*.{html}
[Parsing files]
Found a data-pagefind-body element on the site.
↳ Ignoring pages without this tag.
[Reading languages]
Discovered 3 languages: vi, en, de
[Building search indexes]
Total:
Indexed 3 languages
Indexed 9 pages
Indexed 337 words
Indexed 0 filters
Indexed 0 sorts
Finished in 0.036 seconds
+14
View File
@@ -0,0 +1,14 @@
---
section: hero
order: 0
title: "Banner"
eyebrow: "Beispiel"
description: "Banner-Block für die Startseite"
href: /
render: true
navbar: false
---
# Willkommen bei GCBoK.WebStaticBuilder
Dies ist der Banner-Block (order 0), der auf der Startseite (Hero/Landing) eingebettet wird.
+27
View File
@@ -0,0 +1,27 @@
---
section: start
order: 1
eyebrow: "Startseite"
title: "Startseite"
description: "Die Landing-Page dieser Beispiel-Website"
href: /
render: true
navbar: true
---
## Einführung
Diese Seite wurde mit **GCBoK.WebStaticBuilder** erzeugt — einem statischen, mehrsprachigen
Generator für compliance-freundliche Websites (MIT, OSS).
## Funktionen
- Markdown mit YAML-Frontmatter
- Mehrsprachigkeit (de / en / vi)
- SEO-Kopf, Sitemap, robots.txt
- Client-Suche via Pagefind
- UI-Lokalisierung über `{{ i18n.* }}`
## Nächste Schritte
Siehe `docs/` im Repository für die Einrichtung.
+22
View File
@@ -0,0 +1,22 @@
---
section: about
order: 2
eyebrow: "Über"
title: "Über das Projekt"
description: "Hintergrund zum Beispiel-Projekt"
href: /ueber/
render: true
navbar: true
---
## Über
GCBoK.WebStaticBuilder ist ein eigenständiges OSS-Tool der GitCover Commons.
Es erzeugt statische Websites ohne Server, Datenbank oder Build-Service.
```mermaid
graph TD
A[Markdown] --> B(Builder)
B --> C[HTML]
C --> D[Pagefind Index]
```
@@ -0,0 +1,16 @@
---
section: legal
order: 10
eyebrow: "Rechtliches"
title: "Impressum"
description: "Impressum der Beispiel-Website"
href: /impressum/
render: true
navbar: false
---
## Impressum
Beispiel-Website · Ansprechpartner: webmaster@example.org
© 2026 Beispiel-Website. Erstellt mit GCBoK.WebStaticBuilder (MIT).
+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>
+53
View File
@@ -0,0 +1,53 @@
{
"de": {
"aria": {
"skip": "Zum Hauptinhalt springen",
"brand": "Zur Startseite",
"main_nav": "Hauptnavigation",
"lang_switcher": "Sprachumschalter"
},
"nav": {
"brand": "Meine Website"
},
"footer": {
"col1_heading": "MEINE WEBSITE",
"col1_line2": "Ein Beispiel für GCBoK.WebStaticBuilder",
"col4_imprint": "Impressum",
"bottom_copyright": "© 2026 Meine Website"
}
},
"en": {
"aria": {
"skip": "Skip to main content",
"brand": "Back to home",
"main_nav": "Main navigation",
"lang_switcher": "Language switcher"
},
"nav": {
"brand": "My Website"
},
"footer": {
"col1_heading": "MY WEBSITE",
"col1_line2": "An example for GCBoK.WebStaticBuilder",
"col4_imprint": "Imprint",
"bottom_copyright": "© 2026 My Website"
}
},
"vi": {
"aria": {
"skip": "Đến nội dung chính",
"brand": "Về trang chủ",
"main_nav": "Điều hướng chính",
"lang_switcher": "Chuyển ngôn ngữ"
},
"nav": {
"brand": "Trang web của tôi"
},
"footer": {
"col1_heading": "TRANG WEB CỦA TÔI",
"col1_line2": "Một ví dụ cho GCBoK.WebStaticBuilder",
"col4_imprint": "Thông tin pháp lý",
"bottom_copyright": "© 2026 Trang web của tôi"
}
}
}
+5
View File
@@ -0,0 +1,5 @@
=== Run Started: 2026-07-11 12:00:07.880 ===
Language: de, Files: 3
Language: en, Files: 3
Language: vi, Files: 3
+48
View File
@@ -0,0 +1,48 @@
<!doctype html>
<html lang="{{ lang }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{ seo_head }}
{{ json_ld }}
<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">{{ i18n.aria.skip }}</a>
<header class="site-header">
<a href="index.html" class="brand" aria-label="{{ i18n.aria.brand }}">{{ i18n.nav.brand }}</a>
<nav class="site-nav" aria-label="{{ i18n.aria.main_nav }}">
{{ nav_links }}
</nav>
<div class="lang-dropdown" aria-label="{{ i18n.aria.lang_switcher }}">
<ul class="lang-dropdown__menu">
{{ lang_links }}
</ul>
</div>
</header>
<main id="main" tabindex="-1" data-pagefind-body>
<div class="container">
{{ body }}
{{ page_nav }}
</div>
</main>
<footer class="site-footer">
<div class="container">
<h4>{{ i18n.footer.col1_heading }}</h4>
<p class="muted">{{ i18n.footer.col1_line2 }}</p>
<ul>
<li><a href="{{ glossary_href }}">{{ glossary_label }}</a></li>
<li><a href="impressum.html">{{ i18n.footer.col4_imprint }}</a></li>
</ul>
<p>{{ i18n.footer.bottom_copyright }}</p>
</div>
</footer>
<script src="/assets/js/gcbok-theme.js"></script>
</body>
</html>
+38
View File
@@ -0,0 +1,38 @@
{
"site": {
"name": "Meine Website",
"title": { "de": "Meine Website", "en": "My Website", "vi": "Trang web của tôi" },
"description": {
"de": "Eine mehrsprachige, statische Website.",
"en": "A multilingual, static website.",
"vi": "Một trang web tĩnh, đa ngôn ngữ."
}
},
"default_language": "de",
"languages": {
"de": { "name": "Deutsch", "og_locale": "de_DE", "href_lang": "de", "label": "Deutsch" },
"en": { "name": "English", "og_locale": "en_US", "href_lang": "en", "label": "English" },
"vi": { "name": "Tiếng Việt", "og_locale": "vi_VN", "href_lang": "vi", "label": "Tiếng Việt" }
},
"paths": {
"content": "content",
"templates": "templates",
"assets": "assets",
"output": "dist",
"legal": "legal",
"i18n": "i18n.json"
},
"glossary_section": "glossar",
"glossary": {
"href": { "de": "glossar.html", "en": "glossary.html", "vi": "b-ng-thu-t-ng.html" },
"label": { "de": "Glossar", "en": "Glossary", "vi": "Bảng thuật ngữ" }
},
"pagefind": true,
"translator": { "provider": "azure", "key_env": "WEBSTATIC_TRANSLATOR_KEY" },
"environments": {
"work": { "base_url": "http://localhost:8000", "cdn": "/assets" },
"review": { "base_url": "https://review.gitcover.org", "cdn": "https://gitcover.org/assets" },
"staging": { "base_url": "https://gcbok.gitcover.org", "cdn": "https://gitcover.org/assets" },
"deploy": { "base_url": "https://gcbok.org", "cdn": "https://gitcover.org/assets" }
}
}