17_STRATEGII/10_dhrt: cele sase diagrame, plus doua unelte reparate

Diagramele capitolului 10 sunt gata (un singur generator pentru toate, aceeasi
serie, deci o cifra schimbata cade peste tot). Textul capitolului nu e scris -
agentul a atins pragul de context acolo.

Doua bug-uri in unelte, gasite de el:
- substituie.py avea glob-ul [0A][1-8]_*.md, deci sarea tacut peste capitolele
  cu doua cifre (09, 10). Capitolul parea doar sa n-aiba marcaje.
- eticheta_libera presupunea text centrat cand eticheta n-are text-anchor. In
  SVG, fara anchor inseamna aliniat la stanga, deci etichetele de Level cu
  label_at=left erau modelate cu jumatate de latime prea mult la stanga si
  dadeau alarme false. L-a costat trei iteratii.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
Claude Agent
2026-10-02 05:08:23 +00:00
parent c15004c62b
commit 8f6372989d
9 changed files with 1294 additions and 2 deletions

View File

@@ -23,7 +23,10 @@ def _bbox(m, min_px):
"""Caseta etichetei, lărgită cu marginea cerută."""
tx, ty, attrs, s = float(m.group(1)), float(m.group(2)), m.group(3), m.group(4)
w = CW * len(s)
x0 = tx if 'anchor="start"' in attrs else tx - w if 'anchor="end"' in attrs else tx - w / 2
# fara text-anchor, SVG aliniaza la stanga (start), nu centrat. Presupunerea
# ca e centrat dadea alarme false pe etichetele de Level cu label_at="left",
# care se deseneaza fara anchor.
x0 = tx - w if 'anchor="end"' in attrs else tx if 'anchor="middle"' not in attrs else tx - w / 2
return s, (x0 - min_px, x0 + w + min_px, ty - 9 - min_px, ty + 3 + min_px)