Utilisation de djLint

djLint inclut de nombreuses règles pour vérifier le style et la validité de vos modèles. Profitez pleinement du linter en le configurant pour utiliser un profil prédéfini pour la langue du modèle de votre choix.

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

Règles personnalisées

Créez un fichier .djlint_rules.yaml à côté de votre pyproject.toml. Des règles peuvent être ajoutées à ce fichier et djLint les reprendra.

Une bonne règle suit ce modèle :

- règle:
name: T001
message: Trouver la Trichotillomanie
indicateurs: re.DOTALL|re.I
modèles:
- Trichotillomanie

Modèles de code

La première lettre d’un code suit le modèle :

  • D : s’applique spécifiquement à Django
  • H : s’applique au html
  • J : s’applique spécifiquement à Jinja
  • M : s’applique spécifiquement à Handlebars
  • N : s’applique spécifiquement à Nunjucks
  • T : s’applique généralement aux modèles

Rules

CodeSignification
D004(Django) Les urls statiques doivent suivre le modèle {% static path/to/file %}.
D018(Django) Les liens internes doivent utiliser le modèle {% url ... %}.
H005La balise Html doit avoir l’attribut lang.
H006La balise img doit avoir les attributs height et width.
H007LA BALISE <!DOCTYPE ... > doit être présent avant la balise html.
H008Les attributs doivent être entre guillemets.
H009Les noms de balises doivent être en minuscules.
H010Les noms d’attributs doivent être en minuscules.
H011Les valeurs des attributs doivent être citées.
H012Il ne doit pas y avoir d’espace autour de l’attribut =.
H013La balise img doit avoir des attributs alt.
H014Plus de 2 lignes vides.
H015Les balises “h” doivent être suivies d’un retour à la ligne.
H016Balise title manquante dans le html.
H017La balise doit se fermer automatiquement.
H019Remplacez javascript:abc() par l’événement on_ et l’url réelle.
H020Couple de balises vide trouvé. Envisagez de le supprimer.
H021Les styles en ligne doivent être évités.
H022Utilisez HTTPS pour les liens externes.
H023N’utilisez pas de références d’entités.
H024Omettre le type sur les scripts et les styles.
H025La balise semble être orpheline.
H026Les balises id et class vides peuvent être supprimées.
H029Pensez à utiliser des valeurs de méthode de formulaire en minuscules.
H030Pensez à ajouter une méta-description.
H031Pensez à ajouter des méta keywords.
H033Espace supplémentaire dans l’action du formulaire.
J004(Jinja) Les urls statiques doivent suivre le modèle { url_for('static'..) }}.
J018(Jinja) Les liens internes doivent utiliser le modèle {% url ... %}.
T001Les variables doivent être entourées d’un seul espace. Ex : {{ this }}
T002Les doubles quotes doivent être utilisées dans les balises. Ex : {% extends "this.html" %}
T003Le bloc de fin doit avoir un nom. Ex : {% endblock body %}.
T027Chaîne non fermée trouvée dans la syntaxe du modèle.
T028Envisagez d’utiliser des balises sans espace à l’intérieur des valeurs d’attributs. {%- if/for -%}
T032Espace blanc supplémentaire trouvé dans les balises du modèle.
T034Aviez-vous l’intention d’utiliser {% … %} au lieu de {% … }% ?

Ajout de règles

Nous accueillons volontiers les pull requests contenant de nouvelles règles !

Une bonne règle consiste en

  • Name
  • Code
  • Message - Message à afficher lorsqu’une erreur est trouvée.
  • Flags - Drapeaux de regex. La valeur par défaut est re.DOTALL. ex : re.I|re.M
  • Patterns - Expressions regex qui trouveront l’erreur.
  • Exclude - Liste facultative de profils dont la règle doit être exclue.

Veuillez inclure un test pour valider la règle.

Modifier cette page Actualisé Mar 6, 2023