fix(render): *** i ## nie wyciekają do PDF (markdown→LaTeX) #39
Reference in New Issue
Block a user
Delete Branch "fix/pdf-markdown-md-markers"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zgłoszony problem: PDF wciąż zawiera
##i***. Sprawdziłem — i są dwiewarstwy przyczyny.
1 · Realne dziury w konwersji (naprawione tym PR)
***mocne***(bold+italic) łapało się jako**+ zgubiona gwiazdka →\textbf{*mocne}*. W druku zostawał wisior*. Dodana alternatywa***…***PRZED**/*→\textbf{\textit{…}}.##Tytułbez spacji, zamknięty ATX (## Tytuł ##) i 7+ kratektrafiały do akapitu i były eskejpowane jako
\#\#…. Pułapka:\#w LaTeXurenderuje się jako
#, więc w PDF widać##, choć w.texjest\#\#.Właśnie dlatego stary test (
"##" not in out) tego nie łapał — w\#\#nie mapodłańcucha
##. Nagłówki traktujemy teraz pobłażliwie i żaden znacznik nie ostaje.Nowe testy patrzą pod kątem renderu (brak
\#, brak wiszącej gwiazdki pozagwiazdką poleceń
\section*). +7 regresji, render 34 ✓.2 · Ważniejsze: markdown NIGDY nie trafił na klaster
Diagnoza rejestru i CI:
56131b20— sprzed markdownu(commit, który tylko DODAŁ workflow build-render). Działający pod ma zero
wystąpień
markdown_to_latex.623603b1) nie istnieje —MANIFEST_UNKNOWN.build-render(obraz z TeX Live, setki MB) padł na runnerze:failed to create container: no space left on device.Czyli sama poprawka konwersji nie wystarczy — dopóki
build-rendernie zbuduje inie wypchnie obrazu render z tym kodem, na kluster nic nie zjedzie.
Do zrobienia po Twojej stronie (infra runnera): zwolnić miejsce na runnerze
(
docker system prune -af/ większy dysk), potem odpalićbuild-render(merge tego PR dotyka
services/render/**, więc powinien go wyzwolić; albo ręcznieworkflow_dispatch). Gdy obraz z markdownem się wypchnie, image-updater gopromuje (będzie najnowszy) i PDF wreszcie dostanie prawdziwe formatowanie.
Dwie realne dziury w markdown→LaTeX, obie WIDOCZNE w gotowym PDF: 1. `***mocne***` (pogrubienie+kursywa) łapało się jako `**` + zgubiona gwiazdka → `\textbf{*mocne}*`, czyli w druku zostawał wisior `*`. Dokładam alternatywę `\*\*\*…\*\*\*` PRZED `**` i `*` (kolejność od najdłuższego znacznika) → `\textbf{\textit{…}}`. 2. Nagłówek bez spacji po kratkach (`##Tytuł`), zamknięty ATX (`## Tytuł ##`) i 7+ kratek trafiały do akapitu i były eskejpowane jako `\#\#…`. Pułapka: w LaTeXu `\#` renderuje się jako `#`, więc w PDF WIDAĆ było `##`, choć w źródle `.tex` jest `\#\#`. Dlatego stary test (`"##" not in out`) tego nie łapał — podłańcuch `##` nie występuje w `\#\#`. Nagłówki traktujemy teraz pobłażliwie: dowolna liczba kratek na starcie, spacja nieobowiązkowa, końcowe kratki ucinane, gołe kratki bez treści pomijane. Żaden znacznik nagłówka nie ostaje. Nowa asercja w testach patrzy pod kątem RENDERU: brak `\#` i brak wiszącej gwiazdki (poza gwiazdką poleceń `\section*` itd.). +7 testów regresji, render 34. UWAGA DEPLOY: obraz render w rejestrze to wciąż56131b20(sprzed markdown, LOG-27), bo build-render (TeX Live) padał na runnerze z „no space left on device". Ten PR dotyka services/render/**, więc powinien wywołać build — ale najpierw trzeba zwolnić miejsce na runnerze, inaczej i ten build padnie. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>