Parseo CSS
¿Expresiones o tokens?
Ando buscando información y scripts para el parseo de hojas de estilos, con el fin de depurar mi parser y aproximarlo un poco al SAC.
Mi parser basado en expresiones regulares se desmorona cuando el código es demasiado complejo, y provoca que los bloques no se reconozcan bien.
He estado mirando scripts, algunos para el highlight del código y me doy cuenta que usan tokens, es decir, cuando encuentran un token de apertura (un carácter) hacen un bucle hasta que no den con el token de cierre.
Esto consume más recursos que mis expresiones regulares, pero es muy efectivo.
Pongamos un ejemplo:
.miclass {
js: "function hello() { alert("hello"); }";
}
Supongamos que quiero añadir código JS, con mi parser al encontrarse con el corchete de cierre }" lo interpretaría como fin de bloque, pero con tokens no pararía hasta llegar al final.
Que es lo mas aconsejable? potenciar las expresiones regulares, o tirar por la otra practica?.
Ver post
Comentar
test#1 hace 873 días
DrSlump#2 hace 873 días
El proyecto está disponible en
http://svn.netxusfoundries.com/tracs/macrocss
y el repositorio svn en
http://svn.netxusfoundries.com/public/macrocss
El código es LGPL así que no hay problema si quieres usarlo.
ciao, ivan
Icebeat#3 hace 872 días
Vaya pasote.
DrSlump#4 hace 872 días
Ahora bien, definiendo tu propio DocumentHandler (definido en Handler.php) puedes almacenar internamente el CSS como mejor te parezca. El DocumentHandler define unos eventos que son llamados por el parser, a partir de ahí, con un poco de introspección para los selectores y las condiciones puedes hacer maravillas. En test/cssdom.php hay un mockup de una especie de DOM para CSS pero no está implementado y también faltaría crear un DocumentHandler para él.
De todas maneras, ten en cuenta que el código está lleno de ‘echos’ para depurarlo, así que antes de usarlo en producción habría que limpiarlo un poco.
Ahora mismo estoy muy liado con temas del curro, pero creo que si tuvieras el tiempo para coordinar un pequenyo grupo de trabajo (en SF mismo) podriamos crear algo muy interesante.
Empece a trabajar en el parser después de leer uno de tus posts hablando de CSSing, por que me parecía el escalón que falta entre CSS y XSL para separar la programación del disenyo y que al mismo tiempo los disenyadores se sientan comodos. Por desgracia mi tiempo ‘libre’ es cada vez más escaso, así si puedo ayudar en tu implementación será mejor que dejar pasar la idea.
ciao,
ivan
Icebeat#5 hace 872 días
Bueno yo la verdad si que veo el CSS en forma de XML, igual que definir aperturas y cierres para los elementos CSS.
Tengo previsto para la nueva versión implementar ciertas mejoras, entre las que tu parser me solucionaran la vida, necesito una forma de hacer la hoja de estilos dinamica pero sin que se tenga que recompilar cada vez.Tener ciertos niveles de dinamismo, dejando partes ya compiladas y otras para procesarlas.
Desde mi punto de vista como diseñador veo CSSing como una buena alternativa, es como trabajar con CSS pero potenciado con mas constantes y propiedades.
Me encantaria saber mas sobre el parser, si quieres puedes agregarme al msn y charlamos un poco :).
Alfonso#6 hace 872 días
Elix#7 hace 782 días
El motivo aparte de la felicitacion, es si conoces algo de información, con respecto a la usabilidad, comodidad y accesibilidad de usar 2 o 3 columnas.
Actualmente mi sitio tiene 3 columnas pero cada que navego más encuentro que la mayoria de los blogs “de exito” por asi decirlo y los demas sitios trabajan a 2 columnas.
Asi que me ha entrado la espinita y me gustaria intentar algo a 2 columnas o 3, pero que no sea tan inflexible como el que ahora tengo. Esto ultimo debido a que aun tengo drupal 4.6 pero pienso actualizarlo al 4.7 que ya me permite mayor flexibilidad con el manejo de las columnas.
Me agradan el diseño de estos sitios.
www.alt1040.com
www.olganza.com
http://www.moccablog.com/
Todos ellos con WP, pero no pienso dejar Drupal :D
Gracias de antemano.
Eliud
IceBeat#8 hace 781 días
Yo veo bien el formato que has utilizado, aunque sea fijo cumple su función.
Un 3 columnas en un blog es sobrecargar demasiado la información, todos sabemos que lo importante son los articulos y que un lector habitual no suele hacer mucho hincapie en investigar y darse una vuelta por la pagina (si ta buscando algo eso es otra cosa).