Fix download version 0.8.3 → 0.8.2

Korrigiert die fälschlich als 0.8.3 ausgewiesene Aktuell-Version
auf 0.8.2 in Hero, Downloads, FAQ, Changelog und Auto-Updater-Endpoint.
Changelog-Patch-Range entsprechend auf 0.8.0–0.8.1 angepasst.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-28 19:32:14 +02:00
parent e007bdd4e7
commit 09b5600212
20 changed files with 52 additions and 4955 deletions
+2 -2
View File
@@ -6,7 +6,7 @@ toc: false
{{< hextra/hero-badge >}} {{< hextra/hero-badge >}}
<div class="hx:w-2 hx:h-2 hx:rounded-full" style="background: #b07848; box-shadow: 0 0 8px rgba(176,120,72,0.55);"></div> <div class="hx:w-2 hx:h-2 hx:rounded-full" style="background: #b07848; box-shadow: 0 0 8px rgba(176,120,72,0.55);"></div>
<span>Pre-Release 0.8.3 · Aktiv in Entwicklung</span> <span>Pre-Release 0.8.2 · Aktiv in Entwicklung</span>
{{< /hextra/hero-badge >}} {{< /hextra/hero-badge >}}
<div class="hx:mt-8 hx:mb-6"> <div class="hx:mt-8 hx:mb-6">
@@ -23,7 +23,7 @@ toc: false
</div> </div>
<div class="rapport-hero-actions"> <div class="rapport-hero-actions">
<a href="https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.3/RAPPORT%20PRE-RELEASE_0.8.3_aarch64.dmg" target="_blank" rel="noreferrer" class="rapport-btn rapport-btn-primary">Download · 0.8.3 (macOS)</a> <a href="https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.2/RAPPORT%20PRE-RELEASE_0.8.2_aarch64.dmg" target="_blank" rel="noreferrer" class="rapport-btn rapport-btn-primary">Download · 0.8.2 (macOS)</a>
<a href="https://git.kgva.ch/karim/RAPPORT" class="rapport-btn rapport-btn-secondary">Quellcode ↗</a> <a href="https://git.kgva.ch/karim/RAPPORT" class="rapport-btn rapport-btn-secondary">Quellcode ↗</a>
</div> </div>
+3 -3
View File
@@ -7,20 +7,20 @@ toc: true
Versionsgeschichte von RAPPORT. Aktuelle Releases: [Gitea](https://git.kgva.ch/karim/RAPPORT/releases). Versionsgeschichte von RAPPORT. Aktuelle Releases: [Gitea](https://git.kgva.ch/karim/RAPPORT/releases).
## 0.8.3 — Aktuelle Version <span class="rapport-status new">Aktuell</span> ## 0.8.2 — Aktuelle Version <span class="rapport-status new">Aktuell</span>
Veröffentlicht am 2026-05-24. Veröffentlicht am 2026-05-24.
**Neu / Verbessert** **Neu / Verbessert**
- Diverse Verbesserungen und Bugfixes (Details werden im [Release auf Gitea](https://git.kgva.ch/karim/RAPPORT/releases/tag/0.8.3) gepflegt) - Diverse Verbesserungen und Bugfixes (Details werden im [Release auf Gitea](https://git.kgva.ch/karim/RAPPORT/releases/tag/0.8.2) gepflegt)
**Bekannte Einschränkungen** **Bekannte Einschränkungen**
- Builds sind Tauri-signiert, aber noch nicht Apple-notarisiert — siehe [Installation § Gatekeeper](../installation#3--erster-start-macos-gatekeeper) - Builds sind Tauri-signiert, aber noch nicht Apple-notarisiert — siehe [Installation § Gatekeeper](../installation#3--erster-start-macos-gatekeeper)
- Linux- und Windows-Builds noch nicht verfügbar - Linux- und Windows-Builds noch nicht verfügbar
## 0.8.00.8.2 — Patch-Releases ## 0.8.00.8.1 — Patch-Releases
Patch-Reihe mit kleineren Verbesserungen und Bugfixes. Details siehe [Releases auf Gitea](https://git.kgva.ch/karim/RAPPORT/releases). Patch-Reihe mit kleineren Verbesserungen und Bugfixes. Details siehe [Releases auf Gitea](https://git.kgva.ch/karim/RAPPORT/releases).
+4 -4
View File
@@ -11,22 +11,22 @@ Rapport besteht aus zwei Komponenten:
| Komponente | Für wen | Aktuelle Version | | Komponente | Für wen | Aktuelle Version |
|---|---|---| |---|---|---|
| **Desktop-App** | Solo-Büro, lokale Datenhaltung | 0.8.3 | | **Desktop-App** | Solo-Büro, lokale Datenhaltung | 0.8.2 |
| **Rapport Server** | Team / Multi-User / Selfhost | 0.1.0 | | **Rapport Server** | Team / Multi-User / Selfhost | 0.1.0 |
--- ---
## Desktop-App — Pre-Release 0.8.3 ## Desktop-App — Pre-Release 0.8.2
<span class="rapport-status new">Aktuelle Version</span> <span class="rapport-status new">Aktuelle Version</span>
**Neuerungen** — siehe [Changelog](../docs/changelog#083) für Details. **Neuerungen** — siehe [Changelog](../docs/changelog#082) für Details.
### macOS ### macOS
| Architektur | Download | | Architektur | Download |
|---|---| |---|---|
| **Apple Silicon (M1M4)** | [RAPPORT_0.8.3_aarch64.dmg](https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.3/RAPPORT%20PRE-RELEASE_0.8.3_aarch64.dmg) | | **Apple Silicon (M1M4)** | [RAPPORT_0.8.2_aarch64.dmg](https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.2/RAPPORT%20PRE-RELEASE_0.8.2_aarch64.dmg) |
| **Intel (x86_64)** | [auf Anfrage](https://git.kgva.ch/karim/RAPPORT/issues/new) | | **Intel (x86_64)** | [auf Anfrage](https://git.kgva.ch/karim/RAPPORT/issues/new) |
> **Erstinstallation:** *Systemeinstellungen → Datenschutz & Sicherheit* öffnen und Rapport zulassen. Die Builds sind über Tauri signiert, aber (noch) nicht Apple-notarisiert. > **Erstinstallation:** *Systemeinstellungen → Datenschutz & Sicherheit* öffnen und Rapport zulassen. Die Builds sind über Tauri signiert, aber (noch) nicht Apple-notarisiert.
+1 -1
View File
@@ -30,7 +30,7 @@ In beiden Fällen bleibt die Kontrolle über die Daten bei dir.
## Ist die Software stabil genug für den Betrieb? ## Ist die Software stabil genug für den Betrieb?
**Noch nicht.** Aktuell befindet sich Rapport in aktiver Entwicklung (Pre-Release **0.8.3**). Funktionen können sich ändern, Bugs sind möglich. Regelmässige Backups sind empfohlen. Testen und Feedback geben ist erwünscht. **Noch nicht.** Aktuell befindet sich Rapport in aktiver Entwicklung (Pre-Release **0.8.2**). Funktionen können sich ändern, Bugs sind möglich. Regelmässige Backups sind empfohlen. Testen und Feedback geben ist erwünscht.
## Was ist mit dem QR-Einzahlungsschein? ## Was ist mit dem QR-Einzahlungsschein?
+3 -3
View File
@@ -36,13 +36,13 @@ Updates können in den Einstellungen komplett deaktiviert werden.
```json ```json
{ {
"version": "0.8.3", "version": "0.8.2",
"notes": "Rapport 0.8.3", "notes": "Rapport 0.8.2",
"pub_date": "2026-05-24T00:00:00Z", "pub_date": "2026-05-24T00:00:00Z",
"platforms": { "platforms": {
"darwin-aarch64": { "darwin-aarch64": {
"signature": "…", "signature": "…",
"url": "https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.3/RAPPORT%20PRE-RELEASE.app.tar.gz" "url": "https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.2/RAPPORT%20PRE-RELEASE.app.tar.gz"
} }
} }
} }
File diff suppressed because one or more lines are too long
-756
View File
@@ -1,756 +0,0 @@
/* ─────────────────────────────────────────────────────────────
RAPPORT — Theme-Overrides für Hextra
Warmes Sand/Tan auf hellem Grund (Architektur-Büro-Ästhetik)
───────────────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');
/* Krungthep — RAPPORT-Display-Font (Mac-System-Font lokal gebundelt) */
@font-face {
font-family: 'Krungthep';
src: url('/fonts/Krungthep.ttf') format('truetype');
font-weight: 400;
font-style: normal;
font-display: swap;
}
/* — Primary-HSL: Tan #b07848 — */
:root {
--primary-hue: 26deg;
--primary-saturation: 42%;
--primary-lightness: 49%;
/* RAPPORT-Palette (Light) */
--rapport-bg: #f7f5f2;
--rapport-surface: #ffffff;
--rapport-surface2: #fbf9f5;
--rapport-dark: #1a1a18;
--rapport-dark2: #2d2d28;
--rapport-accent: #b07848;
--rapport-accent-2: #9a673b;
--rapport-accent-3: #7d5430;
--rapport-text: #1a1a18;
--rapport-text-2: #555550;
--rapport-text-3: #888880;
--rapport-text-4: #aaaaaa;
--rapport-border: #e8e3dc;
--rapport-border-2: #d8d2ca;
}
.dark {
--primary-hue: 26deg;
--primary-saturation: 42%;
--primary-lightness: 56%;
--color-dark: var(--rapport-dark);
}
/* — Body & Backgrounds — */
body {
background: var(--rapport-bg);
color: var(--rapport-text);
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
}
.dark body {
background: #181614;
color: #ece9e3;
}
::selection {
background: rgba(176, 120, 72, 0.25);
color: var(--rapport-dark);
}
.dark ::selection {
background: rgba(176, 120, 72, 0.35);
color: #fff;
}
/* — Typografie — Headings serifig, Body monospaced — */
.hextra-toc,
.content,
.prose {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
}
h1, h2, h3, h4,
.hextra-home h1, .hextra-home h2, .hextra-home h3,
.hx\:text-2xl, .hx\:text-3xl, .hx\:text-4xl, .hx\:text-5xl, .hx\:text-6xl {
font-family: 'Playfair Display', Georgia, serif !important;
font-weight: 700 !important;
letter-spacing: -0.01em;
}
/* Navbar-Logo: RAPPORT in Krungthep/Archivo Black — nur navbar! */
.hextra-navbar-title,
nav .hextra-navbar-title,
nav .hextra-max-navbar-width .hx\:font-bold {
font-family: Krungthep, 'Archivo Black', sans-serif !important;
letter-spacing: -0.02em !important;
font-weight: 900 !important;
}
/* — Navbar mit hellem Hintergrund & dezenter Border — */
.nav-container {
background: rgba(247, 245, 242, 0.85) !important;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-bottom: 1px solid var(--rapport-border) !important;
}
.dark .nav-container {
background: rgba(24, 22, 20, 0.85) !important;
border-bottom: 1px solid #2d2926 !important;
}
.nav-container-blur,
.dark .nav-container-blur {
background: transparent !important;
}
/* — Sidebar — */
aside.sidebar-container,
.sidebar-container {
background: var(--rapport-bg) !important;
border-right: 1px solid var(--rapport-border);
}
.sidebar-container a {
color: var(--rapport-text-2);
}
.sidebar-container a:hover {
color: var(--rapport-accent);
background: var(--rapport-surface);
}
.sidebar-active-item,
.sidebar-container .sidebar-active-item {
background: rgba(176, 120, 72, 0.10) !important;
color: var(--rapport-accent) !important;
border-color: rgba(176, 120, 72, 0.20) !important;
}
.dark aside.sidebar-container,
.dark .sidebar-container {
background: #181614 !important;
border-right: 1px solid #2d2926;
}
/* — Links — */
a {
transition: color 0.15s;
}
.content a,
.prose a {
color: var(--rapport-accent);
text-decoration: none;
}
.content a:hover,
.prose a:hover {
color: var(--rapport-accent-2);
text-decoration: underline;
}
/* Hextra-Card-Links (<cards>-Shortcode) sollen NIE unterstrichen werden */
.hextra-card,
.hextra-card:hover,
.hextra-card:focus,
.hextra-card:active,
.hextra-card *,
.hextra-card:hover * {
text-decoration: none !important;
}
/* Card-Hover-Effekt sauber: nur Border + leichte Schatten, kein Underline */
a.hextra-card:hover,
a.hextra-card:focus {
outline: none;
text-decoration: none !important;
}
/* — RAPPORT Hero-Buttons — eigene Pills, nicht von Hextra abhängig — */
.rapport-hero-actions {
display: flex;
gap: 18px;
align-items: center;
justify-content: center;
flex-wrap: wrap;
margin-top: 8px;
margin-bottom: 8px;
}
.rapport-btn {
display: inline-flex;
align-items: center;
gap: 9px;
border-radius: 999px;
padding: 14px 30px;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
font-size: 12px;
font-weight: 500;
letter-spacing: 0.07em;
text-transform: uppercase;
text-decoration: none !important;
cursor: pointer;
transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease;
user-select: none;
white-space: nowrap;
}
/* Primary (Download) — Weiss mit Tiefe */
.rapport-btn-primary {
background: #ffffff;
color: var(--rapport-text) !important;
border: 1px solid var(--rapport-border);
box-shadow:
0 1px 0 rgba(255,255,255,0.9) inset,
0 2px 4px rgba(0,0,0,0.04),
0 8px 20px rgba(0,0,0,0.10),
0 16px 40px rgba(0,0,0,0.08);
}
.rapport-btn-primary:hover {
background: #ffffff;
border-color: var(--rapport-border-2);
color: var(--rapport-accent-2) !important;
transform: translateY(-2px);
box-shadow:
0 1px 0 rgba(255,255,255,0.9) inset,
0 4px 8px rgba(0,0,0,0.06),
0 14px 28px rgba(0,0,0,0.12),
0 24px 56px rgba(176,120,72,0.18);
}
.rapport-btn-primary:active {
transform: translateY(0);
box-shadow:
0 1px 0 rgba(255,255,255,0.9) inset,
0 2px 4px rgba(0,0,0,0.06),
0 4px 12px rgba(0,0,0,0.08);
}
/* Secondary (Quellcode) — Outline */
.rapport-btn-secondary {
background: transparent;
color: var(--rapport-text-2) !important;
border: 1.5px solid var(--rapport-border-2);
box-shadow: 0 2px 6px rgba(0,0,0,0.03);
}
.rapport-btn-secondary:hover {
background: rgba(255,255,255,0.5);
border-color: var(--rapport-text-3);
color: var(--rapport-text) !important;
transform: translateY(-2px);
box-shadow:
0 6px 14px rgba(0,0,0,0.06),
0 12px 28px rgba(0,0,0,0.04);
}
.rapport-btn-secondary:active {
transform: translateY(0);
}
/* Dark-Mode-Varianten */
.dark .rapport-btn-primary {
background: #2a2722;
color: #ece9e3 !important;
border-color: #3a3530;
box-shadow:
0 1px 0 rgba(255,255,255,0.04) inset,
0 2px 4px rgba(0,0,0,0.30),
0 10px 24px rgba(0,0,0,0.45);
}
.dark .rapport-btn-primary:hover {
background: #322e28;
color: var(--rapport-accent) !important;
box-shadow:
0 1px 0 rgba(255,255,255,0.04) inset,
0 4px 8px rgba(0,0,0,0.40),
0 16px 32px rgba(0,0,0,0.50),
0 24px 56px rgba(176,120,72,0.22);
}
.dark .rapport-btn-secondary {
border-color: #3a3530;
color: #b8b2a8 !important;
}
.dark .rapport-btn-secondary:hover {
background: rgba(255,255,255,0.04);
border-color: #6a6258;
color: #ece9e3 !important;
}
/* — Hero-Badge — */
.hextra-badge {
background: var(--rapport-surface) !important;
border: 1px solid var(--rapport-border) !important;
border-radius: 20px !important;
padding: 5px 14px !important;
font-size: 10px !important;
letter-spacing: 0.12em !important;
color: var(--rapport-text-4) !important;
text-transform: uppercase !important;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif !important;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
}
/* — Feature-Cards — */
.hextra-feature-card {
background: var(--rapport-surface) !important;
border: 1px solid var(--rapport-border) !important;
border-radius: 14px !important;
transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s !important;
}
.hextra-feature-card:hover {
border-color: var(--rapport-border-2) !important;
transform: translateY(-2px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.09), 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}
.hextra-feature-card h3 {
font-family: 'Playfair Display', serif !important;
color: var(--rapport-text) !important;
font-weight: 700 !important;
}
.hextra-feature-card p {
color: var(--rapport-text-2) !important;
font-size: 12px !important;
line-height: 1.8 !important;
}
.dark .hextra-feature-card {
background: #211e1a !important;
border-color: #2d2926 !important;
}
.dark .hextra-feature-card h3 {
color: #ece9e3 !important;
}
.dark .hextra-feature-card p {
color: #b8b2a8 !important;
}
/* — Generic Cards (Hextra <cards> shortcode) — */
.hextra-card {
background: var(--rapport-surface);
border: 1px solid var(--rapport-border);
border-radius: 12px;
transition: border-color 0.2s, transform 0.2s;
}
.hextra-card:hover {
border-color: var(--rapport-accent-2);
transform: translateY(-1px);
}
/* — Code-Blocks — */
.hextra-code-block {
background: #ffffff !important;
border: 1px solid var(--rapport-border) !important;
border-radius: 12px !important;
overflow: hidden;
}
.hextra-code-block pre,
.hextra-code-block .highlight,
.hextra-code-block .chroma {
background: transparent !important;
border: none !important;
border-radius: 0 !important;
margin: 0 !important;
}
pre {
background: var(--rapport-surface2);
border: none;
}
code, pre, pre code, kbd, samp, tt {
font-family: ui-monospace, 'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', monospace !important;
}
code {
color: var(--rapport-accent-3) !important;
background: rgba(176, 120, 72, 0.10) !important;
padding: 2px 6px;
border-radius: 4px;
font-size: 0.9em;
}
pre code {
color: var(--rapport-text) !important;
background: transparent !important;
padding: 0;
font-size: 0.9em;
}
.dark .hextra-code-block {
background: #1f1c19 !important;
border-color: #2d2926 !important;
}
.dark .hextra-code-block pre,
.dark .hextra-code-block .highlight,
.dark .hextra-code-block .chroma {
background: transparent !important;
border: none !important;
}
.dark code {
color: var(--rapport-accent) !important;
background: rgba(176, 120, 72, 0.15) !important;
}
.dark pre code {
color: #ece9e3 !important;
}
/* — Callouts — */
.hextra-callout {
background: var(--rapport-surface) !important;
border-color: var(--rapport-border-2) !important;
}
/* — Footer — */
.hextra-footer,
footer {
background: var(--rapport-surface2);
border-top: 1px solid var(--rapport-border);
color: var(--rapport-text-3);
}
.hextra-footer a {
color: var(--rapport-text-2);
}
.hextra-footer a:hover {
color: var(--rapport-accent);
}
.dark .hextra-footer,
.dark footer {
background: #15130f;
border-top: 1px solid #2d2926;
color: #888880;
}
/* — TOC — */
.hextra-toc a {
color: var(--rapport-text-3);
}
.hextra-toc a:hover,
.hextra-toc .active {
color: var(--rapport-accent) !important;
}
/* Hextra-Sticky-Bottom-Fades (TOC "Nach oben" + Sidebar-Footer) — */
/* der hardcoded weisse Fade passt nicht zum cremefarbenen RAPPORT-Bg */
.hextra-toc div:has(> #backToTop),
[data-toggle-animation] {
background: var(--rapport-bg) !important;
box-shadow: none !important;
border-top-color: var(--rapport-border) !important;
}
.dark .hextra-toc div:has(> #backToTop),
.dark [data-toggle-animation] {
background: #181614 !important;
border-top-color: #2d2926 !important;
box-shadow: none !important;
}
/* — Search — */
.hextra-search-wrapper input {
background: var(--rapport-surface) !important;
border: 1px solid var(--rapport-border) !important;
color: var(--rapport-text) !important;
}
.hextra-search-wrapper input:focus {
border-color: var(--rapport-accent-2) !important;
}
/* — Tabellen — */
table {
border-color: var(--rapport-border) !important;
}
thead {
background: var(--rapport-surface) !important;
}
th, td {
border-color: var(--rapport-border) !important;
}
/* ─────────────────────────────────────────────────────────────
RAPPORT-LOGO-KARTE (Hero) — Dark Card auf hellem Grund
───────────────────────────────────────────────────────────── */
.rapport-logo-card {
background: var(--rapport-dark);
border: 1px solid var(--rapport-dark2);
border-radius: 999px;
padding: 28px 64px 26px;
display: inline-block;
box-shadow: 6px 0 20px rgba(0, 0, 0, 0.18), 0 6px 16px rgba(0, 0, 0, 0.12);
text-align: center;
margin: 0 auto 32px;
}
.rapport-logo-text {
font-family: 'Krungthep', 'Archivo Black', sans-serif !important;
font-size: 48px;
letter-spacing: -0.02em;
color: #f0ede8;
line-height: 0.95;
font-weight: 400;
}
.rapport-logo-sub {
font-size: 9px;
letter-spacing: 0.15em;
color: #f0ede8;
text-transform: uppercase;
margin-top: 8px;
font-weight: 500;
}
/* — Hero-Meta-Pillen — */
.rapport-meta {
display: flex;
gap: 6px;
align-items: center;
justify-content: center;
flex-wrap: wrap;
margin-top: 32px;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
}
.rapport-meta-item {
font-size: 10px;
letter-spacing: 0.08em;
color: var(--rapport-text-4);
text-transform: uppercase;
padding: 0 10px;
border-right: 1px solid var(--rapport-border);
}
.rapport-meta-item:last-child {
border-right: none;
}
/* — Status-Badges (in Arbeit / Geplant / Stabil / Neu) — */
/* Einheitlich: weisse Pill mit dunklem Text — wie Download-Button */
.rapport-status,
.rapport-status.active,
.rapport-status.planned,
.rapport-status.stable,
.rapport-status.new {
display: inline-block;
font-size: 10px;
letter-spacing: 0.12em;
text-transform: uppercase;
padding: 5px 14px;
border-radius: 999px;
margin-bottom: 12px;
font-weight: 600;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
background: #ffffff;
color: var(--rapport-text);
border: 1px solid var(--rapport-border);
box-shadow:
0 1px 0 rgba(255,255,255,0.9) inset,
0 1px 2px rgba(0,0,0,0.04),
0 3px 8px rgba(0,0,0,0.06);
}
.dark .rapport-status,
.dark .rapport-status.active,
.dark .rapport-status.planned,
.dark .rapport-status.stable,
.dark .rapport-status.new {
background: #2a2722;
color: #ece9e3;
border-color: #3a3530;
box-shadow:
0 1px 0 rgba(255,255,255,0.04) inset,
0 1px 2px rgba(0,0,0,0.30),
0 4px 10px rgba(0,0,0,0.35);
}
/* — Stack-Bar (am Footer) — */
.rapport-stack-bar {
padding: 20px 0;
border-top: 1px solid var(--rapport-border);
display: flex;
align-items: center;
gap: 20px;
flex-wrap: wrap;
margin-top: 32px;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
}
.rapport-stack-label {
font-size: 10px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--rapport-text-4);
flex-shrink: 0;
}
.rapport-stack-items {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.rapport-stack-item {
font-size: 10px;
letter-spacing: 0.06em;
color: var(--rapport-text-3);
background: var(--rapport-surface);
border: 1px solid var(--rapport-border);
border-radius: 6px;
padding: 4px 10px;
}
/* — Reduce default content max-width slightly for monospace lines — */
.content article {
max-width: 100%;
}
/* ─────────────────────────────────────────────────────────────
HOME-HERO — zentriertes Layout wie auf der alten Website
───────────────────────────────────────────────────────────── */
/* Inhalt der home Page zentrieren */
.hextra-home {
align-items: center !important;
text-align: center;
max-width: 100%;
}
/* Subtitle zentriert, schmaler max-width, Playfair Display */
.hextra-home > p,
.hextra-home .not-prose.hx\:text-xl {
font-family: 'Playfair Display', serif !important;
font-size: clamp(16px, 2.2vw, 24px) !important;
font-weight: 400 !important;
color: var(--rapport-text-3) !important;
max-width: 560px !important;
margin-left: auto !important;
margin-right: auto !important;
line-height: 1.55 !important;
text-align: center;
}
/* Buttons immer in einer zentrierten Zeile */
.hextra-home > div.hx\:flex,
.hextra-home > .hx\:flex {
justify-content: center;
align-items: center;
}
/* Hero-Button matches RAPPORT design (dark on cream) */
.hextra-home .hextra-hero-button,
a.hextra-hero-button {
background: var(--rapport-dark);
color: #f0ede8 !important;
border-radius: 20px;
padding: 13px 28px;
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif !important;
font-size: 11px !important;
font-weight: 500 !important;
letter-spacing: 0.07em !important;
text-transform: uppercase !important;
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.20);
transition: all 0.18s;
display: inline-flex;
align-items: center;
gap: 9px;
}
/* Feature-Grid linksbündig (Text in Cards) */
.hextra-home .hextra-feature-grid,
.hextra-home .rapport-stack-bar {
text-align: left;
width: 100%;
}
.hextra-home .hextra-feature-card * {
text-align: left;
}
.rapport-stack-bar {
justify-content: flex-start;
text-align: left;
}
/* Section-Heading & Eyebrow vor dem Feature-Grid zentrieren */
.hextra-home h2,
.hextra-home > div > h2 {
text-align: center;
margin-left: auto;
margin-right: auto;
}
/* RAPPORT-Logo bleibt zentriert */
.hextra-home .rapport-logo-card {
margin-left: auto;
margin-right: auto;
display: block;
}
/* Hero-Badge zentrieren */
.hextra-home .hextra-badge,
.hextra-home > p:has(.hextra-badge) {
margin-left: auto;
margin-right: auto;
display: inline-flex !important;
}
/* Hero-Background-Glow — sanfter Tan-Halo */
body:has(.hextra-home)::before {
content: "";
position: fixed;
top: 5%;
left: 50%;
transform: translateX(-50%);
width: 720px;
height: 720px;
background: radial-gradient(circle, rgba(176, 120, 72, 0.08) 0%, transparent 60%);
pointer-events: none;
z-index: 0;
}
.dark body:has(.hextra-home)::before {
background: radial-gradient(circle, rgba(176, 120, 72, 0.12) 0%, transparent 60%);
}
/* Navbar-Logo — RAPPORT-Schriftzug in Krungthep, etwas grösser */
.hextra-navbar-title,
nav a[href="/"] span,
nav [class*="font-bold"] {
font-family: 'Krungthep', 'Archivo Black', sans-serif !important;
letter-spacing: -0.02em !important;
font-weight: 400 !important;
font-size: 23px !important;
line-height: 1 !important;
}
/* RAPPORT-Meta-Pillen zentriert */
.rapport-meta {
justify-content: center;
text-align: center;
}
-26
View File
@@ -1,26 +0,0 @@
/* Hugo template to derive CSS variables from site and page parameters */
/* Do not remove the following comment. It is used by Hugo to render CSS variables.*/
:root {
--hextra-max-page-width: 80rem;
--hextra-max-content-width: 72rem;
--hextra-max-navbar-width: 80rem;
--hextra-max-footer-width: 80rem;
}
.hextra-max-page-width {
max-width: var(--hextra-max-page-width);
}
.hextra-max-content-width {
max-width: var(--hextra-max-content-width);
}
.hextra-max-navbar-width {
max-width: var(--hextra-max-navbar-width);
}
.hextra-max-footer-width {
max-width: var(--hextra-max-footer-width);
}
File diff suppressed because one or more lines are too long
-490
View File
@@ -1,490 +0,0 @@
// Search functionality using FlexSearch.
// Change shortcut key to cmd+k on Mac, iPad or iPhone.
document.addEventListener("DOMContentLoaded", function () {
if (/iPad|iPhone|Macintosh/.test(navigator.userAgent)) {
// select the kbd element under the .hextra-search-wrapper class
const keys = document.querySelectorAll(".hextra-search-wrapper kbd");
keys.forEach(key => {
key.innerHTML = '<span class="hx:text-xs">⌘</span>K';
});
}
});
// Render the search data as JSON.
//
//
//
//
(function () {
const searchDataURL = '/de.search-data.json';
const resultsFoundTemplate = '%d Ergebnisse gefunden';
const inputElements = document.querySelectorAll('.hextra-search-input');
for (const el of inputElements) {
el.addEventListener('focus', init);
el.addEventListener('keyup', search);
el.addEventListener('keydown', handleKeyDown);
el.addEventListener('input', handleInputChange);
}
const shortcutElements = document.querySelectorAll('.hextra-search-wrapper kbd');
function setShortcutElementsOpacity(opacity) {
shortcutElements.forEach(el => {
el.style.opacity = opacity;
});
}
function handleInputChange(e) {
const opacity = e.target.value.length > 0 ? 0 : 100;
setShortcutElementsOpacity(opacity);
}
// Get the search wrapper, input, and results elements.
function getActiveSearchElement() {
const inputs = Array.from(document.querySelectorAll('.hextra-search-wrapper')).filter(el => el.clientHeight > 0);
if (inputs.length === 1) {
return {
wrapper: inputs[0],
inputElement: inputs[0].querySelector('.hextra-search-input'),
resultsElement: inputs[0].querySelector('.hextra-search-results')
};
}
return undefined;
}
const INPUTS = ['input', 'select', 'button', 'textarea']
// Focus the search input when pressing ctrl+k/cmd+k or /.
document.addEventListener('keydown', function (e) {
const { inputElement } = getActiveSearchElement();
if (!inputElement) return;
const activeElement = document.activeElement;
const tagName = activeElement && activeElement.tagName;
if (
inputElement === activeElement ||
!tagName ||
INPUTS.includes(tagName) ||
(activeElement && activeElement.isContentEditable))
return;
if (
e.key === '/' ||
(e.key === 'k' &&
(e.metaKey /* for Mac */ || /* for non-Mac */ e.ctrlKey))
) {
e.preventDefault();
inputElement.focus();
} else if (e.key === 'Escape' && inputElement.value) {
inputElement.blur();
}
});
// Dismiss the search results when clicking outside the search box.
document.addEventListener('mousedown', function (e) {
const { inputElement, resultsElement } = getActiveSearchElement();
if (!inputElement || !resultsElement) return;
if (
e.target !== inputElement &&
e.target !== resultsElement &&
!resultsElement.contains(e.target)
) {
setShortcutElementsOpacity(100);
hideSearchResults();
}
});
// Get the currently active result and its index.
function getActiveResult() {
const { resultsElement } = getActiveSearchElement();
if (!resultsElement) return { result: undefined, index: -1 };
const result = resultsElement.querySelector('.hextra-search-active');
if (!result) return { result: undefined, index: -1 };
const index = parseInt(result.dataset.index, 10);
return { result, index };
}
// Set the active result by index.
function setActiveResult(index) {
const { resultsElement } = getActiveSearchElement();
if (!resultsElement) return;
const { result: activeResult } = getActiveResult();
activeResult && activeResult.classList.remove('hextra-search-active');
const result = resultsElement.querySelector(`[data-index="${index}"]`);
if (result) {
result.classList.add('hextra-search-active');
result.focus();
}
}
// Get the number of search results from the DOM.
function getResultsLength() {
const { resultsElement } = getActiveSearchElement();
if (!resultsElement) return 0;
return resultsElement.dataset.count;
}
// Finish the search by hiding the results and clearing the input.
function finishSearch() {
const { inputElement } = getActiveSearchElement();
if (!inputElement) return;
hideSearchResults();
inputElement.value = '';
inputElement.blur();
}
function hideSearchResults() {
const { resultsElement } = getActiveSearchElement();
if (!resultsElement) return;
resultsElement.classList.add('hx:hidden');
}
// Handle keyboard events.
function handleKeyDown(e) {
const { inputElement } = getActiveSearchElement();
if (!inputElement) return;
const resultsLength = getResultsLength();
const { result: activeResult, index: activeIndex } = getActiveResult();
switch (e.key) {
case 'ArrowUp':
e.preventDefault();
if (activeIndex > 0) setActiveResult(activeIndex - 1);
break;
case 'ArrowDown':
e.preventDefault();
if (activeIndex + 1 < resultsLength) setActiveResult(activeIndex + 1);
break;
case 'Enter':
e.preventDefault();
if (activeResult) {
activeResult.click();
}
finishSearch();
case 'Escape':
e.preventDefault();
hideSearchResults();
// Clear the input when pressing escape
inputElement.value = '';
inputElement.dispatchEvent(new Event('input'));
// Remove focus from the input
inputElement.blur();
break;
}
}
// Initializes the search.
function init(e) {
e.target.removeEventListener('focus', init);
if (!(window.pageIndex && window.sectionIndex)) {
preloadIndex();
}
}
/**
* Preloads the search index by fetching data and adding it to the FlexSearch index.
* @returns {Promise<void>} A promise that resolves when the index is preloaded.
*/
async function preloadIndex() {
const tokenize = 'forward';
// https://github.com/TryGhost/Ghost/pull/21148
const regex = new RegExp(
`[\u{4E00}-\u{9FFF}\u{3040}-\u{309F}\u{30A0}-\u{30FF}\u{AC00}-\u{D7A3}\u{3400}-\u{4DBF}\u{20000}-\u{2A6DF}\u{2A700}-\u{2B73F}\u{2B740}-\u{2B81F}\u{2B820}-\u{2CEAF}\u{2CEB0}-\u{2EBEF}\u{30000}-\u{3134F}\u{31350}-\u{323AF}\u{2EBF0}-\u{2EE5F}\u{F900}-\u{FAFF}\u{2F800}-\u{2FA1F}]|[0-9A-Za-zа\u00C0-\u017F\u0400-\u04FF\u0600-\u06FF\u0980-\u09FF\u1E00-\u1EFF\u0590-\u05FF]+`,
'mug'
);
const encode = (str) => { return ('' + str).toLowerCase().match(regex) ?? []; }
window.pageIndex = new FlexSearch.Document({
tokenize,
encode,
cache: 100,
document: {
id: 'id',
store: ['title', 'crumb'],
index: "content"
}
});
window.sectionIndex = new FlexSearch.Document({
tokenize,
encode,
cache: 100,
document: {
id: 'id',
store: ['title', 'content', 'url', 'display', 'crumb'],
index: "content",
tag: [{
field: "pageId"
}]
}
});
const resp = await fetch(searchDataURL);
const data = await resp.json();
let pageId = 0;
for (const route in data) {
let pageContent = '';
++pageId;
const urlParts = route.split('/').filter(x => x != "" && !x.startsWith('#'));
let crumb = '';
let searchUrl = '/';
for (let i = 0; i < urlParts.length; i++) {
const urlPart = urlParts[i];
searchUrl += urlPart + '/'
const crumbData = data[searchUrl];
if (!crumbData) {
console.debug('Excluded page', searchUrl, '- will not be included for search result breadcrumb for', route);
continue;
}
let title = data[searchUrl].title;
if (title == "_index") {
title = urlPart.split("-").map(x => x).join(" ");
}
crumb += title;
if (i < urlParts.length - 1) {
crumb += ' > ';
}
}
for (const heading in data[route].data) {
const [hash, text] = heading.split('#');
const url = route.trimEnd('/') + (hash ? '#' + hash : '');
const title = text || data[route].title;
const content = data[route].data[heading] || '';
const paragraphs = content.split('\n').filter(Boolean);
sectionIndex.add({
id: url,
url,
title,
crumb,
pageId: `page_${pageId}`,
content: title,
...(paragraphs[0] && { display: paragraphs[0] })
});
for (let i = 0; i < paragraphs.length; i++) {
sectionIndex.add({
id: `${url}_${i}`,
url,
title,
crumb,
pageId: `page_${pageId}`,
content: paragraphs[i]
});
}
pageContent += ` ${title} ${content}`;
}
window.pageIndex.add({
id: pageId,
title: data[route].title,
crumb,
content: pageContent
});
}
}
/**
* Performs a search based on the provided query and displays the results.
* @param {Event} e - The event object.
*/
function search(e) {
const query = e.target.value;
if (!e.target.value) {
hideSearchResults();
return;
}
const { resultsElement } = getActiveSearchElement();
while (resultsElement.firstChild) {
resultsElement.removeChild(resultsElement.firstChild);
}
resultsElement.classList.remove('hx:hidden');
// Configurable search limits with sensible defaults
const maxPageResults = parseInt('20', 10);
const maxSectionResults = parseInt('10', 10);
const pageResults = window.pageIndex.search(query, maxPageResults, { enrich: true, suggest: true })[0]?.result || [];
const results = [];
const pageTitleMatches = {};
for (let i = 0; i < pageResults.length; i++) {
const result = pageResults[i];
pageTitleMatches[i] = 0;
const sectionResults = window.sectionIndex.search(query,
{ enrich: true, suggest: true, tag: { 'pageId': `page_${result.id}` } })[0]?.result || [];
let isFirstItemOfPage = true
const occurred = {}
const nResults = Math.min(sectionResults.length, maxSectionResults);
for (let j = 0; j < nResults; j++) {
const { doc } = sectionResults[j]
const isMatchingTitle = doc.display !== undefined
if (isMatchingTitle) {
pageTitleMatches[i]++
}
const { url, title } = doc
const content = doc.display || doc.content
if (occurred[url + '@' + content]) continue
occurred[url + '@' + content] = true
results.push({
_page_rk: i,
_section_rk: j,
route: url,
prefix: isFirstItemOfPage ? result.doc.crumb : undefined,
children: { title, content }
})
isFirstItemOfPage = false
}
}
const sortedResults = results
.sort((a, b) => {
// Sort by number of matches in the title.
if (a._page_rk === b._page_rk) {
return a._section_rk - b._section_rk
}
if (pageTitleMatches[a._page_rk] !== pageTitleMatches[b._page_rk]) {
return pageTitleMatches[b._page_rk] - pageTitleMatches[a._page_rk]
}
return a._page_rk - b._page_rk
})
.map(res => ({
id: `${res._page_rk}_${res._section_rk}`,
route: res.route,
prefix: res.prefix,
children: res.children
}));
displayResults(sortedResults, query);
}
/**
* Displays the search results on the page.
*
* @param {Array} results - The array of search results.
* @param {string} query - The search query.
*/
function displayResults(results, query) {
const { resultsElement } = getActiveSearchElement();
if (!resultsElement) return;
if (!results.length) {
resultsElement.innerHTML = `<span class="hextra-search-no-result">Keine Ergebnisse gefunden.</span>`;
// Announce no results to screen readers
const wrapper = resultsElement.closest('.hextra-search-wrapper');
const statusEl = wrapper ? wrapper.querySelector('.hextra-search-status') : null;
if (statusEl) {
statusEl.textContent = 'Keine Ergebnisse gefunden.';
}
return;
}
// Append text with highlighted matches using safe text nodes.
function appendHighlightedText(container, text, query) {
if (!text) return;
if (!query) {
container.textContent = text;
return;
}
const escapedQuery = query.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
if (!escapedQuery) {
container.textContent = text;
return;
}
const regex = new RegExp(escapedQuery, 'gi');
let lastIndex = 0;
let match;
while ((match = regex.exec(text)) !== null) {
if (match.index > lastIndex) {
container.appendChild(document.createTextNode(text.slice(lastIndex, match.index)));
}
const span = document.createElement('span');
span.className = 'hextra-search-match';
span.textContent = match[0];
container.appendChild(span);
lastIndex = match.index + match[0].length;
}
if (lastIndex < text.length) {
container.appendChild(document.createTextNode(text.slice(lastIndex)));
}
}
function handleMouseMove(e) {
const target = e.target.closest('a');
if (target) {
const active = resultsElement.querySelector('a.hextra-search-active');
if (active) {
active.classList.remove('hextra-search-active');
}
target.classList.add('hextra-search-active');
}
}
const fragment = document.createDocumentFragment();
for (let i = 0; i < results.length; i++) {
const result = results[i];
if (result.prefix) {
const prefix = document.createElement('div');
prefix.className = 'hextra-search-prefix';
prefix.textContent = result.prefix;
fragment.appendChild(prefix);
}
const li = document.createElement('li');
const link = document.createElement('a');
link.dataset.index = i;
link.href = result.route;
if (i === 0) {
link.classList.add('hextra-search-active');
}
const title = document.createElement('div');
title.className = 'hextra-search-title';
appendHighlightedText(title, result.children.title, query);
link.appendChild(title);
if (result.children.content) {
const excerpt = document.createElement('div');
excerpt.className = 'hextra-search-excerpt';
appendHighlightedText(excerpt, result.children.content, query);
link.appendChild(excerpt);
}
li.appendChild(link);
li.addEventListener('mousemove', handleMouseMove);
li.addEventListener('keydown', handleKeyDown);
link.addEventListener('click', finishSearch);
fragment.appendChild(li);
}
resultsElement.appendChild(fragment);
resultsElement.dataset.count = results.length;
// Announce results count to screen readers
const wrapper = resultsElement.closest('.hextra-search-wrapper');
const statusEl = wrapper ? wrapper.querySelector('.hextra-search-status') : null;
if (statusEl) {
statusEl.textContent = results.length > 0
? resultsFoundTemplate.replace('%d', results.length.toString())
: 'Keine Ergebnisse gefunden.';
}
}
})();
File diff suppressed because one or more lines are too long
+5 -5
View File
@@ -1365,11 +1365,11 @@ data-copied-label="Kopiert!"
&lt;p&gt;Versionsgeschichte von RAPPORT. Aktuelle Releases: &lt;a href="https://git.kgva.ch/karim/RAPPORT/releases"target="_blank" rel="noopener"&gt;Gitea&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt; &lt;p&gt;Versionsgeschichte von RAPPORT. Aktuelle Releases: &lt;a href="https://git.kgva.ch/karim/RAPPORT/releases"target="_blank" rel="noopener"&gt;Gitea&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt; &lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt; &lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;0.8.3 — Aktuelle Version &lt;span class="rapport-status new"&gt;Aktuell&lt;/span&gt;&lt;span class="hx:absolute hx:-mt-20" id="083--aktuelle-version-aktuell"&gt;&lt;/span&gt; &lt;h2&gt;0.8.2 — Aktuelle Version &lt;span class="rapport-status new"&gt;Aktuell&lt;/span&gt;&lt;span class="hx:absolute hx:-mt-20" id="082--aktuelle-version-aktuell"&gt;&lt;/span&gt;
&lt;a href="#083--aktuelle-version-aktuell" class="subheading-anchor" aria-label="Permalink für diesen Abschnitt"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Veröffentlicht am 2026-05-24.&lt;/p&gt; &lt;a href="#082--aktuelle-version-aktuell" class="subheading-anchor" aria-label="Permalink für diesen Abschnitt"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Veröffentlicht am 2026-05-24.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Neu / Verbessert&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Neu / Verbessert&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt; &lt;ul&gt;
&lt;li&gt;Diverse Verbesserungen und Bugfixes (Details werden im &lt;a href="https://git.kgva.ch/karim/RAPPORT/releases/tag/0.8.3"target="_blank" rel="noopener"&gt;Release auf Gitea&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt; &lt;li&gt;Diverse Verbesserungen und Bugfixes (Details werden im &lt;a href="https://git.kgva.ch/karim/RAPPORT/releases/tag/0.8.2"target="_blank" rel="noopener"&gt;Release auf Gitea&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt; &lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; gepflegt)&lt;/li&gt; &lt;/svg&gt;&lt;/a&gt; gepflegt)&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
@@ -1378,8 +1378,8 @@ data-copied-label="Kopiert!"
&lt;li&gt;Builds sind Tauri-signiert, aber noch nicht Apple-notarisiert — siehe &lt;a href="../installation#3--erster-start-macos-gatekeeper"&gt;Installation § Gatekeeper&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Builds sind Tauri-signiert, aber noch nicht Apple-notarisiert — siehe &lt;a href="../installation#3--erster-start-macos-gatekeeper"&gt;Installation § Gatekeeper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux- und Windows-Builds noch nicht verfügbar&lt;/li&gt; &lt;li&gt;Linux- und Windows-Builds noch nicht verfügbar&lt;/li&gt;
&lt;/ul&gt; &lt;/ul&gt;
&lt;h2&gt;0.8.00.8.2 — Patch-Releases&lt;span class="hx:absolute hx:-mt-20" id="080082--patch-releases"&gt;&lt;/span&gt; &lt;h2&gt;0.8.00.8.1 — Patch-Releases&lt;span class="hx:absolute hx:-mt-20" id="080081--patch-releases"&gt;&lt;/span&gt;
&lt;a href="#080082--patch-releases" class="subheading-anchor" aria-label="Permalink für diesen Abschnitt"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Patch-Reihe mit kleineren Verbesserungen und Bugfixes. Details siehe &lt;a href="https://git.kgva.ch/karim/RAPPORT/releases"target="_blank" rel="noopener"&gt;Releases auf Gitea&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt; &lt;a href="#080081--patch-releases" class="subheading-anchor" aria-label="Permalink für diesen Abschnitt"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Patch-Reihe mit kleineren Verbesserungen und Bugfixes. Details siehe &lt;a href="https://git.kgva.ch/karim/RAPPORT/releases"target="_blank" rel="noopener"&gt;Releases auf Gitea&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt; &lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt; &lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;0.7.0 — Auto-Updater &amp;amp; System-Tray&lt;span class="hx:absolute hx:-mt-20" id="070--auto-updater--system-tray"&gt;&lt;/span&gt; &lt;h2&gt;0.7.0 — Auto-Updater &amp;amp; System-Tray&lt;span class="hx:absolute hx:-mt-20" id="070--auto-updater--system-tray"&gt;&lt;/span&gt;
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -35,7 +35,7 @@ System
<a href=#ist-rapport-kostenlos class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p><strong>Ja, vollständig.</strong> Quellcode unter GNU AGPL-3.0-or-later. Keine versteckten Kosten, keine Telemetrie. Die Daten bleiben lokal auf deinem Computer bzw. in deiner Instanz. Du hast die komplette Kontrolle über deine Daten.</p><h2>Welche Systeme werden unterstützt?<span class="hx:absolute hx:-mt-20" id=welche-systeme-werden-unterstützt></span> <a href=#ist-rapport-kostenlos class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p><strong>Ja, vollständig.</strong> Quellcode unter GNU AGPL-3.0-or-later. Keine versteckten Kosten, keine Telemetrie. Die Daten bleiben lokal auf deinem Computer bzw. in deiner Instanz. Du hast die komplette Kontrolle über deine Daten.</p><h2>Welche Systeme werden unterstützt?<span class="hx:absolute hx:-mt-20" id=welche-systeme-werden-unterstützt></span>
<a href=#welche-systeme-werden-unterst%c3%bctzt class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Aktuell nur <strong>macOS</strong> (Intel & Apple Silicon). Rapport basiert auf Tauri — eine Portierung auf <strong>Linux</strong> und <strong>Windows</strong> ist möglich, sobald der Bedarf seitens Community besteht.</p><h2>Wo werden die Daten gespeichert?<span class="hx:absolute hx:-mt-20" id=wo-werden-die-daten-gespeichert></span> <a href=#welche-systeme-werden-unterst%c3%bctzt class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Aktuell nur <strong>macOS</strong> (Intel & Apple Silicon). Rapport basiert auf Tauri — eine Portierung auf <strong>Linux</strong> und <strong>Windows</strong> ist möglich, sobald der Bedarf seitens Community besteht.</p><h2>Wo werden die Daten gespeichert?<span class="hx:absolute hx:-mt-20" id=wo-werden-die-daten-gespeichert></span>
<a href=#wo-werden-die-daten-gespeichert class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Rapport unterstützt <strong>zwei Modi</strong>, beide selbst-gehostet:</p><ul><li><strong>Desktop-App (Single-User)</strong> — alle Daten liegen lokal auf deinem Mac (<code>localStorage</code> im Applikationsordner). Kein Server nötig, kein Cloud-Account, keine Telemetrie.</li><li><strong>Server-Modus (Multi-User)</strong> — Daten in einer eigenen PostgreSQL-Datenbank über <a href=../server>Rapport Server</a>. Mehrere Personen, Realtime-Sync, eigene Domain. Wechsel direkt im Login-Bildschirm der App.</li></ul><p>In beiden Fällen bleibt die Kontrolle über die Daten bei dir.</p><h2>Ist die Software stabil genug für den Betrieb?<span class="hx:absolute hx:-mt-20" id=ist-die-software-stabil-genug-für-den-betrieb></span> <a href=#wo-werden-die-daten-gespeichert class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Rapport unterstützt <strong>zwei Modi</strong>, beide selbst-gehostet:</p><ul><li><strong>Desktop-App (Single-User)</strong> — alle Daten liegen lokal auf deinem Mac (<code>localStorage</code> im Applikationsordner). Kein Server nötig, kein Cloud-Account, keine Telemetrie.</li><li><strong>Server-Modus (Multi-User)</strong> — Daten in einer eigenen PostgreSQL-Datenbank über <a href=../server>Rapport Server</a>. Mehrere Personen, Realtime-Sync, eigene Domain. Wechsel direkt im Login-Bildschirm der App.</li></ul><p>In beiden Fällen bleibt die Kontrolle über die Daten bei dir.</p><h2>Ist die Software stabil genug für den Betrieb?<span class="hx:absolute hx:-mt-20" id=ist-die-software-stabil-genug-für-den-betrieb></span>
<a href=#ist-die-software-stabil-genug-f%c3%bcr-den-betrieb class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p><strong>Noch nicht.</strong> Aktuell befindet sich Rapport in aktiver Entwicklung (Pre-Release <strong>0.8.3</strong>). Funktionen können sich ändern, Bugs sind möglich. Regelmässige Backups sind empfohlen. Testen und Feedback geben ist erwünscht.</p><h2>Was ist mit dem QR-Einzahlungsschein?<span class="hx:absolute hx:-mt-20" id=was-ist-mit-dem-qr-einzahlungsschein></span> <a href=#ist-die-software-stabil-genug-f%c3%bcr-den-betrieb class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p><strong>Noch nicht.</strong> Aktuell befindet sich Rapport in aktiver Entwicklung (Pre-Release <strong>0.8.2</strong>). Funktionen können sich ändern, Bugs sind möglich. Regelmässige Backups sind empfohlen. Testen und Feedback geben ist erwünscht.</p><h2>Was ist mit dem QR-Einzahlungsschein?<span class="hx:absolute hx:-mt-20" id=was-ist-mit-dem-qr-einzahlungsschein></span>
<a href=#was-ist-mit-dem-qr-einzahlungsschein class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Rapport erzeugt <strong>Schweizer QR-Rechnungen</strong> nach Norm — direkt eingebettet in das PDF der Rechnung. IBAN, Bürodaten und Empfänger werden aus den Einstellungen bzw. den Kundendaten gezogen. Akonto-, Teil- und Schlussrechnungen werden unterstützt.</p><h2>Wie funktioniert die Zeiterfassung?<span class="hx:absolute hx:-mt-20" id=wie-funktioniert-die-zeiterfassung></span> <a href=#was-ist-mit-dem-qr-einzahlungsschein class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Rapport erzeugt <strong>Schweizer QR-Rechnungen</strong> nach Norm — direkt eingebettet in das PDF der Rechnung. IBAN, Bürodaten und Empfänger werden aus den Einstellungen bzw. den Kundendaten gezogen. Akonto-, Teil- und Schlussrechnungen werden unterstützt.</p><h2>Wie funktioniert die Zeiterfassung?<span class="hx:absolute hx:-mt-20" id=wie-funktioniert-die-zeiterfassung></span>
<a href=#wie-funktioniert-die-zeiterfassung class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Tages- und Wochenraster mit <strong>Drag & Drop</strong>. Jeder Eintrag wird einem Projekt zugewiesen. Auswertungen pro Mitarbeiter und Projekt sind unter <em>Zeit</em> abrufbar. Ferienverwaltung mit Prorata und Jahresabschluss mit Überstundenausgleich.</p><h2>Kann ich zum Projekt beitragen?<span class="hx:absolute hx:-mt-20" id=kann-ich-zum-projekt-beitragen></span> <a href=#wie-funktioniert-die-zeiterfassung class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p>Tages- und Wochenraster mit <strong>Drag & Drop</strong>. Jeder Eintrag wird einem Projekt zugewiesen. Auswertungen pro Mitarbeiter und Projekt sind unter <em>Zeit</em> abrufbar. Ferienverwaltung mit Prorata und Jahresabschluss mit Überstundenausgleich.</p><h2>Kann ich zum Projekt beitragen?<span class="hx:absolute hx:-mt-20" id=kann-ich-zum-projekt-beitragen></span>
<a href=#kann-ich-zum-projekt-beitragen class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p><strong>Ja.</strong> Issues und Pull Requests sind willkommen auf <a href=https://git.kgva.ch/karim/RAPPORT target=_blank rel=noopener>Gitea<svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/></svg></a>. Rapport ist kein Framework — konkrete Verbesserungen für den <strong>Büroalltag</strong> sind am wertvollsten:</p><ul><li>Bug-Reports mit Reproduktionsschritten</li><li>Workflow-Verbesserungen aus dem realen Büroalltag</li><li>Vorlagen (Briefe, Protokolle, Lieferscheine) für andere Büros</li><li>Übersetzungen / Internationalisierung</li></ul><h2>Wie erhalte ich Hilfe bei einem Problem?<span class="hx:absolute hx:-mt-20" id=wie-erhalte-ich-hilfe-bei-einem-problem></span> <a href=#kann-ich-zum-projekt-beitragen class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><p><strong>Ja.</strong> Issues und Pull Requests sind willkommen auf <a href=https://git.kgva.ch/karim/RAPPORT target=_blank rel=noopener>Gitea<svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/></svg></a>. Rapport ist kein Framework — konkrete Verbesserungen für den <strong>Büroalltag</strong> sind am wertvollsten:</p><ul><li>Bug-Reports mit Reproduktionsschritten</li><li>Workflow-Verbesserungen aus dem realen Büroalltag</li><li>Vorlagen (Briefe, Protokolle, Lieferscheine) für andere Büros</li><li>Übersetzungen / Internationalisierung</li></ul><h2>Wie erhalte ich Hilfe bei einem Problem?<span class="hx:absolute hx:-mt-20" id=wie-erhalte-ich-hilfe-bei-einem-problem></span>
+3 -3
View File
@@ -60,13 +60,13 @@ System
<a href=#sicherheit class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><ul><li>Updates werden mit dem <strong>Tauri-Updater-Schlüssel</strong> signiert</li><li>Manipulierte Downloads werden abgelehnt</li><li>Quellcode und Build sind reproduzierbar (Gitea CI, geplant)</li></ul><h2>Optionen<span class="hx:absolute hx:-mt-20" id=optionen></span> <a href=#sicherheit class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><ul><li>Updates werden mit dem <strong>Tauri-Updater-Schlüssel</strong> signiert</li><li>Manipulierte Downloads werden abgelehnt</li><li>Quellcode und Build sind reproduzierbar (Gitea CI, geplant)</li></ul><h2>Optionen<span class="hx:absolute hx:-mt-20" id=optionen></span>
<a href=#optionen class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><ul><li><strong>Update installieren</strong> — Download & Neustart</li><li><strong>Diese Version überspringen</strong> — überspringt nur diese eine Version</li><li><strong>Später erinnern</strong> — beim nächsten Start erneut fragen</li></ul><p>Updates können in den Einstellungen komplett deaktiviert werden.</p><h2>Latest-Endpoint<span class="hx:absolute hx:-mt-20" id=latest-endpoint></span> <a href=#optionen class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><ul><li><strong>Update installieren</strong> — Download & Neustart</li><li><strong>Diese Version überspringen</strong> — überspringt nur diese eine Version</li><li><strong>Später erinnern</strong> — beim nächsten Start erneut fragen</li></ul><p>Updates können in den Einstellungen komplett deaktiviert werden.</p><h2>Latest-Endpoint<span class="hx:absolute hx:-mt-20" id=latest-endpoint></span>
<a href=#latest-endpoint class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"><div><div class=highlight><pre tabindex=0 class=chroma><code class=language-json data-lang=json><span class=line><span class=cl><span class=p>{</span> <a href=#latest-endpoint class=subheading-anchor aria-label="Permalink für diesen Abschnitt"></a></h2><div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"><div><div class=highlight><pre tabindex=0 class=chroma><code class=language-json data-lang=json><span class=line><span class=cl><span class=p>{</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;version&#34;</span><span class=p>:</span> <span class=s2>&#34;0.8.3&#34;</span><span class=p>,</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;version&#34;</span><span class=p>:</span> <span class=s2>&#34;0.8.2&#34;</span><span class=p>,</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;notes&#34;</span><span class=p>:</span> <span class=s2>&#34;Rapport 0.8.3&#34;</span><span class=p>,</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;notes&#34;</span><span class=p>:</span> <span class=s2>&#34;Rapport 0.8.2&#34;</span><span class=p>,</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;pub_date&#34;</span><span class=p>:</span> <span class=s2>&#34;2026-05-24T00:00:00Z&#34;</span><span class=p>,</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;pub_date&#34;</span><span class=p>:</span> <span class=s2>&#34;2026-05-24T00:00:00Z&#34;</span><span class=p>,</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;platforms&#34;</span><span class=p>:</span> <span class=p>{</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;platforms&#34;</span><span class=p>:</span> <span class=p>{</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;darwin-aarch64&#34;</span><span class=p>:</span> <span class=p>{</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;darwin-aarch64&#34;</span><span class=p>:</span> <span class=p>{</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;signature&#34;</span><span class=p>:</span> <span class=s2>&#34;&#34;</span><span class=p>,</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;signature&#34;</span><span class=p>:</span> <span class=s2>&#34;&#34;</span><span class=p>,</span>
</span></span><span class=line><span class=cl> <span class=nt>&#34;url&#34;</span><span class=p>:</span> <span class=s2>&#34;https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.3/RAPPORT%20PRE-RELEASE.app.tar.gz&#34;</span> </span></span><span class=line><span class=cl> <span class=nt>&#34;url&#34;</span><span class=p>:</span> <span class=s2>&#34;https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.2/RAPPORT%20PRE-RELEASE.app.tar.gz&#34;</span>
</span></span><span class=line><span class=cl> <span class=p>}</span> </span></span><span class=line><span class=cl> <span class=p>}</span>
</span></span><span class=line><span class=cl> <span class=p>}</span> </span></span><span class=line><span class=cl> <span class=p>}</span>
</span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"><button class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50" title="Code kopieren" aria-label="Code kopieren" data-copied-label=Kopiert!><div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div><div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div></button></div></div></div><div class=hx:mt-16></div></main></article></div><footer class="hextra-footer hx:bg-gray-100 hx:pb-[env(safe-area-inset-bottom)] hx:dark:bg-neutral-900 hx:print:bg-transparent"><div class="hx:mx-auto hx:flex hx:gap-2 hx:py-2 hx:px-4 hextra-max-footer-width"><div class="hx:flex hx:justify-items-start hx:group" data-theme=light><button title="Darstellung ändern" data-state=closed data-location=bottom class="hextra-theme-toggle hx:cursor-pointer hx:rounded-md hx:text-left hx:font-medium hx:h-7 hx:px-2 hx:text-xs hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:dark:hover:bg-primary-100/5 hx:dark:hover:text-gray-50 hx:font-medium hx:text-gray-600 hx:transition-colors hx:dark:text-gray-400 hx:grow" type=button aria-label="Darstellung ändern" aria-expanded=false aria-haspopup=menu><div class="hx:flex hx:items-center hx:gap-2 hx:capitalize"><svg height="12" class="hx:group-data-[theme=dark]:hidden hx:group-data-[theme=system]:hidden" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364-.707-.707M6.343 6.343l-.707-.707m12.728.0-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg><span class="hx:group-data-[theme=dark]:hidden hx:group-data-[theme=system]:hidden">Hell</span><svg height="12" class="hx:group-data-[theme=light]:hidden hx:group-data-[theme=system]:hidden" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003.0 0012 21a9.003 9.003.0 008.354-5.646z"/></svg><span class="hx:group-data-[theme=light]:hidden hx:group-data-[theme=system]:hidden">Dunkel</span><svg height="12" class="hx:group-data-[theme=dark]:hidden hx:group-data-[theme=light]:hidden" viewBox="0 0 24 24" fill="currentColor"><path d="M11.996094 2C6.4986225 2.0192368 2.03125 6.5024993 2.03125 12c0 5.497501 4.4673725 9.980763 9.964844 10H12 12.0039c5.497471-.01924 9.964844-4.502499 9.964844-10 0-5.4975007-4.467373-9.9807632-9.964844-10H12zM12 4c4.417218.017598 7.96875 3.5822356 7.96875 8 0 4.417764-3.551532 7.982402-7.96875 8z"/></svg> </span></span><span class=line><span class=cl><span class=p>}</span></span></span></code></pre></div></div><div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"><button class="hextra-code-copy-btn hx:group/copybtn hx:cursor-pointer hx:transition-all hx:active:opacity-50 hx:bg-primary-700/5 hx:border hx:border-black/5 hx:text-gray-600 hx:hover:text-gray-900 hx:rounded-md hx:p-1.5 hx:dark:bg-primary-300/10 hx:dark:border-white/10 hx:dark:text-gray-400 hx:dark:hover:text-gray-50" title="Code kopieren" aria-label="Code kopieren" data-copied-label=Kopiert!><div class="hextra-copy-icon hx:group-[.copied]/copybtn:hidden hx:pointer-events-none hx:h-4 hx:w-4"></div><div class="hextra-success-icon hx:hidden hx:group-[.copied]/copybtn:block hx:pointer-events-none hx:h-4 hx:w-4"></div></button></div></div></div><div class=hx:mt-16></div></main></article></div><footer class="hextra-footer hx:bg-gray-100 hx:pb-[env(safe-area-inset-bottom)] hx:dark:bg-neutral-900 hx:print:bg-transparent"><div class="hx:mx-auto hx:flex hx:gap-2 hx:py-2 hx:px-4 hextra-max-footer-width"><div class="hx:flex hx:justify-items-start hx:group" data-theme=light><button title="Darstellung ändern" data-state=closed data-location=bottom class="hextra-theme-toggle hx:cursor-pointer hx:rounded-md hx:text-left hx:font-medium hx:h-7 hx:px-2 hx:text-xs hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:dark:hover:bg-primary-100/5 hx:dark:hover:text-gray-50 hx:font-medium hx:text-gray-600 hx:transition-colors hx:dark:text-gray-400 hx:grow" type=button aria-label="Darstellung ändern" aria-expanded=false aria-haspopup=menu><div class="hx:flex hx:items-center hx:gap-2 hx:capitalize"><svg height="12" class="hx:group-data-[theme=dark]:hidden hx:group-data-[theme=system]:hidden" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364-.707-.707M6.343 6.343l-.707-.707m12.728.0-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"/></svg><span class="hx:group-data-[theme=dark]:hidden hx:group-data-[theme=system]:hidden">Hell</span><svg height="12" class="hx:group-data-[theme=light]:hidden hx:group-data-[theme=system]:hidden" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003.0 0012 21a9.003 9.003.0 008.354-5.646z"/></svg><span class="hx:group-data-[theme=light]:hidden hx:group-data-[theme=system]:hidden">Dunkel</span><svg height="12" class="hx:group-data-[theme=dark]:hidden hx:group-data-[theme=light]:hidden" viewBox="0 0 24 24" fill="currentColor"><path d="M11.996094 2C6.4986225 2.0192368 2.03125 6.5024993 2.03125 12c0 5.497501 4.4673725 9.980763 9.964844 10H12 12.0039c5.497471-.01924 9.964844-4.502499 9.964844-10 0-5.4975007-4.467373-9.9807632-9.964844-10H12zM12 4c4.417218.017598 7.96875 3.5822356 7.96875 8 0 4.417764-3.551532 7.982402-7.96875 8z"/></svg>
+3 -3
View File
@@ -277,13 +277,13 @@
&lt;h2&gt;Latest-Endpoint&lt;span class="hx:absolute hx:-mt-20" id="latest-endpoint"&gt;&lt;/span&gt; &lt;h2&gt;Latest-Endpoint&lt;span class="hx:absolute hx:-mt-20" id="latest-endpoint"&gt;&lt;/span&gt;
&lt;a href="#latest-endpoint" class="subheading-anchor" aria-label="Permalink für diesen Abschnitt"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt; &lt;a href="#latest-endpoint" class="subheading-anchor" aria-label="Permalink für diesen Abschnitt"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;div class="hextra-code-block hx:relative hx:mt-6 hx:first:mt-0 hx:group/code"&gt;
&lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0.8.3&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;0.8.2&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;notes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Rapport 0.8.3&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;notes&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Rapport 0.8.2&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;pub_date&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2026-05-24T00:00:00Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;pub_date&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2026-05-24T00:00:00Z&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;platforms&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;platforms&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;darwin-aarch64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;darwin-aarch64&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;signature&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;…&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;signature&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;…&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.3/RAPPORT%20PRE-RELEASE.app.tar.gz&amp;#34;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.2/RAPPORT%20PRE-RELEASE.app.tar.gz&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="hextra-code-copy-btn-container hx:opacity-0 hx:transition hx:group-hover/code:opacity-100 hx:flex hx:gap-1 hx:absolute hx:m-[11px] hx:right-0 hx:top-0"&gt;
+2 -2
View File
@@ -4,7 +4,7 @@
"><meta property="og:type" content=" "><meta property="og:type" content="
website website
"><meta property="og:url" content="https://rapport.gabrielevarano.ch/"><meta itemprop=name content="RAPPORT"><meta itemprop=description content="Pre-Release 0.8.3 · Aktiv in Entwicklung RAPPORT Studio Administration Die Studio Management Software für Architekturbüros mit offenem Quellcode — Zeiterfassung, Rechnungen, Offerten, Projekte, Mitarbeiter und QR-Einzahlungsscheine in einer App. Download · 0.8.3 (macOS) Quellcode ↗ AGPL-3.0 Tauri + React macOS (später Linux & Windows) Lokal / Selfhosting ZIEL"><meta itemprop=wordCount content="252"><meta name=twitter:card content="summary"><meta name=twitter:title content="RAPPORT"><meta name=twitter:description content="Pre-Release 0.8.3 · Aktiv in Entwicklung RAPPORT Studio Administration Die Studio Management Software für Architekturbüros mit offenem Quellcode — Zeiterfassung, Rechnungen, Offerten, Projekte, Mitarbeiter und QR-Einzahlungsscheine in einer App. Download · 0.8.3 (macOS) Quellcode ↗ AGPL-3.0 Tauri + React macOS (später Linux & Windows) Lokal / Selfhosting ZIEL"><link rel=preload href=/css/compiled/main.min.3f70c37b0f2ce37d160ca0a36b7edfe7d6718ac312bc985e36fe9fb736850a27.css as=style integrity="sha256-P3DDew8s430WDKCja37f59ZxisMSvJheNv6ftzaFCic="><link href=/css/compiled/main.min.3f70c37b0f2ce37d160ca0a36b7edfe7d6718ac312bc985e36fe9fb736850a27.css rel=stylesheet integrity="sha256-P3DDew8s430WDKCja37f59ZxisMSvJheNv6ftzaFCic="><script src=/js/main-head.min.2375b7265ea066ecb314226ce5ff17478453df5f350d34d830b3fc96fba21672.js integrity="sha256-I3W3Jl6gZuyzFCJs5f8XR4RT3181DTTYMLP8lvuiFnI="></script></head><body><a href=#content class="hx:sr-only hx:focus-visible:not-sr-only hx:focus-visible:fixed hx:focus-visible:z-50 hx:focus-visible:top-2 hx:focus-visible:left-2 hx:focus-visible:bg-primary-500 hx:focus-visible:text-white hx:focus-visible:px-4 hx:focus-visible:py-2 hx:focus-visible:rounded-md hx:focus-visible:text-sm hx:focus-visible:font-medium">Zum Inhalt springen</a><div class="hextra-nav-container hx:sticky hx:top-0 hx:z-20 hx:w-full hx:bg-transparent hx:print:hidden"><div class="hextra-nav-container-blur hx:pointer-events-none hx:absolute hx:z-[-1] hx:h-full hx:w-full hx:bg-white hx:dark:bg-dark hx:shadow-[0_2px_4px_rgba(0,0,0,.02),0_1px_0_rgba(0,0,0,.06)] hx:contrast-more:shadow-[0_0_0_1px_#000] hx:dark:shadow-[0_-1px_0_rgba(255,255,255,.1)_inset] hx:contrast-more:dark:shadow-[0_0_0_1px_#fff]"></div><nav class="hextra-max-navbar-width hx:mx-auto hx:flex hx:items-center hx:justify-end hx:gap-2 hx:h-16 hx:px-6"><a class="hx:flex hx:items-center hx:hover:opacity-75 hx:ltr:mr-auto hx:rtl:ml-auto" href=/><span class="hx:mr-2 hx:font-extrabold hx:inline hx:select-none">RAPPORT</span> "><meta property="og:url" content="https://rapport.gabrielevarano.ch/"><meta itemprop=name content="RAPPORT"><meta itemprop=description content="Pre-Release 0.8.2 · Aktiv in Entwicklung RAPPORT Studio Administration Die Studio Management Software für Architekturbüros mit offenem Quellcode — Zeiterfassung, Rechnungen, Offerten, Projekte, Mitarbeiter und QR-Einzahlungsscheine in einer App. Download · 0.8.2 (macOS) Quellcode ↗ AGPL-3.0 Tauri + React macOS (später Linux & Windows) Lokal / Selfhosting ZIEL"><meta itemprop=wordCount content="252"><meta name=twitter:card content="summary"><meta name=twitter:title content="RAPPORT"><meta name=twitter:description content="Pre-Release 0.8.2 · Aktiv in Entwicklung RAPPORT Studio Administration Die Studio Management Software für Architekturbüros mit offenem Quellcode — Zeiterfassung, Rechnungen, Offerten, Projekte, Mitarbeiter und QR-Einzahlungsscheine in einer App. Download · 0.8.2 (macOS) Quellcode ↗ AGPL-3.0 Tauri + React macOS (später Linux & Windows) Lokal / Selfhosting ZIEL"><link rel=preload href=/css/compiled/main.min.3f70c37b0f2ce37d160ca0a36b7edfe7d6718ac312bc985e36fe9fb736850a27.css as=style integrity="sha256-P3DDew8s430WDKCja37f59ZxisMSvJheNv6ftzaFCic="><link href=/css/compiled/main.min.3f70c37b0f2ce37d160ca0a36b7edfe7d6718ac312bc985e36fe9fb736850a27.css rel=stylesheet integrity="sha256-P3DDew8s430WDKCja37f59ZxisMSvJheNv6ftzaFCic="><script src=/js/main-head.min.2375b7265ea066ecb314226ce5ff17478453df5f350d34d830b3fc96fba21672.js integrity="sha256-I3W3Jl6gZuyzFCJs5f8XR4RT3181DTTYMLP8lvuiFnI="></script></head><body><a href=#content class="hx:sr-only hx:focus-visible:not-sr-only hx:focus-visible:fixed hx:focus-visible:z-50 hx:focus-visible:top-2 hx:focus-visible:left-2 hx:focus-visible:bg-primary-500 hx:focus-visible:text-white hx:focus-visible:px-4 hx:focus-visible:py-2 hx:focus-visible:rounded-md hx:focus-visible:text-sm hx:focus-visible:font-medium">Zum Inhalt springen</a><div class="hextra-nav-container hx:sticky hx:top-0 hx:z-20 hx:w-full hx:bg-transparent hx:print:hidden"><div class="hextra-nav-container-blur hx:pointer-events-none hx:absolute hx:z-[-1] hx:h-full hx:w-full hx:bg-white hx:dark:bg-dark hx:shadow-[0_2px_4px_rgba(0,0,0,.02),0_1px_0_rgba(0,0,0,.06)] hx:contrast-more:shadow-[0_0_0_1px_#000] hx:dark:shadow-[0_-1px_0_rgba(255,255,255,.1)_inset] hx:contrast-more:dark:shadow-[0_0_0_1px_#fff]"></div><nav class="hextra-max-navbar-width hx:mx-auto hx:flex hx:items-center hx:justify-end hx:gap-2 hx:h-16 hx:px-6"><a class="hx:flex hx:items-center hx:hover:opacity-75 hx:ltr:mr-auto hx:rtl:ml-auto" href=/><span class="hx:mr-2 hx:font-extrabold hx:inline hx:select-none">RAPPORT</span>
</a><a title href=/docs class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-flex hx:items-center hx:gap-1 hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200"><span class=hx:text-center>Dokumentation</span> </a><a title href=/docs class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-flex hx:items-center hx:gap-1 hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200"><span class=hx:text-center>Dokumentation</span>
</a><a title href=/features class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-flex hx:items-center hx:gap-1 hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200"><span class=hx:text-center>Features</span> </a><a title href=/features class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-flex hx:items-center hx:gap-1 hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200"><span class=hx:text-center>Features</span>
</a><a title href=/downloads class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-flex hx:items-center hx:gap-1 hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200"><span class=hx:text-center>Downloads</span> </a><a title href=/downloads class="hx:text-sm hx:contrast-more:text-gray-700 hx:contrast-more:dark:text-gray-100 hx:relative hx:-ml-2 hx:hidden hx:whitespace-nowrap hx:p-2 hx:md:inline-flex hx:items-center hx:gap-1 hx:text-gray-600 hx:hover:text-gray-800 hx:dark:text-gray-400 hx:dark:hover:text-gray-200"><span class=hx:text-center>Downloads</span>
@@ -22,7 +22,7 @@ Hell
Dunkel Dunkel
<span class="hx:absolute hx:inset-y-0 hx:flex hx:items-center hx:ltr:right-3 hx:rtl:left-3 hx:group-data-[theme=light]:hidden hx:group-data-[theme=system]:hidden"><svg height="1em" width="1em" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></span></button></li><li role=none class="hx:flex hx:flex-col"><button type=button role=menuitemradio aria-checked=false tabindex=-1 data-item=system class="hx:text-gray-700 hx:dark:text-gray-300 hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:dark:hover:bg-neutral-800 hx:dark:hover:text-gray-100 hx:relative hx:cursor-pointer hx:whitespace-nowrap hx:rounded-sm hx:py-1.5 hx:transition-colors hx:ltr:pl-3 hx:ltr:pr-9 hx:rtl:pr-3 hx:rtl:pl-9 hx:text-left hx:w-full hx:bg-transparent hx:border-0"> <span class="hx:absolute hx:inset-y-0 hx:flex hx:items-center hx:ltr:right-3 hx:rtl:left-3 hx:group-data-[theme=light]:hidden hx:group-data-[theme=system]:hidden"><svg height="1em" width="1em" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></span></button></li><li role=none class="hx:flex hx:flex-col"><button type=button role=menuitemradio aria-checked=false tabindex=-1 data-item=system class="hx:text-gray-700 hx:dark:text-gray-300 hx:hover:bg-gray-100 hx:hover:text-gray-900 hx:dark:hover:bg-neutral-800 hx:dark:hover:text-gray-100 hx:relative hx:cursor-pointer hx:whitespace-nowrap hx:rounded-sm hx:py-1.5 hx:transition-colors hx:ltr:pl-3 hx:ltr:pr-9 hx:rtl:pr-3 hx:rtl:pl-9 hx:text-left hx:w-full hx:bg-transparent hx:border-0">
System System
<span class="hx:absolute hx:inset-y-0 hx:flex hx:items-center hx:ltr:right-3 hx:rtl:left-3 hx:group-data-[theme=dark]:hidden hx:group-data-[theme=light]:hidden"><svg height="1em" width="1em" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></span></button></li></ul></div></div></div></aside><main id=content class="hx:w-full hx:break-words hx:min-h-[calc(100vh-var(--navbar-height))] hx:min-w-0 hx:pb-8 hx:pt-8 hx:md:pt-12 hx:pl-[max(env(safe-area-inset-left),1.5rem)] hx:pr-[max(env(safe-area-inset-left),1.5rem)]"><div class="hx:flex hx:flex-col hx:items-center hx:text-center hextra-home"><a class="not-prose hx:inline-flex hx:items-center hx:rounded-full hx:gap-2 hx:px-3 hx:py-1 hx:text-xs hx:text-gray-600 hx:dark:text-gray-400 hx:bg-gray-100 hx:dark:bg-neutral-800 hx:border-gray-200 hx:dark:border-neutral-800 hx:border hx:hover:border-gray-400 hx:dark:hover:text-gray-50 hx:dark:hover:border-gray-600 hx:transition-all hx:ease-in hx:duration-200"><div class="hx:w-2 hx:h-2 hx:rounded-full" style="background:#b07848;box-shadow:0 0 8px rgba(176,120,72,.55)"></div><span>Pre-Release 0.8.3 · Aktiv in Entwicklung</span></a><div class="hx:mt-8 hx:mb-6"><div class=rapport-logo-card><div class=rapport-logo-text>RAPPORT</div><div class=rapport-logo-sub>Studio Administration</div></div></div><div class=hx:mb-12><p class="not-prose hx:text-xl hx:text-gray-600 hx:dark:text-gray-400 hx:sm:text-xl">Die Studio Management Software für Architekturbüros mit offenem Quellcode — Zeiterfassung, Rechnungen, Offerten, Projekte, Mitarbeiter und QR-Einzahlungsscheine in einer App.</p></div><div class=rapport-hero-actions><a href=https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.3/RAPPORT%20PRE-RELEASE_0.8.3_aarch64.dmg target=_blank rel=noreferrer class="rapport-btn rapport-btn-primary">Download · 0.8.3 (macOS)</a> <span class="hx:absolute hx:inset-y-0 hx:flex hx:items-center hx:ltr:right-3 hx:rtl:left-3 hx:group-data-[theme=dark]:hidden hx:group-data-[theme=light]:hidden"><svg height="1em" width="1em" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"/></svg></span></button></li></ul></div></div></div></aside><main id=content class="hx:w-full hx:break-words hx:min-h-[calc(100vh-var(--navbar-height))] hx:min-w-0 hx:pb-8 hx:pt-8 hx:md:pt-12 hx:pl-[max(env(safe-area-inset-left),1.5rem)] hx:pr-[max(env(safe-area-inset-left),1.5rem)]"><div class="hx:flex hx:flex-col hx:items-center hx:text-center hextra-home"><a class="not-prose hx:inline-flex hx:items-center hx:rounded-full hx:gap-2 hx:px-3 hx:py-1 hx:text-xs hx:text-gray-600 hx:dark:text-gray-400 hx:bg-gray-100 hx:dark:bg-neutral-800 hx:border-gray-200 hx:dark:border-neutral-800 hx:border hx:hover:border-gray-400 hx:dark:hover:text-gray-50 hx:dark:hover:border-gray-600 hx:transition-all hx:ease-in hx:duration-200"><div class="hx:w-2 hx:h-2 hx:rounded-full" style="background:#b07848;box-shadow:0 0 8px rgba(176,120,72,.55)"></div><span>Pre-Release 0.8.2 · Aktiv in Entwicklung</span></a><div class="hx:mt-8 hx:mb-6"><div class=rapport-logo-card><div class=rapport-logo-text>RAPPORT</div><div class=rapport-logo-sub>Studio Administration</div></div></div><div class=hx:mb-12><p class="not-prose hx:text-xl hx:text-gray-600 hx:dark:text-gray-400 hx:sm:text-xl">Die Studio Management Software für Architekturbüros mit offenem Quellcode — Zeiterfassung, Rechnungen, Offerten, Projekte, Mitarbeiter und QR-Einzahlungsscheine in einer App.</p></div><div class=rapport-hero-actions><a href=https://git.kgva.ch/karim/RAPPORT/releases/download/0.8.2/RAPPORT%20PRE-RELEASE_0.8.2_aarch64.dmg target=_blank rel=noreferrer class="rapport-btn rapport-btn-primary">Download · 0.8.2 (macOS)</a>
<a href=https://git.kgva.ch/karim/RAPPORT class="rapport-btn rapport-btn-secondary">Quellcode ↗</a></div><div class="rapport-meta hx:mb-12"><span class=rapport-meta-item>AGPL-3.0</span> <a href=https://git.kgva.ch/karim/RAPPORT class="rapport-btn rapport-btn-secondary">Quellcode ↗</a></div><div class="rapport-meta hx:mb-12"><span class=rapport-meta-item>AGPL-3.0</span>
<span class=rapport-meta-item>Tauri + React</span> <span class=rapport-meta-item>Tauri + React</span>
<span class=rapport-meta-item>macOS (später Linux & Windows)</span> <span class=rapport-meta-item>macOS (später Linux & Windows)</span>
-22
View File
@@ -1,22 +0,0 @@
// The section must not be in the banner.js (body) file because it can create a quick flash.
if (localStorage.getItem('banner-closed')) {
document.documentElement.style.setProperty("--hextra-banner-height", "0px");
document.documentElement.classList.add("hextra-banner-hidden");
}
;
// The section must not be in the theme.js (body) file because it can create a quick flash (switch between light and dark).
function setTheme(theme) {
document.documentElement.classList.remove("light", "dark");
if (theme !== "light" && theme !== "dark") {
theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
}
document.documentElement.classList.add(theme);
document.documentElement.style.colorScheme = theme;
}
setTheme("color-theme" in localStorage ? localStorage.getItem("color-theme") : 'light')
-1082
View File
File diff suppressed because it is too large Load Diff