"""Genera wiki/bibliografia.md da raw/bibliografia.json (una voce per riferimento, link alla scheda in raw/fonti/). Uso: python scripts/gen_bibliografia.py (rigenera tutto; pagina derivata, non si modifica a mano).""" import json from pathlib import Path root = Path(__file__).resolve().parent.parent refs = json.loads((root / "raw/bibliografia.json").read_text(encoding="utf8"))["references"] out = [ "---", "title: Bibliografia", "type: overview", "tags: [bibliografia]", "created: 2026-10-09", "updated: 2026-10-15", f'tesi_loc: "r.{min(r["md_line"] for r in refs)-2}-{max(r["md_line"] for r in refs)}"', "derivata: true", "status: draft", "---", "", "# Bibliografia", "", f"Elenco dei {len(refs)} riferimenti della tesi (`text` = testo originale). Ogni voce rimanda alla scheda in `raw/fonti/` e alle righe/sezioni di `raw/tesi.md` in cui è citata. Difetti noti: [[difetti-noti]].", "", "| N | Riferimento (testo della tesi) | Citato in (sezioni; righe) | Scheda | Stato | DOI verificato | Flag |", "| --- | --- | --- | --- | --- | --- | --- |", ] for r in refs: f = r["fonte"] card = Path(f["file"]).stem text = r["text"].replace("|", "\\|") secs = ", ".join(r["cited_in_sections"]) or "-" lines = ", ".join(map(str, r["cited_in_md_lines"])) or "-" out.append( f"| {r['id']} | {text} | §{secs}; r.{lines} | [[{card}\\|{r['id']}]] | {f.get('stato', '-')} | " f"{f.get('doi_verificato') or '-'} | {', '.join(r.get('quality_flags', [])) or '-'} |" ) out += ["", "## Collegamenti", "- [[tesi]]", ""] (root / "wiki/bibliografia.md").write_text("\n".join(out), encoding="utf8") print(f"{len(refs)} voci")