Skip to main content

LintEngine

Struct LintEngine 

Source
pub struct LintEngine { /* private fields */ }
Expand description

Markdown linting engine

Implementations§

Source§

impl LintEngine

Source

pub fn new() -> LintEngine

Create a new lint engine with no rules

Source

pub fn with_registry(registry: RuleRegistry) -> LintEngine

Create a lint engine with an existing rule registry

Source

pub fn registry(&self) -> &RuleRegistry

Get the underlying rule registry

Source

pub fn registry_mut(&mut self) -> &mut RuleRegistry

Get a mutable reference to the rule registry

Source

pub fn lint_document( &self, document: &Document, ) -> Result<Vec<Violation>, MdBookLintError>

Lint a document with all registered rules

Source

pub fn lint_document_with_config( &self, document: &Document, config: &Config, ) -> Result<Vec<Violation>, MdBookLintError>

Lint a document with specific configuration

Source

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 lint
  • source_label - A label for error messages (e.g., filename). This is NOT read from disk.
Source

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);
    }
}
Source

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());
}
Source

pub fn available_rules(&self) -> Vec<&'static str>

Get all available rule IDs

Source

pub fn enabled_rules(&self, config: &Config) -> Vec<&dyn Rule>

Get enabled rules based on configuration

Source

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.

Source

pub fn lint_collection_with_config( &self, documents: &[Document], config: &Config, ) -> Result<Vec<Violation>, MdBookLintError>

Lint a collection of documents with specific configuration

Source

pub fn available_collection_rules(&self) -> Vec<&'static str>

Get all available collection rule IDs

Source

pub fn has_collection_rules(&self) -> bool

Check if there are any collection rules registered

Trait Implementations§

Source§

impl Default for LintEngine

Source§

fn default() -> LintEngine

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.