Passa al contenuto principale

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

ObiettivoPattern
Corrispondenza case-insensitive(?i)\\bDRAFT\\b
Punto letterale (hostname)internal\\.corp\\.example\\.com
Corrispondenza ovunque sulla rigaTODO (non servono ancore — il matching è per riga)
Escludere falsi positiviUsa 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.