Giter VIP home page Giter VIP logo

pyjade's Introduction

PyJade

PyJade is a high performance template preprocessor, that converts any .jade source to the each Template-language (Django, Jinja2 or Mako).

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:

TEMPLATE_LOADERS = (
    'pyjade.ext.django.loaders.FSLoader',
    'pyjade.ext.django.loaders.AppLoader',
)

These replace your usual Django loaders:

django.template.loaders.filesystem.Loader
django.template.loaders.app_directories.Loader

Jinja2

Just add pyjade.ext.jinja.PyJadeExtension as extension:

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

Mako

Just add pyjade.ext.mako.preprocessor as preprocessor:

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

Actually the mako preprocessor is in development mode

Flask

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

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:

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

Syntax

The same as the Jade Node.js module (except of no commas on attributes): https://github.com/visionmedia/jade/blob/master/Readme.md

Example

This code:

!!! 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:

<!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>

TODOs and BUGS

See: http://github.com/syrusakbary/pyjade/issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.