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§
Sourcefn filtered_lines(&self) -> FilteredLinesBuilder<'_>
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);
for line in ctx.filtered_lines().skip_code_blocks() {
println!("Line {}: {}", line.line_num, line.content);
}Sourcefn content_lines(&self) -> FilteredLinesIter<'_> ⓘ
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);
for line in ctx.content_lines() {
// Front matter is automatically skipped
println!("Line {}: {}", line.line_num, line.content);
}