Metadata-Version: 1.1
Name: sphc
Version: 0.8.1
Summary: Simple Pythonic HTML Creator
Home-page: http://flavors.me/shon
Author: Shekhar Tiwatne
Author-email: pythonic@gmail.com
License: http://www.opensource.org/licenses/mit-license.php
Description: ============================
        Simple Pythonic HTML Creator
        ============================
        
         - Ultra simple and works
         - Compatible with Python3/ 2.x
        
         - Source: `<https://github.com/shon/sphc>`_
         - Any suggestions/issues | `<https://github.com/shon/sphc/issues>`_
         - Critisism or if you feel such thing already implemented feel free to write Authour.
        
        As simple as below::
        
            >>> import sphc
        
            >>> tf = sphc.TagFactory()
        
            >>> html = tf.HTML()
            >>> html.head = tf.HEAD()
            >>> html.body = tf.BODY()
            >>> html.body.content = tf.DIV("Some Text here.", Class='content')
            >>> html.body.content.br = tf.BR()
            >>> html.body.content.br = tf.BR()
            >>> html.footer = tf.FOOTER()
        
            >>> data = [('One', '1'), ('Two', '2'), ('Three', '3')]
            >>> atable = tf.TABLE()
            >>> for element in data:
            >>>     row = tf.TR()
            >>>     row.cells = [tf.TD(element[0]), tf.TD(element[1])]
            >>>     atable.row = row
        
            >>> more_cells = [tf.TD('Four'), tf.TD('4')]
            >>> row = tf.TR()
            >>> row.cells = more_cells
        
            >>> atable.row = row
        
            >>> html.body.content.atable = atable
            >>> html.body.content.attributes['id'] = 'content_id'
        
            >>> print(html)
            >>> print(html.pretty())
        
        Remember
        ========
        **pretty method should only be used for debugging. Real output is generated by str( <tag-object> )**
        
        Properties with no value required
        =================================
        
        ::
        
           >>> c = tf.INPUT(nv_attrs=['checked'], type='checkbox', value='foo')
           >>> print(c)
           <INPUT checked type="checkbox", value="foo"/>
        
        Escaping
        ========
        
        ::
        
            >>> print(tf.C(' >> ')) # Default
            >>> <C> &gt;&gt; </C>
        
            >>> print(tf.C(' >> ', escape=False))
            >>> <C> >> </C>
        
        
        More
        ====
        More (sphc.more) provides some helper widgets based on core sphc.
        sphc.more usable but in progress work. You may want to use but be ready for api changes.
        
        Base HTML5 page classes 
        -----------------------
        (loosely based on html5boilerplate.com templates)::
        
            >>> import sphc.more
            >>> tf = sphc.TagFactory()
            >>> class MyPage(sphc.more.HTML5Page):
                    def footer(self):
                        return tf.FOOTER("Footer text")
            >>> my_page = MyPage()
            >>> my_page.render()
        
        Building a form
        ---------------
        
            >>> import sphc
            >>> import sphc.more
            >>> 
            >>> tf = sphc.TagFactory()
            >>> 
            >>> form = sphc.more.Form(classes=['vform'])
            >>> form.add_field('Username', tf.INPUT(type="TEXT", id='username', name="username", placeholder="Username"))
            >>> form.add_field('Password', tf.INPUT(type="password", id='password', name="password", placeholder="Password"))
            >>> form.add_buttons(tf.BUTTON("Log In", id='login-btn', type='button'))
            >>> print form.build()
        
        output::    
        
            <FORM Class="vform"> 
                <DIV Class="field" For="username"> 
                    <DIV>
                        <LABEL Class="field-label">Username</LABEL>
                    </DIV>
                    <INPUT placeholder="Username" Class="field-input" type="TEXT" name="username" id="username"/>
                </DIV>
                <DIV Class="field" For="password">
                    <DIV>
                        <LABEL Class="field-label">Password</LABEL>
                    </DIV>
                    <INPUT placeholder="Password" Class="field-input" type="password" name="password" id="password"></INPUT>
                </DIV>
                <DIV Class="buttons">
                    <BUTTON type="button" id="login-btn">Log In</BUTTON>
                </DIV>
            </FORM>
        
        
        
        Similar packages
        ================
            - http://pypi.python.org/pypi/html # Inspiration. It uses __getattr__ trick whereas this package is mostly a __setattr__ trick, aiming sharing of blocks.
            - http://karrigell.sourceforge.net/en/htmltags.html
        
        TODO
        ====
         - To add more tests
         - A document class ?
        
Platform: UNKNOWN
Requires: pytidylib
