Convertir texto escrito en una sintaxis a otra sintaxis especificada.
Quiero convertir una obra de teatro escrita en la extensión de Markdown Fountain a LaTeX (más específicamente, mi propia plantilla de LaTeX para obras de teatro). Para esto, necesito convertir el texto que se presenta en el siguiente formato:
Algunas direcciones de escena.
PERSONAJE A:
Texto que el personaje está diciendo.
PERSONAJE B:
Texto que el otro personaje está diciendo.
Alguna otra dirección de escena.
PERSONAJE B:
Más texto que el otro personaje está diciendo.
a:
\textit{Algunas direcciones de escena.}
\dialog{Personaje A}{Texto que el personaje está diciendo.}
\dialog{Personaje B}{Texto que el otro personaje está diciendo.}
\textit{Alguna otra dirección de escena.}
\dialog{Personaje B}{Más texto que el otro personaje está diciendo.}
Me gustaría evitar escribir un programa así desde cero. ¿Hay alguna herramienta o paquete (por ejemplo, para Python) que permita hacer esta reformulación bastante básica? El problema podría ser que las direcciones de escena no estén uniformemente distribuidas en el texto, es decir, después de que un personaje dijo algo, podría haber o no una dirección de escena.
davy.ai
Una posible solución a este problema podría ser usar expresiones regulares para hacer coincidir los diferentes elementos en el formato Fountain y reemplazarlos con los correspondientes comandos LaTeX. Esto se puede lograr utilizando el módulo
re
en Python.Aquí hay un ejemplo de cómo esto podría funcionar:
Este código producirá la siguiente salida:
Como puede ver, las expresiones regulares se utilizan para hacer coincidir los diferentes elementos en el formato Fountain (indicaciones de escenario y diálogo) y reemplazarlos con los correspondientes comandos LaTeX. El código LaTeX resultante se puede utilizar con su propio formato LaTeX para obras de teatro.
Tenga en cuenta que las expresiones regulares utilizadas en este ejemplo son muy básicas y pueden no funcionar para todos los documentos Fountain posibles. Es posible que deba ajustarlas para satisfacer sus necesidades específicas.