#!/usr/bin/env bash
# Gera HTML+PDF no padrão Monithora (capa + CSS único + pdf-assets).
set -euo pipefail
cd "$(dirname "$0")"
python3 << 'PY'
import re
from pathlib import Path
import markdown
CSS = '''
  @page { margin: 18mm 14mm; size: A4; }
  body {
    font-family: "DejaVu Sans", "Liberation Sans", Arial, sans-serif;
    font-size: 11pt; line-height: 1.45; color: #1a1a1a;
    max-width: 900px; margin: 0 auto;
  }
  h1 { font-size: 20pt; border-bottom: 2px solid #333; padding-bottom: 6px; page-break-before: always; }
  h1:first-of-type { page-break-before: avoid; }
  h2 { font-size: 14pt; margin-top: 1.4em; color: #222; }
  h3 { font-size: 12pt; }
  table { border-collapse: collapse; width: 100%; margin: 0.8em 0; font-size: 9.5pt; page-break-inside: avoid; }
  th, td { border: 1px solid #bbb; padding: 5px 7px; vertical-align: top; }
  th { background: #f0f0f0; }
  img { max-width: 100%; height: auto; border: 1px solid #ddd; margin: 10px 0; page-break-inside: avoid; }
  code, pre { font-family: "DejaVu Sans Mono", monospace; font-size: 8.5pt; }
  pre { background: #f6f6f6; padding: 8px; overflow-x: auto; white-space: pre-wrap; }
  blockquote { border-left: 4px solid #888; margin-left: 0; padding-left: 12px; color: #444; }
  .cover { text-align: center; margin: 80px 0 40px; }
  .cover h1 { border: none; font-size: 26pt; page-break-before: avoid; }
  .meta { color: #555; font-size: 10pt; }
  .mermaid { background: #fafafa; border: 1px dashed #ccc; padding: 10px; font-size: 9pt; white-space: pre-wrap; }
'''
def md_to_html(md_text):
    mermaids=[]
    def save_m(m):
        mermaids.append(m.group(1)); return f"@@MERMAID{len(mermaids)-1}@@"
    md_text=re.sub(r"```mermaid\n(.*?)```", save_m, md_text, flags=re.S)
    html=markdown.markdown(md_text, extensions=["tables","fenced_code","nl2br","sane_lists"], output_format="html5")
    for i,c in enumerate(mermaids):
        b=f'<div class="mermaid"><strong>Diagrama (Mermaid)</strong><pre>{c}</pre></div>'
        html=html.replace(f"<p>@@MERMAID{i}@@</p>", b).replace(f"@@MERMAID{i}@@", b)
    return html
def build(title, subtitle, md_name):
    md=Path(md_name).read_text(encoding="utf-8")
    m=re.search(r"^# (.+)$", md, re.M)
    cover=m.group(1) if m else title
    body=md_to_html(md)
    Path(md_name.replace(".md",".html")).write_text(f'''<!DOCTYPE html>
<html lang="pt-BR"><head><meta charset="utf-8"/><title>{title}</title>
<style>{CSS}</style></head><body>
<div class="cover"><h1>{cover}</h1><p class="meta">{subtitle}</p></div>
{body}</body></html>''', encoding="utf-8")
    print("OK", md_name)
build("Documentação Funcional — MAIORE Simulador Tributário","MAIORE Simulador Tributário · Levantamento 2026-09-29","DOCUMENTACAO_FUNCIONAL_SISTEMA.md")
build("Especificação Técnica — MAIORE Simulador Tributário","MAIORE Simulador Tributário · Levantamento 2026-09-29","ESPECIFICACAO_TECNICA.md")
build("Manual do Sistema — MAIORE Simulador Tributário","Guia operacional do usuário · 2026-09-29","MANUAL_DO_SISTEMA.md")
PY
for base in DOCUMENTACAO_FUNCIONAL_SISTEMA ESPECIFICACAO_TECNICA MANUAL_DO_SISTEMA; do
  UDD=$(mktemp -d)
  google-chrome --headless=new --disable-gpu --no-sandbox \
    --user-data-dir="$UDD" --no-pdf-header-footer \
    --print-to-pdf="$(pwd)/${base}.pdf" "file://$(pwd)/${base}.html" 2>/dev/null
  rm -rf "$UDD"
done
echo "PDFs regenerados."
