FilteredLinesExt

Trait FilteredLinesExt 

Source
pub trait FilteredLinesExt {
    // Required methods
    fn filtered_lines(&self) -> FilteredLinesBuilder<'_>;
    fn content_lines(&self) -> FilteredLinesIter<'_> ;
}
Expand description

Extension trait that adds filtered iteration methods to LintContext

This trait provides convenient methods for iterating over lines while automatically filtering out non-content regions.

Required Methods§

Source

fn filtered_lines(&self) -> FilteredLinesBuilder<'_>

Start building a filtered lines iterator

Returns a LineFilterConfig builder that can be used to configure which types of content should be filtered out.

§Examples
use rumdl_lib::lint_context::LintContext;
use rumdl_lib::filtered_lines::FilteredLinesExt;

let content = "# Title\n\n```rust\ncode\n```\n\nContent";
let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard, None);

for line in ctx.filtered_lines().skip_code_blocks() {
    println!("Line {}: {}", line.line_num, line.content);
}
Source

fn content_lines(&self) -> FilteredLinesIter<'_>

Get an iterator over content lines only

This is a convenience method that returns an iterator with front matter filtered out by default. This is the most common use case for rules that should only process markdown content.

Equivalent to: ctx.filtered_lines().skip_front_matter()

§Examples
use rumdl_lib::lint_context::LintContext;
use rumdl_lib::filtered_lines::FilteredLinesExt;

let content = "---\ntitle: Test\n---\n\n# Content";
let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard, None);

for line in ctx.content_lines() {
    // Front matter is automatically skipped
    println!("Line {}: {}", line.line_num, line.content);
}

Implementors§