Seite 1 von 1

Alle Farbangaben aus CSS Datei auflisten...

Verfasst: Mittwoch 29. April 2015, 12:57
von jens
Brauchte mal eine Filtermöglichkeit um nur die Farbangaben aus einer CSS Datei zu bekommen:

Code: Alles auswählen

import re

txt = open("/path/to/foobar.css","r").read()

txt = re.sub("/\*.*?\*/(?s)", "", txt) # remove /* multi line */ comments
txt = re.sub("//.*?(?m)", "", txt) # remove // single line comments

regex = re.compile(
    r"""
    (?P<name>.*?)
    \{
    (?P<data>.*?)
    \}""",
    re.IGNORECASE | re.VERBOSE | re.UNICODE
)

for match in regex.finditer(txt):
    css_data = match.group("data")
    if not "color" in css_data:
        continue

    print("%s {" % match.group("name"))

    for part in css_data.split(";"):
        if "color" in part:
            print("\t%s;" % part)

    print("}")
auch hier: https://gist.github.com/jedie/379c25305185183da0b8

Re: Alle Farbangaben aus CSS Datei auflisten...

Verfasst: Donnerstag 30. April 2015, 10:16
von BlackJack
@jens: Zeichenketten berücksichtigst Du nicht. :-)

Re: Alle Farbangaben aus CSS Datei auflisten...

Verfasst: Donnerstag 30. April 2015, 10:34
von jens
Was meinst du?!?

Re: Alle Farbangaben aus CSS Datei auflisten...

Verfasst: Donnerstag 30. April 2015, 10:58
von BlackJack
@jens: 'color' kann auch als Teil einer Zeichenkette vorkommen. Ausserdem kann es verschachtelte Sachen geben in denen das Wort 'color' zum Beispiel als Teil eines Selektors vorkommt. Beispiel mit beiden Fällen:

Code: Alles auswählen

@media print {
    dd.color:before {
        content: 'color: ';
    }
}

Re: Alle Farbangaben aus CSS Datei auflisten...

Verfasst: Donnerstag 30. April 2015, 11:11
von jens
Ah, ok... Naja, ich wollte den Aufwand nicht zu hoch treiben ;)

Genutzt habe ich es nun eh nicht :lol: