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.
Script version of cssutils.parseString(), cssutils.parseFile() and cssutils.parseUrl().
-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 downloads all referenced CSS stylesheets of a given URL and saves them to a given target directory.
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')]
Usage: csscapture-script.py [options] URL
-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 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.
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)
}
Usage: csscombine-script.py [options] [path]
-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 |