Skip to main content

Django Template Linter

Project description

djlint

Simple Django template linter and reformatter. Ps, reformatting might work with Jinja and Handlebar templates as well! Test it out with the --check flag.

codecov test Codacy Badge Maintainability

Install

pip install djlint

Linter Usage

djlint src # file or path

# with custom extensions
djlint src -e html.dj

Reformatter Usage

Reforamtting is beta. Check the output before applying changes. Please PR any changes needed 👍🏽

djlint src --reformat --check

djlint src --reformat

Optional args

Arg Definition Default
-e, --extension File extension to lint. default=html
--check Checks file formatting
--reformat Reformats html

Linter Rules

Error Codes

Code Meaning
E001 Variables should be wrapped in a single whitespace. Ex: {{ this }}
E002 Double quotes should be used in tags. Ex {% extends "this.html" %}

Warning Codes

Code Meaning
W003 Endblock should have name. Ex: {% endblock body %}.
W004 Status urls should follow {% static path/to/file %} pattern.
W005 Html tag should have lang attribute.
W006 Img tag should have alt, height and width attributes.
W007 <!DOCTYPE ... > should be present before the html tag.
W008 Attributes should be double quoted.
W009 Tag names should be lowercase.
W010 Attribute names should be lowercase.
W011 Attirbute values should be quoted.
W012 There should be no spaces around attribute =.
W013 Line is longer than 99 chars.
W014 More than 2 blank lines.
W015 Follow h tags with a blank line.
W016 Missging title tag in html.

Adding Rules

A good rule consists of

  • Name
  • Code - Codes beginning with "E" signify error, and "W" warning.
  • Message - Message to display when error is found.
  • Patterns - regex expressions that will find the error.

Contributing - Please Help!

Checkout the issue list and help where you can!

Changelog

0.0.8

Added rules.

0.0.1

Initial release.

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

djlint-0.1.1.tar.gz (28.4 kB view hashes)

Uploaded Source

Built Distribution

djlint-0.1.1-py3-none-any.whl (22.8 kB view hashes)

Uploaded Python 3

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