52 lines
1.8 KiB
Python
Executable File
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() |