"""Mostra o conteúdo original de um ou mais artigos (texto + caminhos das imagens).
Uso: python scripts/mostrar.py <id-artigo> [<id-artigo> ...]
"""
import re
import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent))
from gerar_site import ler_indice, BASE  # noqa: E402
from assuntos import ASSUNTOS  # noqa: E402

paginas, capitulos = ler_indice()
for alvo in sys.argv[1:]:
    for a in ASSUNTOS:
        for art_id, titulo, fontes in a["artigos"]:
            if art_id != alvo:
                continue
            print(f"\n######## {art_id} — {titulo}")
            chaves = []
            for f in fontes:
                chaves += capitulos.get(f[4:], []) if f.startswith("cap:") else [f]
            for k in dict.fromkeys(chaves):
                info = paginas[k]
                arq = BASE / info["arquivo"]
                txt = arq.read_text(encoding="utf-8")
                txt = re.sub(r"^---\n.*?\n---\n", "", txt, count=1, flags=re.S)
                txt = re.sub(r"!\[[^\]]*\]\(([^)]+)\)",
                             lambda m: "[IMG " + (arq.parent / m.group(1)).resolve().relative_to(BASE).as_posix() + "]", txt)
                print(f"\n=== {info['titulo']}  ({info['arquivo']})\n{txt.strip()}")
