Skip to main content

Convert Markdown to professionally formatted DOCX/PDF following academic standards (APA 7th, ICONTEC, IEEE).

Project description

NormaDocs

License: MIT Python 3.12 Code Style: Ruff

NormaDocs es una herramienta profesional de código abierto diseñada para convertir documentos Markdown a formatos académicos estándar (DOCX, PDF), comenzando con soporte estricto para APA 7ª Edición.

Su arquitectura modular permite la integración futura de otras normas como ICONTEC, IEEE y más.

Características ✨

  • Automatización Total: Convierte Markdown simple en documentos listos para entregar.
  • Multiformato: Salida en DOCX y PDF.
  • Cumplimiento APA 7:
    • Portada automática.
    • Formato Times New Roman 12pt, Doble espacio.
    • Citas y referencias formateadas.
  • Modular: Úsalo como CLI (normadocs) o como librería Python (normadocs).

Instalación 📦

Requisitos Previos

  • Python 3.12+
  • Pandoc
  • LibreOffice (Opcional, para PDF)

Desde el repositorio

git clone https://github.com/mackroph/normadocs.git
cd normadocs
make install

Uso 🚀

Línea de Comandos (CLI)

El comando principal es normadocs:

# Ayuda
normadocs --help

# Conversión básica
normadocs IDocs/paper.md

# Conversión a PDF y DOCX en carpeta específica
normadocs IDocs/paper.md -o ./ExportDocs --format pdf

Como Librería (Python)

from pathlib import Path
from normadocs.preprocessor import MarkdownPreprocessor
from normadocs.docx_formatter import APADocxFormatter
from normadocs.pandoc_client import PandocRunner

# 1. Pre-procesar
md_text = Path("paper.md").read_text()
processor = MarkdownPreprocessor()
clean_md, meta = processor.process(md_text)

# 2. Convertir
PandocRunner().run(clean_md, "output.docx")

# 3. Aplicar Normas
formatter = APADocxFormatter("output.docx")
formatter.process(meta)
formatter.save("output_final.docx")

Desarrollo 🛠️

make install  # Instalar dependencias
make test     # Correr tests
make lint     # Verificar calidad
make build    # Crear paquete

Licencia 📄

Este proyecto está bajo la Licencia MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

normadocs-0.1.2a1.tar.gz (51.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

normadocs-0.1.2a1-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file normadocs-0.1.2a1.tar.gz.

File metadata

  • Download URL: normadocs-0.1.2a1.tar.gz
  • Upload date:
  • Size: 51.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for normadocs-0.1.2a1.tar.gz
Algorithm Hash digest
SHA256 a42696009484704561d2854cfcd490072599967ffe5b44f528623759b1882d59
MD5 af52ed0048ab8ffe49fa7861480e738e
BLAKE2b-256 da1f551d573a2c5422a9ba25e055c8063f2936cd27f8ab834941e8021e456a95

See more details on using hashes here.

File details

Details for the file normadocs-0.1.2a1-py3-none-any.whl.

File metadata

  • Download URL: normadocs-0.1.2a1-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for normadocs-0.1.2a1-py3-none-any.whl
Algorithm Hash digest
SHA256 a2d2ac41c970e71455ad62e1b7ef48206a35020796a190b696c8f1c17a2748b4
MD5 dfbd0ae260fcf438e5f065c1a6c810ff
BLAKE2b-256 efb868e899814eb0bad894dc79fba084dc2c7691a8042680a0bad1a169bfe371

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page