Aggiungere Regole di Lint Custom
[[custom_rules]] permette di dichiarare regole di lint specifiche per il progetto direttamente in .zenzic.toml. Ogni regola applica un'espressione regolare riga per riga a ogni file .md e produce un finding quando il pattern corrisponde. Non è richiesto Python — il DSL è TOML puro.
Per il riferimento completo ai campi, la matrice di severity e il formato dell'output, vedi Configuration Reference —
[[custom_rules]].
Sintassi
[[custom_rules]]
id = "ZZ-NODRAFT"
pattern = "(?i)\\bDRAFT\\b"
message = "Rimuovere il marker DRAFT prima della pubblicazione."
severity = "warning"
[[custom_rules]]
id = "ZZ-NOINTERNAL"
pattern = "internal\\.corp\\.example\\.com"
message = "L'hostname interno non deve apparire nella documentazione pubblica."
severity = "error"
Ogni header [[custom_rules]] aggiunge una regola alla lista. Usa le doppie parentesi quadre — è la
sintassi TOML per gli array-of-tables.
Posizionamento TOML
Inserisci tutti i blocchi [[custom_rules]] prima della sezione [build_context]. [build_context]
deve essere l'ultima sezione in .zenzic.toml — le intestazioni di tabella TOML si applicano a tutte le
chiavi successive, quindi qualsiasi campo scritto dopo [build_context] diventerebbe silenziosamente una sotto-chiave di build_context.
# Ordinamento corretto
docs_dir = "docs"
[[custom_rules]]
id = "ZZ-NODRAFT"
pattern = "(?i)\\bDRAFT\\b"
message = "Rimuovere il marker DRAFT prima della pubblicazione."
severity = "warning"
[build_context] # ← sempre per ultimo
engine = "mkdocs"
Suggerimenti per i pattern
| Obiettivo | Pattern |
|---|---|
| Corrispondenza case-insensitive | (?i)\\bDRAFT\\b |
| Punto letterale (hostname) | internal\\.corp\\.example\\.com |
| Corrispondenza ovunque sulla riga | TODO (non servono ancore — il matching è per riga) |
| Escludere falsi positivi | Usa i word boundary \\b per evitare di matchare TODOS cercando TODO |
Tutti i pattern vengono applicati con Python re.search — una corrispondenza ovunque sulla riga attiva il
finding. Usa ^ e $ solo quando devi vincolare all'inizio o alla fine della riga.