all2md.linter.rule
Base classes for linter rules.
Rules are not visitors. Each rule receives a LintContext and is
free to traverse the AST however it likes — NodeCollector, direct loops
over document.children, or regex over text extracted via
all2md.ast.extract_text. This keeps rules concise and avoids
forcing every rule into the full visitor interface.
- class all2md.linter.rule.LintContext
Bases:
objectInput passed to every
LintRule.check()call.- file_path: str | None
- config: dict[str, Any]
- class all2md.linter.rule.LintRule
Bases:
ABCAbstract base class for lint rules.
Subclasses must set the class-level metadata attributes (
code,name,category,description,default_severity) and implementcheck().- code: str
- name: str
- category: str
- description: str
- abstractmethod check(ctx: LintContext) list[Violation]
Inspect
ctx.documentand return any violations found.
- build_violation(message: str, *, severity: Severity | None = None, line: int | None = None, column: int | None = None, node_type: str | None = None, suggestion: str | None = None, context: str | None = None, fix: 'LintFix' | None = None) Violation
Construct a
Violationpre-populated with this rule’s metadata.