scripts

The provided scripts are available as a standalone script which is installed in the default PYTHONHOME/scripts directory. Additionally an API for the functionality of the scripts is provided for use in programs.

CSSParse

Script version of cssutils.parseString(), cssutils.parseFile() and cssutils.parseUrl().

Usage: cssparse-script.py [options] filename1.css [filename2.css ...]
[>filename_combined.css] [2>parserinfo.log]
Options:
-h, --help show this help message and exit
-s, --string parse given string
-u URL, --url=URL
 parse given url
-e ENCODING, --encoding=ENCODING
 encoding of the file or override encoding found
-m, --minify minify parsed CSS
-d, --debug activate debugging output

CSSCapture

CSSCapture downloads all referenced CSS stylesheets of a given URL and saves them to a given target directory.

programmatic use

example:

>>> url = 'http://cthedot.de'
>>> from cssutils.script import CSSCapture
>>> capturer = CSSCapture(ua=None, log=None, defaultloglevel=logging.INFO)
>>> stylesheetlist = capturer.capture(url)
>>> print stylesheetlist
[cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/css/default.css', media=None, title=None),
 cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/static/alternate1.css', media=None, title=u'red'),
 cssutils.css.CSSStyleSheet(href=u'http://cthedot.de/static/alternate2.css', media=None, title=u'blue')]

script use

Usage: csscapture-script.py [options] URL

Options:
-h, --help show this help message and exit
-d, --debug show debug messages during capturing
-m, --minified saves minified version of captured files
-n, --notsave if given files are NOT saved, only log is written
-s SAVETO, --saveto=SAVETO
 saving retrieved files to “saveto”, defaults to “_CSSCapture_SAVED”
-u UA, --useragent=UA
 useragent to use for request of URL, default is urllib2s default

The following example outputs a list of stylesheets found with title and href of the found stylesheet. (PYTHONHOME/Scripts should be on your PATH. Additional log output is not shown.):

> csscapture http://cthedot.de/static/cssutils/examples/capturefrom.html -n

1.
    encoding: 'utf-8'
    title: u'html 1: link1'
    href: u'http://cthedot.de/css/default.css'
2.
    encoding: 'utf-8'
    title: u'html 2: style1'
    href: None
3.
    encoding: 'utf-8'
    title: u'HTML 2.1: @import'
    href: u'http://cthedot.de/static/cssutils/examples/inlineimport1.css'
4.
    encoding: 'utf-8'
    title: u'html 3: link2'
    href: u'http://cthedot.de/static/cssutils/examples/link1.css'
5.
    encoding: 'utf-8'
    title: u'link1: s1'
    href: u'http://cthedot.de/static/cssutils/examples/linkimport1.css'
6.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/linkimportimport1.css'
7.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/linkimportimport2.css'
8.
    encoding: 'iso-8859-1'
    title: u'link1: s2'
    href: u'http://cthedot.de/static/cssutils/examples/linkimport2.css'
9.
    encoding: 'utf-8'
    title: u'html 4: style2'
    href: None
10.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/inlineimport2.css'
11.
    encoding: 'utf-8'
    title: None
    href: u'http://cthedot.de/static/cssutils/examples/css/inlineimportimport1.css'

CSSCombine

csscombine may be used to combine several sheets loaded from a main sheet via @import rules. Nested @import rules are resolved from cssutils 0.9.6a1.

The resulting combined sheet (optionally minified) is send to stdout, info and error messages are handled by the normal cssutils log.

csscombine may also be used to change the encoding of the stylesheet if a target encoding is given.

programmatic use

example:

>>> from cssutils.script import csscombine
>>> proxypath = 'sheets/import.css'
>>> print csscombine(path=proxypath, sourceencoding=None, targetencoding='utf-8', minify=False)
INFO    Combining files from None
INFO    Processing @import u'import/import2.css'
INFO    Processing @import u'../import3.css'
INFO    @import: Adjusting paths for u'../import3.css'
INFO    Processing @import u'import-impossible.css'
INFO    @import: Adjusting paths for u'import-impossible.css'
WARNING Cannot combine imported sheet with given media as other rules then comments or stylerules found cssutils.css.CSSNamespaceRule(namespaceURI=u'y', prefix=u''), keeping u'@import "import-impossible.css" print;'
INFO    @import: Adjusting paths for u'import/import2.css'
INFO    Using target encoding: 'utf-8'
@charset "utf-8";
/* START @import "import/import2.css" */
@import "import-impossible.css" print;
/* START @import "../import3.css" */
/* import3 */
.import3 {
    /* from ./import/../import3.css */
    background: url(images/example3.gif);
    background: url(images/example3.gif);
    background: url(import/images2/example2.gif);
    background: url(import/images2/example2.gif);
    background: url(images/example3.gif)
    }
/* START @import "import-impossible.css" */
.import2 {
    /* sheets/import2.css */
    background: url(http://example.com/images/example.gif);
    background: url(//example.com/images/example.gif);
    background: url(/images/example.gif);
    background: url(import/images2/example.gif);
    background: url(import/images2/example.gif);
    background: url(images/example.gif);
    background: url(images/example.gif)
    }
.import {
    /* ./import.css */
    background-image: url(images/example.gif)
    }

script use

Usage: csscombine-script.py [options] [path]

Options:
-h, --help show this help message and exit
-u URL, --url=URL
 URL to parse (path is ignored if URL given)
-s SOURCEENCODING, --sourceencoding=SOURCEENCODING
 encoding of input, defaulting to “css”. If given overwrites other encoding information like @charset declarations
-t TARGETENCODING, --targetencoding=TARGETENCODING
 encoding of output, defaulting to “UTF-8”
-m, --minify saves minified version of combined files, defaults to False

Table Of Contents

Previous topic

logging

Next topic

CSS codec

This Page