Metadata-Version: 1.1
Name: Kajiki
Version: 0.7.1
Summary: Fast XML-based template engine with Genshi syntax and Jinja blocks
Home-page: https://github.com/nandoflorestan/kajiki
Author: Nando Florestan
Author-email: nandoflorestan@gmail.com
License: MIT
Description: Kajiki provides fast well-formed XML templates
        ==============================================
        
        Because Kajiki's input is XML, it can ensure that your HTML/XML output is
        well-formed. The Genshi-like syntax, based on XML attributes or tags, is simply
        beautiful and easily understood (or ignored) by web designers.
        But instead of the slow performance of Genshi_, Kajiki compiles
        templates to Python code that renders with blazing-fast speed, so Kajiki can
        compete with the speed of Jinja_, Mako_, Chameleon_ and others.
        Also, one of Genshi's misfeatures -- py:match -- is replaced with blocks which
        work like Jinja's blocks.
        
        By combining the best ideas out there -- XML input,
        Genshi's syntax and features, Jinja's template inheritance and final
        compilation to Python --, Kajiki is ready to become
        the most widely used templating engine for web development in Python.
        And more features are coming soon; stay tuned!
        
        Example
        =======
        
        .. code:: python
        
            >>> import kajiki
            >>> Template = kajiki.XMLTemplate('''<html>
            ...     <head><title>$title</title></head>
            ...     <body>
            ...         <h1>$title</h1>
            ...         <ul>
            ...             <li py:for="x in range(repetitions)">$title</li>
            ...         </ul>
            ...     </body>
            ... </html>''')
            >>> print(Template(dict(title='Kajiki is teh awesome!', repetitions=3)).render())
            <html>
                <head><title>Kajiki is teh awesome!</title></head>
                <body>
                    <h1>Kajiki is teh awesome!</h1>
                    <ul>
                        <li>Kajiki is teh awesome!</li><li>Kajiki is teh awesome!</li><li>Kajiki is teh awesome!</li>
                    </ul>
                </body>
            </html>
        
        
        Links
        =====
        
        Documentation_
        
        Kajiki is licensed under an MIT-style license_.
        
        The git repository and `issue tracker`_ are at GitHub_. Previously the project
        used SourceForge_ for the hg repository, issue tracker and forums.
        
        We use Travis_ for continuous integration.
        
        
        .. _Documentation: http://kajiki.readthedocs.org/
        .. _license: https://github.com/nandoflorestan/kajiki/blob/master/LICENSE.rst
        .. _`issue tracker`: https://github.com/nandoflorestan/kajiki/issues
        .. _GitHub: https://github.com/nandoflorestan/kajiki
        .. _SourceForge: http://sourceforge.net/p/kajiki/
        .. _Travis: https://travis-ci.org/nandoflorestan/kajiki
        .. _Genshi: https://pypi.python.org/pypi/Genshi
        .. _Jinja: https://pypi.python.org/pypi/Jinja2
        .. _Mako: https://pypi.python.org/pypi/Mako
        .. _Chameleon: https://pypi.python.org/pypi/Chameleon
        
        CHANGES
        =======
        
        0.7.1 (2017-09-11)
        ------------------
        
        * Allow to replace ``gettext`` function by providing it in the template context or through ``base_globals`` in Loader
        
        0.7.0 (2017-06-27)
        ------------------
        
        * Text for i18n is now extracted ignoring the empty spaces surrounding the text itself. Empty text will always be treated as non translatable nodes for performance reasons.
        * ``extract_python`` option will now report syntax errors when extracting text for translation.
        
        0.6.3 (2017-05-25)
        ------------------
        
        * Added ``extract_python`` option to babel message extractor, this allows extracting gettext calls in ``${}`` expressions
        
        0.6.1 (2016-11-28)
        ------------------
        
        * Actually report 0.6 in kajiki/version.py
        * Expose ``strip_text`` option in loader
        
        0.6.0 (2016-11-27)
        ------------------
        
        * Fixed ``py:switch`` error message wrongly mentioning ``py:with``
        * Support for multiline ``${}`` expressions
        * Subsequent text nodes are now squashed into a single text node. This allows translating whole paragraphs instead of single sentences.
        * Allow code and function calls inside tag attributes
        * Added ``strip_text`` option to XMLTemplate and i18n collector to ensure leading and trailing spaces are stipped by text nodes (also leads to minified HTML)
        * Some HTML nodes that do not require being closed but is commonly considered best practice to close them are now emitted with ending tag (IE: <p>)
        * Generally improved code documentation to lower entry barrier for contributors
        
        
        0.5.5 (2016-06-08)
        ------------------
        
        * ``py:attrs`` will now emit the attribute name itself or will omit the attribute at all in case of
          ``bool`` values for 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'nohref',
          'ismap', 'declare' and 'defer',
        
        0.5.4 (2016-06-04)
        ------------------
        
        * ``py:switch`` now correctly supports multiple ``py:case`` statements.
        * text inside ``<script>`` and ``<style>`` tags is no longer collected translation.
        * Syntax errors now report the line and the surrounding code when there is a markup or python syntax error.
        * As ``py:swtich`` discards all its content apart from ``py:case`` and ``py:else`` statements it will now correctly report an error when the statements has other content.
        * ``py:else`` will now correctly detect spurious content between itself and ``py:if`` as the two must be consequential.
        * Improved code documentation on core classes.
        
        0.5.3 (2016-01-25)
        ------------------
        
        * ``py:with`` statement now keeps order of variables, so that variables can depend from each other.
        * Babel is no longer a dependency unless you want to use the message extractor.
        
        0.5.2 (2015-10-13)
        ------------------
        
        * TranslatableTextNodes are now only generated for non-empty strings
        * ``py:with`` statement now accepts multiple variables separated by semicolon
        * Babel message extractor fixed on Python2
        
        0.5.1 (2015-07-26)
        ------------------
        
        * Fix crash on PyPy
        
        0.5.0 (2015-07-25)
        ------------------
        
        * CDATA sections created by the user are now properly preserved
        * ``cdata_scripts=False`` option in ``XMLTemplate`` allows disabling automatic CDATA for script and style tags.
        * Autoblocks experimental feature automatically creates blocks from specified tag names.
        
        0.4.4 (2013-09-07)
        ------------------
        
        * Also accept "$." without erroring out. In fact, accept anything.
        * Add integration plugin for TurboGears 1
        
        0.4.3 (2013-08-12)
        ------------------
        
        * Accept "$(" without erroring out. Easier to write jQuery stuff.
        
        0.4.2 (2013-08-01)
        ------------------
        
        * There was a showstopper regression in FileLoader. Fixes #1
        
        0.4.0 (2013-07-29)
        ------------------
        
        * Support Python versions 2.6, 2.7, 3.2, 3.3 in a single codebase
          using the *nine* library.
        * Support HTML entities as well as XML entities in input templates.
        * py:include fixed, can see global variables.
        * Genshi compatibility: support built-in functions:
          defined(), value_of() and Markup().
        * ``py:def``: Do not crash if a function has no content.
        * ``py:strip=''`` is the same as ``py:strip='True'``.
        * Correctness: escape HTML attribute values.
        * Correctness: Always close script tags, even in XML mode.
        * Add integration module for the Pyramid web framework.
        * Give the FileLoader a *path*, not just a base *directory*.
        * Documentation improvements, including the need to write CDATA sections.
        * Move from Sourceforge to Github.
        * Use Travis for continuous integration.
        * The whole codebase is formatted according to PEP8.
        
        0.3.5 (2012-05-07)
        ------------------
        
        * Several bugfixes
        * Output HTML attributes in alphabetical order (for testability)
        
        0.3.4 (2011-06-01)
        ------------------
        
        * Make Kajiki work on Python 2.4
        
        0.3.2 (2010-11-26)
        ------------------
        
        * Fix Python 2.5 syntax error
        
        0.3.1 (2010-11-24)
        ------------------
        
        * Add support for py:with
        * Remove unused babel import that was breaking pip/easy_install
        * Python 2.5 fixes
        * Correctly strip None attributes and expressions
        * Turn off autoescaping in text templates
        
        0.3 (2010-10-10)
        ----------------
        
        * Adds i18n support
        * Fixes several bugs: [#7], [#9], [#10]
        
Keywords: templating engine template genshi jinja jinja2 mako chameleon xml html xhtml
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: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Topic :: Text Processing :: Markup :: XML
