Skip to main content

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 🙃

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.

Metadata

Release files for r2c-jinjalint 0.7.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for r2c-jinjalint 0.7.2
File Size Uploaded
r2c-jinjalint-0.7.2.tar.gz 24.1 kB Details

Release files / r2c-jinjalint-0.7.2.tar.gz

Download URL r2c-jinjalint-0.7.2.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f69fa159e20f214f31ceb87f29ee2c70a9d1abe839b04474668207fec698e1f9
BLAKE2b-256 checksum
How to use checksums
ae1915de560a02bd7b2964ac26f27250e185c5bd6417d534acc6f348fe3aa6af
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.7.2 This release

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page