{"id":46339650,"url":"https://github.com/danst0/reinschrifttodo","last_synced_at":"2026-07-05T07:01:05.741Z","repository":{"id":330964447,"uuid":"1122300106","full_name":"danst0/ReinschriftTodo","owner":"danst0","description":"Plain-text Markdown todo app — native GNOME desktop (GTK4/libadwaita), CLI, and web UI with WebDAV/Nextcloud sync","archived":false,"fork":false,"pushed_at":"2026-06-07T06:52:06.000Z","size":3445,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-07T07:20:31.834Z","etag":null,"topics":["flask","flatpak","gnome","gtk4","libadwaita","markdown","nextcloud","plaintext","rust","todo-app","webdav"],"latest_commit_sha":null,"homepage":"https://flathub.org/apps/me.dumke.Reinschrift","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danst0.png","metadata":{"files":{"readme":"README.de.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-24T12:57:46.000Z","updated_at":"2026-06-07T06:52:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/danst0/ReinschriftTodo","commit_stats":null,"previous_names":["danst0/reinschrifttodo"],"tags_count":147,"template":false,"template_full_name":null,"purl":"pkg:github/danst0/ReinschriftTodo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danst0%2FReinschriftTodo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danst0%2FReinschriftTodo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danst0%2FReinschriftTodo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danst0%2FReinschriftTodo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danst0","download_url":"https://codeload.github.com/danst0/ReinschriftTodo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danst0%2FReinschriftTodo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35145900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","flatpak","gnome","gtk4","libadwaita","markdown","nextcloud","plaintext","rust","todo-app","webdav"],"created_at":"2026-03-04T19:34:53.561Z","updated_at":"2026-07-05T07:01:05.694Z","avatar_url":"https://github.com/danst0.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reinschrift\n\n\u003e 🇬🇧 [English version](README.md)\n\nVerwalte deine Aufgaben in reinem Markdown — mit einer nativen GNOME-Desktop-App, einer CLI und einer Web-App.\n\nReinschrift kombiniert eine native GNOME-Oberfläche mit der Einfachheit von reinem Text. Deine Aufgaben bleiben eine ganz normale Markdown-Datei: leicht zu sichern, per Git versionierbar und auf jedem Gerät mit deinem Lieblingseditor editierbar. Die App synchronisiert die Datei über Nextcloud/WebDAV, liest Änderungen live ein und schreibt direkt zurück — klassische To-do-Listen im Klartext, alltagstauglich gemacht, ohne proprietäre Silos.\n\n![Reinschrift Hauptfenster](screenshots/main_app_de.png)\n\n## Das Aufgabenformat\n\nJede Aufgabe ist eine Zeile Markdown:\n\n```markdown\n- [ ] Aufgabentitel +projekt @ort due:2026-01-20 rec:weekly ~note:\"Weitere Details\" ^ID123\n- [x] Erledigte Aufgabe ✅ 2026-01-15\n```\n\n| Token | Bedeutung |\n|---|---|\n| `+projekt` | Projekt (Anführungszeichen erlaubt: `+\"Großes Projekt\"`) |\n| `@ort` | Kontext / Ort |\n| `due:YYYY-MM-DD` | Fälligkeitsdatum, optional mit Uhrzeit (`due:2026-01-20T14:00`) |\n| `rec:weekly` | Wiederholung (wird beim Abschließen neu angelegt) |\n| `~note:\"…\"` | Freitext-Notiz |\n| `^ID123` | Stabile Referenz-ID |\n\n## Funktionen\n\n- **Plain Text zuerst** — eine Markdown-Datei, keine Datenbank, kein Lock-in\n- **WebDAV/Nextcloud-Sync** — oder eine lokale Datei; externe Änderungen werden live erkannt\n- **Mein Tag** — tägliche Aufgabenplanung: wähle aus, was du heute erledigen willst\n- **Suche, Filter, Sortierung** — nach Projekt, Ort oder Fälligkeit\n- **Wiederkehrende Aufgaben** — `rec:daily`, `rec:weekly`, `rec:monthly`, …\n- **Spracheingabe** — lokale Transkription per Whisper (Desktop) bzw. Web Speech API (Web)\n- **KI-Aufgabenerkennung** — natürliche Sprache wird per Ollama/LLM in strukturierte Aufgaben übersetzt (optional)\n- **Sechs Sprachen** — Deutsch, Englisch, Spanisch, Französisch, Japanisch, Schwedisch\n\n## Installation\n\n### Desktop (Flatpak)\n\n\u003ca href=\"https://flathub.org/apps/me.dumke.Reinschrift\"\u003e\u003cimg src=\"https://flathub.org/api/badge?svg\u0026locale=de\" alt=\"Auf Flathub holen\" width=\"190\"/\u003e\u003c/a\u003e\n\n```bash\nflatpak install flathub me.dumke.Reinschrift\n```\n\n### Web-App (Docker)\n\nBei jedem Release wird ein fertiges Image auf GHCR veröffentlicht — kein lokales Bauen nötig:\n\n```bash\ncd webapp\ncp docker-compose.example.yml docker-compose.yml   # dann Zugangsdaten etc. anpassen\ndocker compose up -d                               # zieht ghcr.io/danst0/reinschrift-web:latest\n```\n\nVerfügbare Tags: `latest` sowie eines pro Version (z. B. `0.23.7`). Die App ist anschließend unter `http://localhost:5000` erreichbar. Login, OIDC und WebDAV werden über Umgebungsvariablen in `docker-compose.yml` konfiguriert (siehe Beispieldatei). Die Web-App lässt sich auf Mobilgeräten als PWA installieren.\n\n### Aus den Quellen bauen\n\nVoraussetzungen: Rust-Toolchain, GTK4- und libadwaita-Entwicklungsbibliotheken (`libgtk-4-dev`, `libadwaita-1-dev` o. ä.), `cmake` und `clang` (für die Whisper-Spracheingabe).\n\n```bash\ncargo build --workspace --release\n# Binaries:\n#   target/release/reinschrift_todo   (GUI)\n#   target/release/reinschrift        (CLI)\n```\n\n## Komponenten\n\nDieses Repository ist ein Cargo-Workspace plus eine Python-Web-App:\n\n| Verzeichnis | Inhalt |\n|---|---|\n| `core/` | Gemeinsame Rust-Bibliothek: Parsing, Rendering, Speicher (lokal + WebDAV), Geschäftslogik |\n| `gui/` | Native GNOME-App (GTK4/libadwaita) |\n| `cli/` | Kommandozeilen-Interface |\n| `webapp/` | Flask-Web-App (Docker, OIDC-Login, PWA) |\n\n### CLI\n\n```\nreinschrift [OPTIONEN] \u003cBEFEHL\u003e\n\nOPTIONEN:\n    -d, --database \u003cPFAD\u003e    Pfad zur Markdown-Datenbank\n    -l, --language \u003cSPRACHE\u003e Sprache (de, en, es, fr, ja, sv)\n    -j, --json               JSON-Ausgabe für Skripte\n        --no-color           Farbausgabe deaktivieren\n\nBEFEHLE:\n    list (ls)       Aufgaben auflisten (mit Filter/Sortierung)\n    add             Neue Aufgabe anlegen\n    edit            Aufgabe bearbeiten\n    delete (rm)     Aufgabe(n) löschen\n    done            Als erledigt markieren\n    undone          Als offen markieren\n    today           Fälligkeit auf heute setzen\n    tomorrow        Fälligkeit auf morgen setzen\n    search          Aufgaben durchsuchen\n    config          WebDAV- und KI-Konfiguration\n```\n\nBeispiele:\n\n```bash\nreinschrift add \"Blumen gießen +zuhause @garten due:2026-06-05 rec:weekly\"\nreinschrift list --sort due\nreinschrift done ^ID123\n```\n\n## Entwicklung\n\n```bash\n# GUI aus den Quellen starten\ncargo run -p reinschrift-gui --release\n\n# Eigene Datenbankdatei verwenden\nTODOS_DB_PATH=/pfad/zur/db.md cargo run -p reinschrift-gui\n\n# CLI starten\ncargo run -p reinschrift-cli -- list\n```\n\nGit-Hooks aktivieren, damit vor jedem Commit automatisch `cargo check --locked --workspace` läuft (mit `SKIP_CARGO_CHECK=1` einmalig überspringbar):\n\n```bash\ngit config core.hooksPath .githooks\n```\n\n### Tests\n\n```bash\n# Rust\ncargo test --workspace\n\n# Web-App\ncd webapp\npip install -r requirements.txt -r requirements-dev.txt\npytest tests/ -v\nmypy app/\n```\n\n## Verhaltenskodex\n\nDieses Projekt folgt dem [GNOME Code of Conduct](https://conduct.gnome.org/) — siehe [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).\n\n## Lizenz\n\n[GPL-3.0-or-later](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanst0%2Freinschrifttodo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanst0%2Freinschrifttodo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanst0%2Freinschrifttodo/lists"}