Otra forma es lo que hace Redmine: utiliza RedCloth 3 y monkey patch para agregarle "reglas" de parseo (por supuesto, imaginate que jamás podrán actualizar a RedCloth 4)...
2009/6/6 Aureliano Calvo <[email protected]> > >> Hola, > >> estoy buscando una biblioteca que genere HTML a partir de markup de > >> wikis. Lo que quiero es agregarle formas de generar links. También > >> necesito que idealmente soporte definition lists > >> (http://www.w3.org/TR/REC-html32#dl). > > > > No conozco ninguno que soporte <dl />s > > > >> > >> Estuve pispeando RedCloth (Textile) y bluecloth (Markdown) pero > >> ninguna de las 2 me convenció. El markup es demasiado "técnico" y no > > > > Textile (RedCloth) es bastante más técnico que Markdown (BlueCloth), pero > > RedCloth (particularmente la última versión) está mejor implementado y > > soportado, lamentablemente. > > > > El motivo de que sea una buena implementación, es que para el parseo > define > > la gramática en Ragel[1] (y éste genera código Ruby que parsea). Veo > difícil > > que sea extensible, ¡a menos que vayas a la fuente!. > > > > Si tenés ganas de investigar un poquito, fijate cómo está implementado > > SuperRedCloth (RedCloth 4). > > > >> encontré que se pueda agregar/sacar reglas fácilmente. Idealmente, la > >> biblioteca debería ser algo parecido a la biblioteca de PHP Text_wiki > >> (http://pear.reversefold.com/dokuwiki/doku.php?id=text_wiki). > > > > Una alternativa que apunta a ser modular en este sentido (quizá > demasiado) > > es Maruku[2]. Es una reimplementación de BlueCloth con la idea de > soportar > > múltiple sintáxis de entrada y salida. Desconozco cuán maduro está -- de > > hecho pensá que estaba abandonado hasta que recién me fijé y tienen un > > release reciente. La contra de este approach es que para el parseo no > > utiliza máquinas de estado (supongo que usará regexps) lo que es más > difícil > > de mantener (suelen surgir bugs inexplicables, inencontrables e > > irresolubles). > > > > [1] Ragel es un "compilador de máquinas de estado", ideal para parsers > (el > > ejemplo más claro es Mongrel de Zed Shaw, cuyo parser HTTP supera en > algunas > > pruebas de "correctitud" a Apache). > > [2] http://maruku.rubyforge.org/ > > > > Saludos, > > > > Nacho > > Muchas gracias por la información. Me parece que voy a hacer un clon > del markup de trac y agregarle lo que tengo ganas. Cuando tenga código > lo muestro por acá. > > Saludos, > Aureliano. > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar >
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
