- D: применяется специально для Django
- H: применяется к html
- J: применяется специально для Jinja
- M: применяется специально для Handlebars
- N: применяется специально для Nunjucks
- T: применяется в целом к шаблонам
djLint включает в себя множество правил для проверки стиля и валидности ваших шаблонов. Используйте все преимущества линтера, настроив его на использование предустановленного профиля для выбранного вами языка шаблонов.
djlint /path/to/templates --lint
# with custom extensions
djlint /path/to/templates -e html.dj --profile=django
# or to file
djlint /path/to/this.html.j2 --profile=jinja
Создайте файл .djlint_rules.yaml
рядом с вашим pyproject.toml
. Правила могут быть добавлены в этот файл, и djLint подхватит их.
Хорошее правило выглядит следующим образом:
- rule:
name: T001
message: Найти трихотилломанию
flags: re.DOTALL|re.I
patterns:
- трихотилломанию
Первая буква кода соответствует схеме:
Код | Значение |
---|---|
D004 | (Django) Статические урлы должны следовать шаблону {% static path/to/file %} . |
D018 | (Django) Внутренние ссылки должны использовать шаблон {% url ... %} . |
H005 | Html-тег должен иметь атрибут lang . |
H006 | Тег img должен иметь атрибуты height и width . |
H007 | <!DOCTYPE ... > должен присутствовать перед тегом html. |
H008 | Атрибуты должны быть заключены в двойные кавычки. |
H009 | Имена тегов должны быть в нижнем регистре. |
H010 | Имена атрибутов должны быть в нижнем регистре. |
H011 | Значения атрибутов должны быть заключены в кавычки. |
H012 | Вокруг атрибута = не должно быть пробелов. |
H013 | Тег img должен иметь атрибуты alt. |
H014 | Более 2 пустых строк. |
H015 | После тегов h следует перевод строки. |
H016 | Отсутствие тега title в html. |
H017 | Тег должен быть самозакрывающимся. |
H019 | Замените javascript:abc() на событие on_ и реальный url. |
H020 | Найдена пустая пара тегов. Рассмотрите возможность удаления. |
H021 | Следует избегать инлайн-стилей. |
H022 | Используйте HTTPS для внешних ссылок. |
H023 | Не используйте ссылки на сущности. |
H024 | Опускайте тип в скриптах и стилях. |
H025 | Тег кажется бесхозным. |
H026 | Пустые теги id и class могут быть удалены. |
H029 | Рассмотрите возможность использования строчных значений метода формы. |
H030 | Рассмотрите возможность добавления мета-описания. |
H031 | Рассмотрите возможность добавления мета-ключевых слов. |
H033 | В действии формы обнаружен лишний пробел. |
J004 | (Jinja) Статические урлы должны следовать шаблону {{ url_for('static'...)}} . |
J018 | (Jinja) Внутренние ссылки должны использовать шаблон {% url ... %} . |
T001 | Переменные должны быть заключены в один пробел. Например: {{ this }} |
T002 | В тегах следует использовать двойные кавычки. Ex {% extends "this.html" %} |
T003 | Конечный блок должен иметь имя. Например: {% endblock body %} . |
T027 | В синтаксисе шаблона найдена незакрытая строка. |
T028 | Рассмотрите возможность использования тегов без пробелов внутри значений атрибутов. {%- if/for -%} |
T032 | В тегах шаблона обнаружены лишние пробелы. |
T034 | Вы намеревались использовать {% … %} вместо {% … }%? |
Мы приветствуем запросы с новыми правилами!
Хорошее правило состоит из
Пожалуйста, включите тест для проверки правила.