scripts — cssutils 0.9.8 documentation

### Navigation

- index
- modules |
- next |
- previous |
- cssutils 0.9.8 documentation »

# 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

### Navigation

- index
- modules |
- next |
- previous |
- cssutils 0.9.8 documentation »