- 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
Большинство правил включены по умолчанию. Правила могут быть отключены в командной строке с помощью флага --ignore. Правила могут быть включены с помощью флага --include.
Например:
djlint . --lint --include=H017,H035 --ignore=H013,H015
Это также можно сделать через Конфигурация файл.
| Код | Значение | По умолчанию |
|---|---|---|
| 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 | Вы намеревались использовать {% … %} вместо {% … }%? | ✔️ |
| H035 | Meta должны быть самозакрывающимися. | - |
| H036 | Избегайте использования тегов br. |
- |
| H037 | Найдено дублирование атрибута. | ✔️ |
Первая буква кода соответствует схеме:
Мы приветствуем запросы с новыми правилами!
Хорошее правило состоит из
Пожалуйста, включите тест для проверки правила.
Создайте файл .djlint_rules.yaml рядом с вашим pyproject.toml. Правила могут быть добавлены в этот файл, и djLint подхватит их.
Хорошее правило выглядит следующим образом:
- rule:
name: T001
message: Найти трихотилломанию
flags: re.DOTALL|re.I
patterns:
- трихотилломанию