Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install pyjade

How to install pyjade

  1. Download and install ActivePython
  2. Buy and install the Business Edition license from account.activestate.com
  3. Open Command Prompt
  4. Type pypm install pyjade

pyjade contains builds that are only available via PyPM when you have a current ActivePython Business Edition subscription.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.9
1.9 Available View build log
1.0.1 Available View build log
0.6.1 Available View build log
0.6 Available View build log
0.5.1.2 Available View build log
0.5.1.1 Available View build log
0.5.1 Failed View build log
Windows (64-bit)
1.9
1.9 Available View build log
1.0.1 Available View build log
0.6.1 Available View build log
0.6 Available View build log
0.5.1.2 Available View build log
0.5.1.1 Available View build log
0.5.1 Failed View build log
Mac OS X (10.5+)
1.5.2
1.9Never BuiltWhy not?
1.5.2 Available View build log
1.0.1 Available View build log
0.6.1 Available View build log
0.6 Available View build log
0.5.1.2 Available View build log
0.5.1.1 Available View build log
0.5.1 Failed View build log
Linux (32-bit)
1.9
1.9 Available View build log
1.5.2 Available View build log
1.0.1 Available View build log
0.6.1 Available View build log
0.6 Available View build log
0.5.1.2 Available View build log
0.5.1.1 Available View build log
0.5.1 Failed View build log
Linux (64-bit)
1.5.2
1.9Never BuiltWhy not?
1.5.2 Available View build log
1.0.1 Available View build log
0.6.1 Available View build log
0.6 Available View build log
0.5.1.2 Available View build log
0.5.1.1 Available View build log
0.5.1 Failed View build log
 
Author
License
MIT
Imports

PyJade is a high performance port of Jade-lang for python, that converts any .jade source to the each Template-language (Django, Jinja2, Mako or Tornado).

UTILITIES

To simply output the conversion to your console:

pyjade [-c django|jinja|mako|tornado] input.jade [output.html]

INSTALLATION

First, you must do:

pip install pyjade

Or:

python setup.py install

Now simply name your templates with a `.jade` extension and this jade compiler will do the rest. Any templates with other extensions will not be compiled with the pyjade compiler.

Django

In settings.py, modify TEMPLATE_LOADERS like

System Message: ERROR/3 (<string>, line 36)

Unknown directive type "code".

.. code:: python

    TEMPLATE_LOADERS = (
        ('pyjade.ext.django.Loader',(
            'django.template.loaders.filesystem.Loader',
            'django.template.loaders.app_directories.Loader',
        )),
    )


Jinja2

Just add pyjade.ext.jinja.PyJadeExtension as extension

System Message: ERROR/3 (<string>, line 51)

Unknown directive type "code".

.. code:: python

    jinja_env = Environment(extensions=['pyjade.ext.jinja.PyJadeExtension'])


Mako

Just add pyjade.ext.mako.preprocessor as preprocessor

System Message: ERROR/3 (<string>, line 61)

Unknown directive type "code".

.. code:: python

    from pyjade.ext.mako import preprocessor as mako_preprocessor
    mako.template.Template(haml_source,
        preprocessor=mako_preprocessor
    )


Flask

Just add pyjade.ext.jinja.PyJadeExtension as extension to the environment of the app

System Message: ERROR/3 (<string>, line 74)

Unknown directive type "code".

.. code:: python

    app.jinja_env.add_extension('pyjade.ext.jinja.PyJadeExtension')


Pyramid

Adjust your "your_project/__init__.py" and add the following line somewhere to in the main() function

System Message: ERROR/3 (<string>, line 84)

Unknown directive type "code".

.. code:: python

    config.include('pyjade.ext.pyramid')


Tornado Templates

Append this after importing tornado.template

System Message: ERROR/3 (<string>, line 94)

Unknown directive type "code".

.. code:: python

    from tornado import template
    from pyjade.ext.tornado import patch_tornado
    patch_tornado()

    (...)


Syntax

Exactly the same as the Jade Node.js module (except of cases, which are not implemented) https://github.com/visionmedia/jade/blob/master/Readme.md

Example

This code

System Message: ERROR/3 (<string>, line 115)

Unknown directive type "code".

.. code:: jade

    !!! 5
    html(lang="en")
      head
        title= pageTitle
        script(type='text/javascript')
          if (foo) {
             bar()
          }
      body
        h1.title Jade - node template engine
        #container
          if youAreUsingJade
            p You are amazing
          else
            p Get on it!


Converts to

System Message: ERROR/3 (<string>, line 136)

Unknown directive type "code".

.. code:: html

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <title>{{pageTitle}}</title>
        <script type='text/javascript'>
          if (foo) {
             bar()
          }
        </script>
      </head>
      <body>
        <h1 class="title">Jade - node template engine</h1>
        <div id="container">
          {%if youAreUsingJade%}
            <p>You are amazing</p>
          {%else%}
            <p>Get on it!</p>
          {%endif%}
        </div>
      </body>
    </html>


Register filters

If you want to register a function as a filter, you only have to decorate the function with pyjade.register_filter("filter_name")

System Message: ERROR/3 (<string>, line 167)

Unknown directive type "code".

.. code:: python

    import pyjade

    @pyjade.register_filter('capitalize')
    def capitalize(text,ast):
      return text.capitalize()


TESTING

You must have nose package installed. You can do the tests with:

./test.sh

Subscribe to package updates

Download Stats

Last month:7

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.