Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

r2c-jinjalint-0.6.4b1.tar.gz (22.0 kB view details)

Uploaded Source

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

Hashes for r2c-jinjalint-0.6.4b1.tar.gz
Algorithm Hash digest
SHA256 233049a62c65b74273f4cf57bb471144a70ec6ab0c62c5271416cadbca9cfeae
MD5 a3a542ba0650d07d6df09634c76bff8d
BLAKE2b-256 3a2150bbc8f4a51eb0be45b0cb2f6d75a39eaa3c28f6993e19a85acd1ca676c9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page