Metadata-Version: 1.1
Name: Choco
Version: 1.0.4
Summary: A super-fast templating language that borrows the  best ideas from the existing templating languages.
Home-page: https://github.com/whiteclover/Choco
Author: Thomas
Author-email: lyanghwy@gmail.com
License: MIT
Description: =========================
        Choco Templates for Python
        =========================
        
        Choco is a template library written in Python. It provides a familiar, non-XML 
        syntax which compiles into Python modules for maximum performance. Choco's 
        syntax and API borrows from the best ideas of many others, including Django
        templates, Cheetah, Myghty, and Genshi. Conceptually, Choco is an embedded 
        Python (i.e. Python Server Page) language, which refines the familiar ideas
        of componentized layout and inheritance to produce one of the most 
        straightforward and flexible models available, while also maintaining close 
        ties to Python calling and scoping semantics.
        
        Nutshell
        ========
        
        ::
        
            <%inherit file="base.html"/>
            <%
                rows = [[v for v in range(0,10)] for row in range(0,10)]
            %>
            <table>
                % for row in rows:
                    ${makerow(row)}
                % endfor
            </table>
        
            <%def name="makerow(row)">
                <tr>
                % for name in row:
                    <td>${name}</td>\
                % endfor
                </tr>
            </%def>
        
        UI 
        ============
        
        
        
        UI tag is inspired by EmberJs Handlebarjs tempalte.
        
        
        index.html
        ----------------
        
        
        ::
        
            This is an UI Page
            <%@ PostView(post_id)/>
        
        
        
        ui/post.html
        ----------------
        
        
        ::
        
            This is a Post View
        
            Name: ${post.title}
            Content: ${post.content}
            
        
        .. code:: python
        
        
            def create_ui_container():
                from choco.ui import UIContainer, UIModule
                ui_container = UIContainer(["template/ui"])
        
                class PostView(UIModule):
        
                    default_template = "post.html"
        
                    def initialize(self):
                        self.thing = Thing("Post")
        
                    def render(self, post_id):
                        post = self.thing.getByPostId(post_id)
                        return {
                            "post": post
                        }
                ui_container.put_ui("PostView", PostView)
                return ui_container
        
            tl2 = lookup.TemplateLookup(directories=["template"], ui_container=create_ui_container())
            t12.get_template("index.html").render(post_id=122)
        
        
        
        
        
        Philosophy
        ===========
        
        Python is a great scripting language. Don't reinvent the wheel...your templates can handle it !
        
        
        
        License
        ========
        
        Choco is licensed under an MIT-style license (see LICENSE).
        Other incorporated projects may be licensed under different licenses.
        All licenses allow for non-commercial and commercial use.
        
Keywords: templates
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
