raw derive PDF: *…* beginnt oder endet an Leerzeichen, wenn eine <mark>-Grenze den Lauf teilt #230

Closed
opened 2026-10-14 06:15:50 +00:00 by torben · 2 comments
Owner

Befund aus der Prüfung am Original von #225 (2026-10-14, Filter von 10.1.0-beta.1, „Dynamics 365 Licensing Guide“ September 2026, 90 S.; das PDF ist Fremdinhalt und nicht im Repo).

Problem

#225 hat entschieden: „ein Tag beginnt und endet nie an einem Leerzeichen“. Das gilt nicht, wenn ein *…*-Lauf von einer <mark>-Grenze geteilt wird. <mark> ist die äußerste Kennzeichnung, also schließt * vor <mark> und öffnet danach neu. Dabei bleibt das Leerzeichen zwischen den Zeichen im Lauf, weil es zwischen zwei gleich gekennzeichneten Zeichen liegt:

*warehouse ⚫ *<mark data-farbe="#e2efda">*⚫*</mark>* *<mark data-farbe="#fff2cc">*⚫*</mark>

*warehouse ⚫ * wird in Markdown nicht als Hervorhebung gelesen, * * erscheint als zwei Sternchen. Im Guide 172 Zeilen, im „Licensing Deck“ 23. Der Wortlaut bleibt korrekt: Ohne Kennzeichnungen ergibt sich derselbe Text, die Prüfung aus #225 hält weiter.

Erwartet

  • Leerraum am Anfang oder Ende eines Laufs steht außerhalb von dessen Tag, bei jeder der drei Kennzeichnungen und an jeder Grenze, auch an einer <mark>-Grenze.
  • Ein Lauf, der nur aus Leerraum besteht, bekommt kein Tag.

Ort: das Zusammensetzen der Läufe je Zeile in tools/chemenu/filters/pdf_layout.py (annotate).

Akzeptanzkriterien

  • Test-PDF: zwei farbige Zeichen mit einem Leerzeichen dazwischen, das zweite auf einer Hinterlegung. Ausgabe *a* <mark data-farbe="gelb">*b*</mark>, kein * *, kein *a *.
  • In keinem derived.md der Tests beginnt oder endet ein *…*-, ~~…~~- oder <mark>-Lauf mit Leerraum (ein Test über alle erzeugten PDFs).
  • Entfernt man alle Kennzeichnungen, ergibt sich weiter derselbe Text wie ohne Layoutanalyse.
  • pytest, docs verify, instructions verify grün; CI auf dem veröffentlichten Commit grün.

Versionsteil

PATCH. Nur die Lage von Kennzeichnungen gegenüber Leerraum ändert sich, an keinem Kopffeld. Bestehende Ableitungen bleiben gültig.

Befund aus der Prüfung am Original von #225 (2026-10-14, Filter von 10.1.0-beta.1, „Dynamics 365 Licensing Guide“ September 2026, 90 S.; das PDF ist Fremdinhalt und nicht im Repo). ## Problem #225 hat entschieden: „ein Tag beginnt und endet nie an einem Leerzeichen“. Das gilt nicht, wenn ein `*…*`-Lauf von einer `<mark>`-Grenze geteilt wird. `<mark>` ist die äußerste Kennzeichnung, also schließt `*` vor `<mark>` und öffnet danach neu. Dabei bleibt das Leerzeichen zwischen den Zeichen im Lauf, weil es zwischen zwei gleich gekennzeichneten Zeichen liegt: ``` *warehouse ⚫ *<mark data-farbe="#e2efda">*⚫*</mark>* *<mark data-farbe="#fff2cc">*⚫*</mark> ``` `*warehouse ⚫ *` wird in Markdown nicht als Hervorhebung gelesen, `* *` erscheint als zwei Sternchen. Im Guide 172 Zeilen, im „Licensing Deck“ 23. Der Wortlaut bleibt korrekt: Ohne Kennzeichnungen ergibt sich derselbe Text, die Prüfung aus #225 hält weiter. ## Erwartet - Leerraum am Anfang oder Ende eines Laufs steht außerhalb von dessen Tag, bei jeder der drei Kennzeichnungen und an jeder Grenze, auch an einer `<mark>`-Grenze. - Ein Lauf, der nur aus Leerraum besteht, bekommt kein Tag. Ort: das Zusammensetzen der Läufe je Zeile in `tools/chemenu/filters/pdf_layout.py` (`annotate`). ## Akzeptanzkriterien - [ ] Test-PDF: zwei farbige Zeichen mit einem Leerzeichen dazwischen, das zweite auf einer Hinterlegung. Ausgabe `*a* <mark data-farbe="gelb">*b*</mark>`, kein `* *`, kein `*a *`. - [ ] In keinem `derived.md` der Tests beginnt oder endet ein `*…*`-, `~~…~~`- oder `<mark>`-Lauf mit Leerraum (ein Test über alle erzeugten PDFs). - [ ] Entfernt man alle Kennzeichnungen, ergibt sich weiter derselbe Text wie ohne Layoutanalyse. - [ ] `pytest`, `docs verify`, `instructions verify` grün; CI auf dem veröffentlichten Commit grün. ## Versionsteil PATCH. Nur die Lage von Kennzeichnungen gegenüber Leerraum ändert sich, an keinem Kopffeld. Bestehende Ableitungen bleiben gültig.
torben added the prio/plannedsize/Sarea/kbkind/defect labels 2026-10-14 06:15:50 +00:00
Author
Owner

Wird voraussichtlich mit #231 gebaut: Dort entfällt <mark>, und die Regel „Leerraum außerhalb jedes Tags“ steht als Akzeptanzkriterium für alle verbleibenden Formen (~~, **, *). Wird #231 wie vorgeschlagen bestätigt, schließt dieses Issue mit dessen Bau; einzeln bauen nur, falls #231 sich verzögert.

Wird voraussichtlich mit #231 gebaut: Dort entfällt `<mark>`, und die Regel „Leerraum außerhalb jedes Tags“ steht als Akzeptanzkriterium für alle verbleibenden Formen (`~~`, `**`, `*`). Wird #231 wie vorgeschlagen bestätigt, schließt dieses Issue mit dessen Bau; einzeln bauen nur, falls #231 sich verzögert.
Author
Owner

In #231 aufgenommen (Betreiber, 2026-10-14: ein Issue für das ganze Thema). Befund und Kriterium stehen dort unter Problem 3 und Vorschlag A Punkt 5. Geschlossen.

In #231 aufgenommen (Betreiber, 2026-10-14: ein Issue für das ganze Thema). Befund und Kriterium stehen dort unter Problem 3 und Vorschlag A Punkt 5. Geschlossen.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: torben/chemenu#230