Glossar von 92 auf 234 Eintraege
Auftrag: alle Markdown-Dateien lesen, jeden Fachbegriff, jede Abkuerzung, jeden
Algorithmus- und Bibliotheksnamen extrahieren, das Glossar vollstaendig neu
aufsetzen.
Die Begriffsliste wurde geerntet, nicht erfunden. Grundlage sind die 219
{idx:}-Marken des Buchs - die bereits kuratierte Begriffsliste des Autors. 92
davon hatten einen Glossareintrag, 143 nicht. Dazu Abkuerzungen und
Bibliotheken aus dem Fliesstext ohne Indexmarke: GIL, GLOP, MIQP, MSE, MAPE,
DTO, Solver-Status, NumPy, SciPy, pandas, scikit-learn, yfinance, pydantic,
pymoo, Matplotlib, Plotly.
Auch die Querverweise sind gemessen: Fuer jeden Indexbegriff wurde die erste
Fundstelle bestimmt und daraus der umgebende {#sec:}-Abschnitt abgeleitet.
Damit steht am Ende jedes Eintrags ein {ref:}, das der Build zur richtigen
Nummer aufloest - eine harte "siehe Kapitel 5" haette gegen die Grundregel des
Projekts verstossen.
Zwei Funde beim Gegenpruefen:
* 23 Eintraege haetten auf sich selbst verwiesen. Ihr Begriff ist im ganzen
Buch nur im Glossar mit {idx:} markiert - die "erste Fundstelle" war also
diese Datei. Im PDF stand dann "-> Anhang E" mitten in Anhang E.
* Die erste Fundstelle ist nicht immer die erklaerende. "Schattenpreis"
landete beim LP-Schnellstart statt beim Abschnitt ueber Dualitaet. Fuer alle
92 Altbestandseintraege gelten jetzt die von Hand gesetzten Ziele der
Vorgaengerfassung; der Erzeuger bricht ab, wenn ein Verweis ins Glossar
selbst zeigt.
Zwei Formatfragen entschied die Probe am echten Build:
* "## A" als Buchstabengruppe funktioniert und wird NICHT nummeriert -
ABSCHNITT_RE verlangt ein {#sec:}-Label, das hier fehlt.
* Pandoc-Definitionslisten ueberleben den Bau nicht: reflow_markdown() zieht
die ":"-Fortsetzungszeile in den Begriffsabsatz, der Doppelpunkt bleibt
sichtbar stehen. Die Absatzform rendert sauber in HTML und PDF.
Der Beleg, dass die Schreibweisen stimmen: Das Stichwortregister waechst von
219 auf 220 Hauptbegriffe - genau ein neuer Begriff (Solver-Status). Alle
uebrigen 218 Indexmarken trafen buchstabengetreu auf bestehende Eintraege.
Nebenbei: Die 25 Buchstabenueberschriften waeren als 25 Treffer in den
Suchindex geraten und bei jedem eingetippten Buchstaben oben gestanden.
_erfasse_suchindex() ueberspringt jetzt einbuchstabige Ueberschriften; der
Index bleibt bei 631 Eintraegen.
PDF von 759 auf 772 Seiten. Veroeffentlicht: 4 Dateien uebertragen, alle
dreizehn HTTP-Proben richtig, 234 Eintraege auf dem Server gegengeprueft.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
5d5bdb6508
commit
7835cf322d
9 changed files with 2216 additions and 731 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1862,6 +1862,11 @@ def _erfasse_suchindex(seite: str, seiten_titel: str, fragment_html: str,
|
|||
suchindex.append({"seite": seite, "titel": seiten_titel, "anker": None, "text": ""})
|
||||
for m in ANRISS_RE.finditer(fragment_html):
|
||||
ueberschrift = re.sub(r"<[^>]+>", "", m.group(3)).strip()
|
||||
# Die Buchstabengruppen des Glossars ('A', 'B', ...) sind Wegweiser
|
||||
# innerhalb der Seite, keine Inhalte. Als Suchtreffer waeren sie
|
||||
# wertlos und wuerden fuer jeden eingetippten Buchstaben oben stehen.
|
||||
if len(ueberschrift) == 1:
|
||||
continue
|
||||
anriss = re.sub(r"<[^>]+>", "", m.group(4) or "").strip()
|
||||
suchindex.append({"seite": seite, "titel": ueberschrift,
|
||||
"anker": m.group(2), "text": anriss[:180]})
|
||||
|
|
|
|||
Loading…
Reference in a new issue