ADC

Un analizador de lenguaje de marcado
11 de noviembre de 2025

La primera vez que tuve un acercamiento al desarrollo web, no comprendía por qué los programadores se complicaban la existencia utilizando un lenguaje tan "complejo" como el HTML. En mi mente (de niño de secundaria) pensaba: "¿qué acaso no conocen de la existencia de Word?", pues siendo un procesador de texto muy poderoso, con unos cuantos clics, permitía generar un documento formateado listo para imprimir. ¿Por qué se tenía que utilizar etiquetas como <ul> en conjunto con <li> para generar una lista con puntitos, cuando en Word existe un botón que al presionarlo genera el mismo resultado?

No fue hasta años después que comprendí el poder que tienen los lenguajes de marcado para poder escribir texto enriquecido sin necesidad de utilizar un editor de texto especializado como lo es Word. Claro, hay cierta belleza en los editores WYSIWYG, pero el poder escribir y darle formato al texto con solo usar el teclado, trae una sensación de paz inigualable.

¿Un asunto de regex?

Cuando empecé a planificar este sitio web, tenía en mente los siguientes puntos (no en un orden específico):

  1. Facilidad para crear nuevas páginas/posts
  2. Crear reglas específicas, con poco sentido gramático, pero fácil de extender
  3. Depender lo menos posible de frameworks externos. Es decir, finalmente este proyecto es un micro-framework, por lo cual hago énfasis en lo "externo"

En un inicio pensaba que se trataba simplemente de hacer patrones específicos de regex y ordenarlos/concatenarlos de una manera secuencial para reemplazar tokens por elementos HTML, pero no podría haber estado más equivocado. No basta con usar |preg_replace()| a diestra y siniestra, ya que ello podría terminar ocasionando que una regla compleja como un item de lista desordenada con texto de encabezado cursiva y en negritas requiriera considerar los diferentes casos en los que dicha combinación de patrones podría aparecer.