A linter for Jinja-like templates
Project description
jinjalint
A prototype linter which checks the indentation and the correctness of Jinja-like/HTML templates. Can fix issues.
It works with Django’s templates too, it should work with Twig and similar template languages. It should work fine with any kind of HTML 4 and 5, however XHTML is not supported.
This linter parses both HTML and Jinja tags and will report mismatched tags and indentation errors:
<div>
{% if something %}
</div>
{% endif %}
<div>
<span>
</div>
</span>
{% if something %}
<div> not indented properly
</div>
{% endif %}
{% if something %}<a href="somewhere">{% endif %}
<p>something</p>
{% if not something %}</a>{% endif %}
Usage
You need Python 3. Jinjalint doesn’t work with Python 2. Install it with
pip install jinjalint
(or pip3 install jinjalint
depending on how pip
is
called on your system), then run it with:
$ jinjalint template-directory/
…or:
$ jinjalint some-file.html some-other-file.html
This is a work in progress. Feel free to contribute :upside_down_face:
Usage with pre-commit git hooks framework
Add to your .pre-commit-config.yaml
:
- repo: https://github.com/motet-a/jinjalint
rev: '' # select a tag / sha to point at
hooks:
- id: jinjalint
Make sure to fill in the rev
with a valid revision.
Note: by default this configuration will only match .jinja
and .jinja2
files. To match by regex pattern instead, override types
and files
as
follows:
- id: jinjalint
types: [file] # restore the default `types` matching
files: \.(html|sls)$
Hacking
Jinjalint is powered by Parsy. Parsy is an extremely powerful
library and Jinjalint’s parser relies heavily on it. You have to read
Parsy’s documentation in order to understand what’s going on in
parse.py
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file r2c-jinjalint-0.6.4b1.tar.gz
.
File metadata
- Download URL: r2c-jinjalint-0.6.4b1.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.36.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 233049a62c65b74273f4cf57bb471144a70ec6ab0c62c5271416cadbca9cfeae |
|
MD5 | a3a542ba0650d07d6df09634c76bff8d |
|
BLAKE2b-256 | 3a2150bbc8f4a51eb0be45b0cb2f6d75a39eaa3c28f6993e19a85acd1ca676c9 |