Desde el punto de vista técnico, una de las primeras decisiones que teníamos que tomar, en el arranque de soitu.es, era el servidor HTTP que usaríamos. Otro día contaremos ese proceso --por qué y cómo se decidió usar Nginx y Apache-- pero una cosa que teníamos clara era que, se decidiese lo que se decidiese, tendríamos que meterle mano al código del servidor para hacer cosas que, de antemano, sabíamos que ninguno hacía.
El primer módulo necesario era uno que nos permitiese marcar todas las páginas que sirviéramos, sin importar cómo habían sido generadas. Nginx tiene un módulo que hace algo parecido, http_sub_module, pero que no hace otras muchas cosas que también queremos y que, soportarlas, implicaría reescribir totalmente el módulo. Cosa que hemos hecho.
En concreto, los requisitos eran:
Todo esto teniendo en cuenta que todos los elementos que se sirven, HTML en general, pueden salir de un gestor de contenidos (donde se podrían llegar a hacer gran parte de esas limpiezas) o no. Es decir, parte de las páginas que se sirven, no pasan por el gestor, son generadas con DreamWeaver, el Scite o, directamente, con el vi. Por tanto, son ficheros dejados tal cual en el disco y, en el proceso de servir, no puede salir ni uno sin su procesado.
De esta forma, nació ngx_http_html_clean_filter_module.c que, mediante una máquina de estados finitos, procesa la página que se va a servir y hace las modificaciones necesarias.
Las marcas elegidas son:
<!-- =lo que sea[...]= -->
O sea, un comentario de la forma...<!-- ===== Inicio del bloque cabecera ===== -->
desaparecerá del HTML servido pero no un<!-- Inicio del bloque cabecera -->
<!-- = #IB[...] = -->
aquí escribimos
todo lo que queramos que
se respete tal cual
<!-- = #EB[...] = -->
Y ese trozo de texto saldrá tal cual.<!-- = #XP = -->
antes del tag body.Los parámetros son:
Un ejemplo de uso es:
location / {
html_clean_active on;
# Pixel de contabilizacion y JS comun.
html_clean_pxlcntrblock '<div style="display:none">\
<img src="/pxlctl.gif" width="1" height="1" alt="" />\
<script language="Javascript" type="text/javascript" src="/comun.js">\
</script></div>';
# Solo JS comun.
html_clean_xcldpxlcntrblock '<div style="display:none">\
<script language="Javascript" type="text/javascript" src="/comun.js">\
</script></div>';
}
El código del nuevo módulo se distribuye en modo de parche. Debe aplicarse al fuente 0.6.29 y añade una nueva opción (--without-http_htmlclean_module) en el proceso de configuración.
MD5SUM | 14-Jul-2008 09:38 | 150 bytes |
nginx-0.6.29-HTMLCLEAN-20080403.patch.bz2 | 28-Apr-2008 23:19 | 8422 bytes |
Si quieres firmar tus comentarios, regístrate o inicia sesión »
En este espacio aparecerán los comentarios a los que hagas referencia. Por ejemplo, si escribes "comentario nº 3" en la caja de la izquierda, podrás ver el contenido de ese comentario aquí. Así te aseguras de que tu referencia es la correcta. No se permite código HTML en los comentarios.
Soitu.es se despide 22 meses después de iniciar su andadura en la Red. Con tristeza pero con mucha gratitud a todos vosotros.
Fuimos a EEUU a probar su tren. Aquí están las conclusiones. Mal, mal...
Algunos países ven esta práctica más cerca del soborno.
A la 'excelencia general' entre los medios grandes en lengua no inglesa.
Para bien o para mal, el iPad se ha convertido en un habitual en muchas conversaciones. Ya sea para romper el hielo antes de una reunión o con el café en una comida familiar: defensores y detractores del aparato de Apple salen por doquier. ¿Es para tanto? ¿Vale la pena hacerse con uno? ¿No hace lo mismo que un ordenador?
En: E-Campany@
Recomendación: Albert Medrán
La Administración de Obama sigue dando ejemplo de apertura tecnológica al resto de los gobiernos del mundo: si una de sus banderas es la apertura de datos, ahora te toca al código fuente de módulos de Drupal Traducir »
En: radar.oreilly.com
Recomendación: Raúl Rivero
En la BBC han hecho un gráfico impresionante sobre la evolución de Internet entre 1998 y 2008. Visto en elblogsalmon.com Traducir »
En: bbc.co.uk
Recomendación: mami
Lo sentimos, no puedes comentar esta noticia si no eres un usuario registrado y has iniciado sesión.
Si quieres, puedes registrarte o, si ya lo estás, iniciar sesión ahora.