- 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 | Избегайте использования тегов . |
- |
H037 | Найдено дублирование атрибута. | ✔️ |
Первая буква кода соответствует схеме:
Мы приветствуем запросы с новыми правилами!
Хорошее правило состоит из
Пожалуйста, включите тест для проверки правила.
Создайте файл .djlint_rules.yaml
рядом с вашим pyproject.toml
. Правила могут быть добавлены в этот файл, и djLint подхватит их.
Хорошее правило выглядит следующим образом:
- rule:
name: T001
message: Найти трихотилломанию
flags: re.DOTALL|re.I
patterns:
- трихотилломанию