PyJade
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, add a loader to TEMPLATES like so:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.request'
],
'loaders': [
# PyJade part: ##############################
('pyjade.ext.django.Loader', (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
))
],
'builtins': ['pyjade.ext.django.templatetags'], # Remove this line for Django 1.8
},
},
]
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(haml_source,
preprocessor=mako_preprocessor
)
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')
Tornado Templates
Append this after importing tornado.template
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
!!! 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>
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")
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
TODOs and BUGS
Metadata
Release files for pyjade 4.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyjade-4.0.0.tar.gz | 29.3 kB | Without provenance | Details |
Release files / pyjade-4.0.0.tar.gz
| Download URL | pyjade-4.0.0.tar.gz |
|---|---|
| Size | 29.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d95b741de09c4942259fc3d1ad7b4f48166e69cef6f11c172e4b2c458b1ccd7
|
|
BLAKE2b-256 checksum How to use checksums |
4a04396ec24e806fd3af7ea5d0f3cb6c7bbd4d00f7064712e4dd48f24c02ca95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for pyjade 4.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.