docs: add CHANGELOG.md and documentation overview

- CHANGELOG.md (Keep a Changelog, German) for 0.1.0, 0.1.1 and unreleased
  documentation work, incl. "Beim Update zu tun"
- README: documentation table (manual, how it works, changelog, license)
- manual: release steps now include updating CHANGELOG/FUNKTIONSWEISE

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
dschlueter 2026-10-12 21:34:51 +02:00
commit aec824d8be
3 changed files with 64 additions and 4 deletions

View file

@ -840,9 +840,11 @@ src/mdgrep/
Neue Version veröffentlichen: Neue Version veröffentlichen:
1. Version in `pyproject.toml` **und** `src/mdgrep/__init__.py` erhöhen (bei Widget-Änderungen auch im Kopf von `mdgrep-widget.js`) 1. Version in `pyproject.toml` **und** `src/mdgrep/__init__.py` erhöhen (bei Widget-Änderungen auch im Kopf von `mdgrep-widget.js`)
2. Tests laufen lassen: `.venv/bin/pytest` 2. `CHANGELOG.md`: Abschnitt `[Unreleased]` in die neue Version umbenennen (mit Datum), „Beim Update zu tun"
3. Commit, Tag und Push: `git tag -a v0.1.2 -m "mdgrep 0.1.2" && git push origin main --tags` ergänzen; bei Änderungen am inneren Aufbau auch `FUNKTIONSWEISE.md` aktualisieren
4. In den nutzenden Projekten den Tag in `requirements.txt` anpassen und `pip install -r requirements.txt` 3. Tests laufen lassen: `.venv/bin/pytest`
4. Commit, Tag und Push: `git tag -a v0.1.2 -m "mdgrep 0.1.2" && git push origin main --tags`
5. In den nutzenden Projekten den Tag in `requirements.txt` anpassen und `pip install -r requirements.txt`
ausführen; laufende Dienste neu starten. ausführen; laufende Dienste neu starten.
Versionsregel: Änderungen an öffentlichen Funktionen, am JSON-Format oder an Widget-Optionen, die Versionsregel: Änderungen an öffentlichen Funktionen, am JSON-Format oder an Widget-Optionen, die

51
CHANGELOG.md Normal file
View file

@ -0,0 +1,51 @@
# Änderungsprotokoll
Alle nennenswerten Änderungen an mdgrep. Format nach [Keep a Changelog](https://keepachangelog.com/de/1.1.0/),
Versionen nach [Semantic Versioning](https://semver.org/lang/de/) (vor 1.0: Nebenversion = möglicher Bruch).
Jede Version ist als Git-Tag verfügbar:
`pip install "mdgrep[web] @ git+https://kitux.de/forgejo/dschlueter/mdgrep.git@vX.Y.Z"`
## [Unreleased]
### Dokumentation
- `BEDIENUNGSANLEITUNG.md` (deutsch): Installation, Suchsyntax, Kommandozeile, Python-API, Web-API, Widget,
Serverbetrieb, Voraussetzungen an die Dokumente, Rezepte, Fehlercodes, Fehlersuche, Release-Ablauf.
- `FUNKTIONSWEISE.md`: interner Aufbau, Datenfluss und Designentscheidungen.
- `CHANGELOG.md` (diese Datei).
## [0.1.1] – 2026-10-12
### Neu
- `split_markdown()` / `load_markdown()`: Parameter `dialect="commonmark" | "python-markdown"`, damit Listen-Blöcke
zur HTML-Struktur des verwendeten Renderers passen (Python-Markdown: Liste braucht Leerzeile davor,
Verschachtelung erst ab 4 Leerzeichen).
### Geändert
- Deutlich schneller: der durchsuchte Text (Titel + Text) wird beim Laden einmal vorberechnet; das
Regex-Zeitlimit gilt nur noch für `/regex/`-Terme (Wörter und Phrasen laufen linear). Typische Suchen über
26 000 Blöcke: ca. 30–140 ms statt 250–700 ms.
### Beim Update zu tun
- Nichts; voll kompatibel zu 0.1.0. Widget-Dateien unverändert (Kopfzeile meldet weiterhin v0.1.0).
## [0.1.0] – 2026-10-12
Erstveröffentlichung.
### Neu
- Suchsprache: Wortbestandteile, `"Phrasen"`, `/reguläre Ausdrücke/`, `AND`/`OR`/`NOT` (auch `UND`/`ODER`/
`NICHT`, `&`, `|`, `-`, `!`) mit Klammern; Groß-/Kleinschreibung egal; Fehler mit festem Code und Position;
Schutz vor katastrophalen regulären Ausdrücken durch Zeitlimits.
- `SearchEngine` über Blöcke im Speicher: Filter, eigene Prädikate, Gruppierung, Sortierung, Seiten,
Zeitbudget, automatisches Neuladen, Ausschnitte mit Hervorhebung.
- Markdown-Zerleger mit den Modi `file`, `heading`, `list`, `paragraph`; Markdown → Text.
- Kommandozeile `mdgrep` (grep-artig, JSON-Ausgabe, grep-Rückgabewerte).
- Flask-Blueprint/-App mit JSON-API und Auslieferung der Widget-Dateien; Entwicklungsserver
`python -m mdgrep.web`.
- JavaScript-Such-Widget ohne Framework: Live-Suche, URL-Zustand, Filter, „Mehr laden", Syntaxhilfe,
deutsch/englisch, Gestaltung über CSS-Variablen; `export_static()` für statische Seiten.
[Unreleased]: https://kitux.de/forgejo/dschlueter/mdgrep/compare/v0.1.1...main
[0.1.1]: https://kitux.de/forgejo/dschlueter/mdgrep/compare/v0.1.0...v0.1.1
[0.1.0]: https://kitux.de/forgejo/dschlueter/mdgrep/src/tag/v0.1.0

View file

@ -9,7 +9,14 @@ Boolean full-text search over Markdown (and any other text) – as a **Python li
- protection against catastrophic regular expressions (time limit per search) - protection against catastrophic regular expressions (time limit per search)
- no search index: blocks live in memory, a few MB of text are searched in milliseconds - no search index: blocks live in memory, a few MB of text are searched in milliseconds
Ausführliche deutsche Anleitung: [BEDIENUNGSANLEITUNG.md](BEDIENUNGSANLEITUNG.md) ## Documentation
| Document | Content |
|---|---|
| [BEDIENUNGSANLEITUNG.md](BEDIENUNGSANLEITUNG.md) | User manual (German): installation, syntax, CLI, API, widget, operation, troubleshooting |
| [FUNKTIONSWEISE.md](FUNKTIONSWEISE.md) | How it works (German): architecture, data flow, design decisions, limits |
| [CHANGELOG.md](CHANGELOG.md) | Changes per version and what to do when updating |
| [LICENSE](LICENSE) | MIT |
## Installation ## Installation