send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

SmartCSS

  • 0 Respuestas
  • 1515 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Once

  • *
  • Underc0der
  • Mensajes: 383
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • El blog de Once
  • Twitter: @don_once
« en: Agosto 30, 2014, 09:00:06 pm »
SmartCSS
uso

CSS entrada

CSS salida


Si alguien alguna vez ha tenido que modificar el diseño de una web (CSS) se podra dar cuenta que si en CSS hubieran variables, el diseño sería mucho  más fácil ya que si en algún momento hay que modificar el color de la web (o alguna otra propiedad) hay que cambiarlo todo a mano. El script lo programé cuando estaba modificando el diseño del foro y lo dejo acá por si a alguien le interesa, solo uso un par de expresiones regulares muy sencillas y no tiene control de errores.

Código: Python
  1. import re
  2. import os
  3. import sys
  4.  
  5.  
  6. variables = []
  7. diccionario = {}
  8.  
  9. def reemplazar(x):
  10.     x = x.group()
  11.     print "reemplazando:", diccionario[x[1:]]
  12.     return diccionario[x[1:]]
  13.    
  14. def armar(x):
  15.     x = x.group()
  16.     variables.extend(re.findall("(.*?):(.*?);", x))
  17.     for variable in variables:
  18.         diccionario.update(dict([map(lambda x: x.strip(), variable)]))
  19.     return "/*Generado por SmartCSS - Once*/"
  20.  
  21. if len(sys.argv) > 2:
  22.     css_source =  sys.argv[1]
  23.     css_final = sys.argv[2]
  24.     if not os.path.isfile(css_source):
  25.         print "archivo ingresado incorrecto"
  26.         exit()
  27.  
  28. with open(css_source) as archivo:
  29.     css = archivo.read()
  30.  
  31. encontrar = re.compile(r"(vars.*?{.*?})", re.MULTILINE | re.DOTALL)
  32. salida = encontrar.sub(armar, css)
  33.  
  34. expresion = "!" + "|!".join(diccionario.keys())
  35.  
  36. final = re.sub("(%s)" % expresion, reemplazar, salida)
  37.  
  38. with open(css_final, "w") as css_final:
  39.     css_final.write(final)

El funcionamiento es simple, Las variables se declaran en un bloque vars {} usando la misma sintaxis de CSS y se invoca la variable donde se quiere usar anteponiendo al nombre de la variable un !

Saludos!






You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!