1 Commits
12 changed files with 51 additions and 37 deletions

No files matched your search

+6
View File
@@ -4,6 +4,12 @@ Alle Änderungen an Grotti. Format nach [Keep a Changelog](https://keepachangelo
## [Unreleased]
## [2.2.1] – 2026-10-15
### Geändert
- Anleitungen mit relativen Bild- und Kapitelpfaden (`../web/static/doku/…`, `Anleitung-*.md`), damit Screenshots und Querverweise auch auf Git lesbar sind; die App schreibt sie beim Rendern auf `/static/…` bzw. `/doku/…` um.
## [2.2.0] – 2026-10-15
### Neu
+4 -4
View File
@@ -2,7 +2,7 @@
Stand **15.10.2026**. Mehrfarb-Drucke brauchen vor dem Start eine Zuordnung Datei-Farbe → ACE-Platz und eine passende Spule am Drucker.
![ACE-Zuordnung beim Senden](/static/doku/ace-zuordnung.png)
![ACE-Zuordnung beim Senden](../web/static/doku/ace-zuordnung.png)
## Spule einlegen
@@ -12,7 +12,7 @@ Stand **15.10.2026**. Mehrfarb-Drucke brauchen vor dem Start eine Zuordnung Date
Es gibt **kein freies Spulen-Dropdown** beim Start: Grotti nimmt die Rolle(n), die am Ziel-Drucker liegen. Material-Mismatch oder zu wenig Rest → Warnung vor dem Start.
Etiketten mit QR: [Material und mehr](Anleitung-Material).
Etiketten mit QR: [Material und mehr](Anleitung-Material.md).
## ACE-Map beim Senden
@@ -35,5 +35,5 @@ Externe Spule / keine ACE-Slots: keine `.acm` nötig.
## Weiter
- [Dateien senden](Anleitung-Dateien)
- [Material](Anleitung-Material)
- [Dateien senden](Anleitung-Dateien.md)
- [Material](Anleitung-Material.md)
+6 -6
View File
@@ -2,7 +2,7 @@
Stand **15.10.2026**. Seite `/dateien` — Bibliothek links, Senden rechts.
![Dateien: Bibliothek und Senden](/static/doku/dateien-flow.png)
![Dateien: Bibliothek und Senden](../web/static/doku/dateien-flow.png)
## Bibliothek
@@ -31,7 +31,7 @@ Unter Optionen u. a.:
- **Bettnetz / Auto-Level** beim MQTT-Start (Anycubic)
- Maschinen-Override, Projekt zuweisen
- **ACE-Zuordnung** — siehe [ACE und Spulen](Anleitung-ACE)
- **ACE-Zuordnung** — siehe [ACE und Spulen](Anleitung-ACE.md)
## Warum es dauert
@@ -39,11 +39,11 @@ Große Dateien brauchen oft **eine Minute**. In der Sidebar unter **Senden** sie
## Nach dem Start
- Fortschritt auf der [Wand](Anleitung-Wand) und in der Sidebar **Läuft jetzt**
- Bei „Wenn frei“: Eintrag unter [Warteschlange](Anleitung-Warteschlange)
- Fortschritt auf der [Wand](Anleitung-Wand.md) und in der Sidebar **Läuft jetzt**
- Bei „Wenn frei“: Eintrag unter [Warteschlange](Anleitung-Warteschlange.md)
- Später unter **Protokoll** mit **Nochmal** (inkl. gespeicherter ACE-Map)
## Weiter
- [ACE und Spulen](Anleitung-ACE)
- [Warteschlange](Anleitung-Warteschlange)
- [ACE und Spulen](Anleitung-ACE.md)
- [Warteschlange](Anleitung-Warteschlange.md)
+4 -4
View File
@@ -34,7 +34,7 @@ copy config.example.json config.json
| `energy`, `telegram`, `alerts` | Kosten im Protokoll und Telegram — später auch unter Einstellungen. |
| `secret_key` | Für Login-Sessions. Beim ersten Start wird ein Wert erzeugt, wenn leer. |
Drucker beim ersten Start über `drucker.json` (Seed). Danach pflegt man sie unter [Einstellungen](Anleitung-Einstellungen).
Drucker beim ersten Start über `drucker.json` (Seed). Danach pflegt man sie unter [Einstellungen](Anleitung-Einstellungen.md).
```json
[{ "name": "Kobra 3 da26", "host": "10.10.1.60" }]
@@ -50,7 +50,7 @@ Die Familie (Kobra 3 oder S1) liest Grotti aus dem Namen.
Dann <http://127.0.0.1:8770/> öffnen. Beim ersten Start legst du den Admin-Benutzer an. Nach Code-Änderungen an Python oft neu starten.
![Druckerwand nach dem Start](/static/doku/wand-uebersicht.png)
![Druckerwand nach dem Start](../web/static/doku/wand-uebersicht.png)
## Sicherheit
@@ -61,6 +61,6 @@ Dann <http://127.0.0.1:8770/> öffnen. Beim ersten Start legst du den Admin-Benu
## Weiter
- [Oberfläche](Anleitung-Oberflaeche) — Navigation und Sidebar
- [Dateien senden](Anleitung-Dateien) — erster Druck
- [Oberfläche](Anleitung-Oberflaeche.md) — Navigation und Sidebar
- [Dateien senden](Anleitung-Dateien.md) — erster Druck
- Ausführlich im `README.md` im Projektordner
+4 -4
View File
@@ -2,11 +2,11 @@
Stand **15.10.2026**. Seite `/einstellungen` — Drucker, Automatik, Anzeige, Telegram, Energie.
![Einstellungen: Drucker](/static/doku/einstellungen-drucker.png)
![Einstellungen: Drucker](../web/static/doku/einstellungen-drucker.png)
## Dieser Browser
- **Desktop** oder **Regal (Touch)** — nur lokal im Browser, siehe [Oberfläche](Anleitung-Oberflaeche).
- **Desktop** oder **Regal (Touch)** — nur lokal im Browser, siehe [Oberfläche](Anleitung-Oberflaeche.md).
## Automatik
@@ -40,5 +40,5 @@ Watt und Strompreis für die Kosten im **Protokoll**. Optional Trockner/Ausschus
## Weiter
- [Einrichtung](Anleitung-Einrichtung) (Config-Datei)
- [Störungen](Anleitung-Stoerungen)
- [Einrichtung](Anleitung-Einrichtung.md) (Config-Datei)
- [Störungen](Anleitung-Stoerungen.md)
+3 -3
View File
@@ -2,7 +2,7 @@
Stand **15.10.2026**. Spulen, Etiketten, Projekte, Protokoll, Kameras, Aktivität und Ideen.
![Material: Spulen](/static/doku/material-spule.png)
![Material: Spulen](../web/static/doku/material-spule.png)
## Material
@@ -38,5 +38,5 @@ Zeitstrahl: Starts, Schritte, Fertig, Fehler, Abbrüche, offline. Filter nach Dr
## Weiter
- [ACE und Spulen](Anleitung-ACE)
- [Einstellungen](Anleitung-Einstellungen)
- [ACE und Spulen](Anleitung-ACE.md)
- [Einstellungen](Anleitung-Einstellungen.md)
+3 -3
View File
@@ -8,7 +8,7 @@ Links (Desktop): **Drucker**, **Dateien**, **Kameras**, **Aktivität**, **Wartes
Unter ca. 760 px: untere Leiste mit den wichtigsten Seiten. Das Seitenmenü lässt sich zur Icon-Rail einklappen.
![Seitenleiste mit Live-Boxen](/static/doku/sidebar-live.png)
![Seitenleiste mit Live-Boxen](../web/static/doku/sidebar-live.png)
## Live-Leiste
@@ -33,5 +33,5 @@ Shortcut in der URL: `?shelf=1` bzw. `?shelf=0`. Nur dieser Browser (`localStora
## Weiter
- [Druckerwand](Anleitung-Wand)
- [Dateien senden](Anleitung-Dateien)
- [Druckerwand](Anleitung-Wand.md)
- [Dateien senden](Anleitung-Dateien.md)
+3 -3
View File
@@ -31,7 +31,7 @@ Was tun: Abbruch über Grotti (nicht nur am Display), auf der Wand den Task-Hinw
## ACE / „cannot parse“
ACE-Zuordnung unter Dateien → Optionen prüfen. Spulen am richtigen Platz. Siehe [ACE und Spulen](Anleitung-ACE).
ACE-Zuordnung unter Dateien → Optionen prüfen. Spulen am richtigen Platz. Siehe [ACE und Spulen](Anleitung-ACE.md).
## Offline
@@ -52,5 +52,5 @@ Oft noch Verarbeitung auf dem Drucker. In der Sidebar unter **Senden** den Forts
## Weiter
- [Druckerwand](Anleitung-Wand)
- [Warteschlange](Anleitung-Warteschlange)
- [Druckerwand](Anleitung-Wand.md)
- [Warteschlange](Anleitung-Warteschlange.md)
+6 -6
View File
@@ -2,7 +2,7 @@
Stand **15.10.2026**. Startseite `/` — eine Karte je Drucker. Klick öffnet das Cockpit.
![Druckerwand](/static/doku/wand-uebersicht.png)
![Druckerwand](../web/static/doku/wand-uebersicht.png)
## Karte
@@ -30,7 +30,7 @@ Während eines Abräum-Ablaufs blendet Grotti „Platte geräumt“ aus — der
URL mit Hash: `/#<host>` (z. B. nach Klick auf die Karte).
![Cockpit eines Druckers](/static/doku/cockpit.png)
![Cockpit eines Druckers](../web/static/doku/cockpit.png)
Inhalt:
@@ -45,10 +45,10 @@ Inhalt:
- Gesperrte Drucker (Einstellungen) starten keine neuen „wenn frei“-Jobs.
- Live-Daten kommen mit wenigen Sekunden Verzögerung.
- Ein Task-Hinweis auf der Karte zeigt, wenn auf dem Drucker noch ein alter Auftrag hängt — siehe [Störungen](Anleitung-Stoerungen).
- Ein Task-Hinweis auf der Karte zeigt, wenn auf dem Drucker noch ein alter Auftrag hängt — siehe [Störungen](Anleitung-Stoerungen.md).
## Weiter
- [Dateien senden](Anleitung-Dateien)
- [Warteschlange und Ablauf](Anleitung-Warteschlange)
- [Störungen](Anleitung-Stoerungen)
- [Dateien senden](Anleitung-Dateien.md)
- [Warteschlange und Ablauf](Anleitung-Warteschlange.md)
- [Störungen](Anleitung-Stoerungen.md)
+3 -3
View File
@@ -2,7 +2,7 @@
Stand **15.10.2026**. Aufträge „wenn frei“, Priorität, und der Kobra-3-Ablauf (drucken → abkühlen → schieben → tasten).
![Warteschlange](/static/doku/warteschlange.png)
![Warteschlange](../web/static/doku/warteschlange.png)
## Seite Warteschlange
@@ -48,5 +48,5 @@ Aktueller Schritt: auf der Druckerkarte und in der Sidebar. Abbrechen an beiden
## Weiter
- [Druckerwand](Anleitung-Wand)
- [Störungen](Anleitung-Stoerungen)
- [Druckerwand](Anleitung-Wand.md)
- [Störungen](Anleitung-Stoerungen.md)
+1 -1
View File
@@ -1,3 +1,3 @@
"""Version von Grotti (SemVer). Bei jeder Änderung CHANGELOG.md mitführen."""
__version__ = "2.2.0"
__version__ = "2.2.1"
+8
View File
@@ -519,7 +519,15 @@ def create_app(cfg):
return labels.get(name, name.replace("Anleitung-", "").replace("-", " "))
def render_markdown(path):
"""Markdown für die App: Git-relative Bild-/Kapitelpfade → App-URLs."""
text = path.read_text(encoding="utf-8")
# docs/… → web/static/… im Repo; unter /doku als /static/…
text = text.replace("../web/static/", "/static/")
text = re.sub(
r"\]\((Anleitung-[A-Za-z0-9_-]+)(?:\.md)?\)",
r"](/doku/\1)",
text,
)
html = markdown.markdown(text, extensions=["tables", "fenced_code", "sane_lists"])
return Markup(html)