Files
scripts/doc-converter/scripts/create_pandoc_template.py
T

52 lines
1.8 KiB
Python
Executable File

"""
create_pandoc_template.py
Author: Descomplicar® Crescimento Digital
Link: https://descomplicar.pt
Copyright: 2025 Descomplicar®
"""
import os
from docx import Document
def create_pandoc_template():
"""
Cria um template DOCX compatível com Pandoc a partir do template mestre.
Substitui '{{conteudo_guia}}' por '$body$'.
"""
script_dir = os.path.dirname(os.path.abspath(__file__))
master_template_path = os.path.join(script_dir, 'template_mestre.docx')
pandoc_template_path = os.path.join(script_dir, 'template_pandoc.docx')
if not os.path.exists(master_template_path):
print(f"Erro: Template mestre não encontrado em '{master_template_path}'")
return
print(f"A criar template para Pandoc a partir de '{master_template_path}'...")
doc = Document(master_template_path)
# Substituir o placeholder
found = False
for para in doc.paragraphs:
if '{{conteudo_guia}}' in para.text:
print("Placeholder '{{conteudo_guia}}' encontrado. A substituir por '$body$'...")
# Limpar o parágrafo e adicionar o novo placeholder
para.clear()
run = para.add_run('$body$')
# Opcional: manter algum estilo se necessário, mas o Pandoc irá aplicar os seus.
# run.font.name = 'Calibri'
# run.font.size = Pt(11)
found = True
break
if not found:
print("Aviso: Placeholder '{{conteudo_guia}}' não encontrado. O template pode não funcionar como esperado.")
# Adicionar o $body$ no fim se não for encontrado
doc.add_paragraph('$body$')
doc.save(pandoc_template_path)
print(f"Template para Pandoc guardado em '{pandoc_template_path}'")
if __name__ == '__main__':
create_pandoc_template()