Plugins Funcionando
- 20 March, 2:09pm |
- general
Bueno, hoy platiqué un rato con Ion sobre el tema de plugins para el blog, le comenté lo que estaba desarrollando (el Syntax) y pues no le pareció mala idea.
Luego me puse a pelear con el código html, ya que me dejaba siempre une spacio en blanco, y sorpresa!, el problema no es.. ni más ni menos que el propio nl2br de php.
Cuando nosotros usamos nl2br lo que hacemos es leer en texto plano el archivo y por cada nueva linea le cargamos un 'br', ¿pero qué pasa si en el código html, el tag era un comentario?, como el comentario es una liena nueva, pues entonces me iba a imprimir dos br's, cosa que no queremos, lo mismo pasaba con div, pre, p.
Así que al no tener nada que hacer en la escuela (digo, después de un accidente quien va a tener tiempo para nadar haciendo otras cosas, jeje) y me puse a trabajar en una implementación de nl2br, que la llamamos: nl2br_jaws.
Ahora Jaws ya cuenta con el famoso sistema de plugins (bueno, solamente yo lo tengo xD, pero próximamente todos lo van a poder tener), que por ahora hace la gracia de imprimir el texto bonito y darle highlight.
Los plugins los puedes activar desde una tabla de mysql (próximamente en el admin.php), así que pues bueno ya toy feliz ![]()
La única cosa que le falta, es un poco de velocidad al parser, sería cosa de implementar una mega clase que haga muchos plugins.. o aguantar un segundo más xD.
Weno, los dejo.. con un poco de:
//Convert new lines to br
$html = nl2br($html);
//We create a parser using the html text
$parser = new HtmlParser($html);
//The var will be 'collecting' the html needed
$new_html = "";
//A var that will contain the previous tag
$previous_tag = "";
while($parser->parse()) {
//The NodeType is type element
if($parser->iNodeType == "1") {
//We don't have a previous tag? (we shouldn't have one)
if(empty($previous_tag)) {
.....
}