pub struct LintEngine { /* private fields */ }Expand description
Markdown linting engine
Implementations§
Source§impl LintEngine
impl LintEngine
Sourcepub fn new() -> LintEngine
pub fn new() -> LintEngine
Create a new lint engine with no rules
Sourcepub fn with_registry(registry: RuleRegistry) -> LintEngine
pub fn with_registry(registry: RuleRegistry) -> LintEngine
Create a lint engine with an existing rule registry
Sourcepub fn registry(&self) -> &RuleRegistry
pub fn registry(&self) -> &RuleRegistry
Get the underlying rule registry
Sourcepub fn registry_mut(&mut self) -> &mut RuleRegistry
pub fn registry_mut(&mut self) -> &mut RuleRegistry
Get a mutable reference to the rule registry
Sourcepub fn lint_document(
&self,
document: &Document,
) -> Result<Vec<Violation>, MdBookLintError>
pub fn lint_document( &self, document: &Document, ) -> Result<Vec<Violation>, MdBookLintError>
Lint a document with all registered rules
Sourcepub fn lint_document_with_config(
&self,
document: &Document,
config: &Config,
) -> Result<Vec<Violation>, MdBookLintError>
pub fn lint_document_with_config( &self, document: &Document, config: &Config, ) -> Result<Vec<Violation>, MdBookLintError>
Lint a document with specific configuration
Sourcepub fn lint_content(
&self,
content: &str,
source_label: &str,
) -> Result<Vec<Violation>, MdBookLintError>
pub fn lint_content( &self, content: &str, source_label: &str, ) -> Result<Vec<Violation>, MdBookLintError>
Lint content string directly (convenience method)
§Arguments
content- The markdown content to lintsource_label- A label for error messages (e.g., filename). This is NOT read from disk.
Sourcepub fn apply_fix(&self, content: &str, violation: &Violation) -> Option<String>
pub fn apply_fix(&self, content: &str, violation: &Violation) -> Option<String>
Apply a single fix to content
Returns Some(fixed_content) if the fix was applied, None if the violation
has no fix or the fix couldn’t be applied.
§Example
let violations = engine.lint_content("# Test\n\n\n\n", "test.md")?;
if let Some(v) = violations.first() {
if let Some(fixed) = engine.apply_fix("# Test\n\n\n\n", v) {
println!("Fixed: {}", fixed);
}
}Sourcepub fn apply_fixes(
&self,
content: &str,
violations: &[Violation],
) -> (String, Vec<Violation>)
pub fn apply_fixes( &self, content: &str, violations: &[Violation], ) -> (String, Vec<Violation>)
Apply all available fixes to content
Applies fixes from violations that have them, processing in reverse position order to avoid offset issues. Returns the fixed content and a list of violations that could not be fixed.
§Example
let violations = engine.lint_content(content, "test.md")?;
let (fixed_content, unfixed) = engine.apply_fixes(content, &violations);
if fixed_content != content {
println!("Applied {} fixes", violations.len() - unfixed.len());
}Sourcepub fn available_rules(&self) -> Vec<&'static str>
pub fn available_rules(&self) -> Vec<&'static str>
Get all available rule IDs
Sourcepub fn enabled_rules(&self, config: &Config) -> Vec<&dyn Rule>
pub fn enabled_rules(&self, config: &Config) -> Vec<&dyn Rule>
Get enabled rules based on configuration
Sourcepub fn lint_collection(
&self,
documents: &[Document],
) -> Result<Vec<Violation>, MdBookLintError>
pub fn lint_collection( &self, documents: &[Document], ) -> Result<Vec<Violation>, MdBookLintError>
Lint a collection of documents with collection rules
Collection rules analyze multiple documents together for cross-document validation. This method runs all registered collection rules against the provided documents.
Sourcepub fn lint_collection_with_config(
&self,
documents: &[Document],
config: &Config,
) -> Result<Vec<Violation>, MdBookLintError>
pub fn lint_collection_with_config( &self, documents: &[Document], config: &Config, ) -> Result<Vec<Violation>, MdBookLintError>
Lint a collection of documents with specific configuration
Sourcepub fn available_collection_rules(&self) -> Vec<&'static str>
pub fn available_collection_rules(&self) -> Vec<&'static str>
Get all available collection rule IDs
Sourcepub fn has_collection_rules(&self) -> bool
pub fn has_collection_rules(&self) -> bool
Check if there are any collection rules registered