Commit graph

7 commits

Author SHA1 Message Date
dschlueter
52f7951a66 docs: redraw wide diagrams so labels are readable
Forgejo scales SVG diagrams down to the content width (~900 px); the
left-to-right overview/deployment diagrams were 1650-2960 px wide, i.e.
5-9 px font. Redrawn top-to-bottom with multi-line labels (now 450-730 px,
no scaling); replaced an overlapping self-loop label by an explicit step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:55:33 +02:00
dschlueter
8bc2646dd5 docs: add FUNKTIONSWEISE.md (how mdgrep works)
Architecture and data flow (Mermaid), modules, query language internals
(tokenizer rules, grammar, term compilation), evaluation and timeouts,
highlighting and snippets, Markdown splitting and dialects, search engine
pipeline, Web API and widget, design decisions with rejected alternatives,
limits and extension ideas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 21:34:51 +02:00
dschlueter
aec824d8be 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>
2026-10-12 21:34:51 +02:00
dschlueter
d9e495d36a docs: add "Voraussetzungen an die Dokumente" to the manual
New section 8: requirements for searching a collection (encoding, size,
split mode vs. structure, metadata via naming scheme, limits) and for
jump anchors (predictable HTML paths, three ways to ids, same Markdown
dialect, keeping source and HTML in sync, consistency check script),
plus a checklist. Following sections renumbered 9-12.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 20:56:43 +02:00
dschlueter
ec4bfc5939 docs: add German user manual (BEDIENUNGSANLEITUNG.md)
Installation, query syntax, CLI, Python API, Web API, widget, server
operation (gunicorn, systemd, nginx), security, recipes, error codes,
troubleshooting and release workflow. Linked from README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:55:30 +02:00
dschlueter
d9f81ac918 feat: markdown dialect option, faster search (0.1.1) v0.1.1
- split_markdown/load_markdown: dialect="commonmark"|"python-markdown" so list
  blocks match the HTML structure of the renderer (list after paragraph needs a
  blank line; nesting needs 4 spaces in Python-Markdown)
- SearchEngine caches the searched text per block on load
- regex timeout only for /regex/ terms (words and phrases are linear);
  typical queries over 26k blocks: ~30-140 ms instead of 250-700 ms

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:37:40 +02:00
dschlueter
9c7b7e81f9 feat: mdgrep 0.1.0 – boolean full-text search for Markdown v0.1.0
- query language: substrings, phrases, /regex/, AND/OR/NOT (+ UND/ODER/NICHT),
  parentheses; case-insensitive; ReDoS protection via regex timeouts;
  syntax errors with stable code and position
- SearchEngine over in-memory blocks: filters, predicate, grouping, sorting,
  paging, time budget, automatic reload, highlighted snippets
- Markdown loader with split modes file/heading/list/paragraph
- grep-like CLI (mdgrep), JSON output, grep exit codes
- Flask blueprint/app with JSON API and widget assets, dev server
- framework-free JS widget: live search, URL state, filters, paging,
  syntax help, en/de labels, CSS custom properties for theming

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 19:29:44 +02:00