Metadata-Version: 1.0
Name: ll-xist
Version: 3.0
Summary: An extensible HTML/XML generator
Home-page: http://www.livinglogic.de/Python/xist/
Author: Walter Doerwald
Author-email: walter@livinglogic.de
License: MIT
Download-URL: http://www.livinglogic.de/Python/xist/Download.html
Description: XIST is an extensible HTML and XML generator. XIST is also a XML parser with a
        very simple and pythonesque tree API. Every XML element type corresponds to a
        Python class and these Python classes provide a conversion method to transform
        the XML tree (e.g. into HTML). XIST can be considered 'object oriented XSLT'.
        
        
        Changes in 3.0 (released 01/07/2007)
        ------------------------------------
        
        *	Tree traversal has been rewritten again. XFind expressions involving multiple
        uses of ``//`` now work correctly. The method :meth:`walk` now doesn't yield
        :class:`Cursor` objects, but simple path lists (actually it's always the same
        list, if you want distinct lists use :meth:`walkpath`). Applying XFind
        expressions to nodes directly is no longer supported, you have to call
        :meth:`walk`, :meth:`walknode` or :meth:`walkpath` with the XFind expression
        instead. Many XFind operators have been renamed and/or reimplemented
        (see the documentation for the :mod:`xfind` module for more information).
        
        *	The methods :meth:`__getitem__`, :meth:`__setitem__` and :meth:`__delitem__`
        for :class:`Frag` and :class:`Element` now support the new walk filters, so
        you can do:
        
        *	``del node[html.p]`` to delete all :class:`html.p` child elements of
        ``node``;
        *	``del node[html.p[2]]`` to delete only the third :class:`html.p`;
        *	``node[xfind.hasclass("note")] = html.p("There was a note here!")`` to
        replace several child nodes with a new one;
        *	``for c in node[xfind.empty]: print c.bytes()`` to print all empty
        (element) children of ``node``;
        *	``del node[node[0]]`` to delete the first child node (which is silly, but
        illustrates that you can pass a node to get/replace/delete that node);
        
        *	A new module :mod:`ll.xist.css` has been added which contains |CSS| related
        functionality: The generator function :func:`iterrules` can be passed an
        |XIST| tree and it will produce all |CSS| rules defined in any
        :class:`html.link` or :class:`html.style` elements or imported by them
        (via the |CSS| rule ``@import``). This requires the :mod:`cssutils` package.
        
        *	The function :func:`applystylesheets` modifies the |XIST| tree passed in by
        removing all |CSS| (from :class:`html.link` and :class:`html.style` elements
        and their ``@import``ed stylesheets) and putting the styles into ``style``
        attributes of the affected elements instead.
        
        *	The function :func:`selector` return a tree walk filter from a |CSS| selector
        passed as a string.
        
        *	Constructing trees can now be done with ``with`` blocks. Code looks like
        this::
        
        with xsc.Frag() as node:
        +xml.XML()
        +html.DocTypeXHTML10transitional()
        with html.html():
        with html.head():
        +meta.contenttype()
        +html.title("Example page")
        with html.body():
        +html.h1("Welcome to the example page")
        with html.p():
        +xsc.Text("This example page has a link to the ")
        +html.a("Python home page", href="http://www.python.org/")
        +xsc.Text(".")
        
        print node.conv().bytes(encoding="us-ascii")
        
        Also the function :func:`xsc.append` has been renamed to :func:`add` and
        supports ``with`` blocks now instead of XPython_.
        
        .. _XPython: http://codespeak.net/svn/user/hpk/talks/xpython-talk.txt
        
        *	A subset of ReST__ is supported now for docstrings when using the
        :mod:`ll.xist.ns.doc` module. The module attribute :attr:`__docformat__`
        is now honored (Set it to ``"xist"`` to get XIST docstrings).
        
        __ http://docutils.sourceforge.net/rst.html
        
        *	Many classes in the :mod:`ll.xist.ns.doc` have been renamed to more familiar
        names (from HTML, XHTML 2 or ReST).
        
        *	The ``media`` attribute of :class:`html.link` and :class:`html.style` now has
        a method :meth:`hasmedia`.
        
        *	The node method :meth:`asBytes` has been renamed to :meth:`bytes` and
        :meth:`bytes` has been renamed to :meth:`iterbytes`.
        
        *	The node method :meth:`asString` has been renamed to :meth:`string` and a
        new method :meth:`iterstring` has been added.
        
        *	:class:`ll.xist.ns.xml.XML10` is gone now. Use :class`ll.xist.ns.xml.XML`
        instead.
        
        *	:func:`xsc.tonode` now will raise an exception when it can't handle an
        argument instead of issuing a warning.
        
        *	A class attribute :attr:`empty` inside element classes will now no longer get
        converted into :attr:`model`.
        
        *	:class:`ll.xist.ns.doc.pyref` now copes better with decorated methods.
        
        *	The deprecated :class:`Element` methods :meth:`hasAttr`, :meth:`hasattr`,
        :meth:`isallowedattr`, :meth:`getAttr`, :meth:`getattr`, :meth:`setDefaultAttr`,
        :meth:`setdefaultattr`, :meth:`attrkeys`, :meth:`attrvalues`, :meth:`attritems`,
        :meth:`iterattrkeys`, :meth:`iterattrvalues`, :meth:`iterattritems`,
        :meth:`allowedattrkeys`, :meth:`allowedattrvalues`, :meth:`allowedattritems`,
        :meth:`iterallowedattrkeys`, :meth:`iterallowedattrvalues`,
        :meth:`iterallowedattritems` and :meth:`copyDefaultAttrs` have been removed.
        The deprecated :class:`Attrs` method :meth:`copydefaults` has been removed too.
        
        *	The namespace module :mod:`ll.xist.ns.cond` has been removed.
        
        *	When calling the function :func:`ll.xist.parsers.parseURL` the arguments
        :var:`headers` and :var:`data` are now passed along to the parser's method
        only if they are specified. This makes it possible to pass ssh |URL|s to
        :func:`ll.xist.parsers.parseURL`.
        
        *	The methods :meth:`withnames` and :meth:`withoutnames` have been split into
        two that take Python names and two that take |XML| names. Multiple arguments
        are used now (instead of one argument that must be a sequence). Passing a
        namespace to remove all attributes from the namespace is no longer supported.
        
        *	The :class:`Attrs` methods :meth:`updatenew` and :meth:`updatexisting` have
        been removed.
        
        
        
Keywords: XML,HTML,XHTML,XSLT,HSC,XSL-FO,SVG,WML,iHTML,Relax NG
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Topic :: Text Processing :: Markup :: XML
