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.0.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

djlint-0.1.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file djlint-0.1.0.tar.gz.

File metadata

  • Download URL: djlint-0.1.0.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for djlint-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5ec4ba3d1a336a9899430534c1f574d0eebb06e08109da9dd805aa13698e06dc
MD5 4341c8c52525be081ca68227ca933b32
BLAKE2b-256 03788223d0248660e365949d7371224caff5055af55c100eef879467dd579825

See more details on using hashes here.

File details

Details for the file djlint-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: djlint-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for djlint-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 69ce4c0589ee39338f98c4d4cfbb0b5a3d9a1c6ca91b5f27355ab037edeb4bc6
MD5 20f2a0526d6ef8829614524b271ec98d
BLAKE2b-256 9ffda69d13a4a8b0077beab1ee3bc8f291971b50c58b3ccd3416da3a818ac0a7

See more details on using hashes here.

Supported by

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