pub struct MarkdownFile<'src, const MAX_INLINE_DEPTH: u8 = 16, const INLINE_STACK_CAP: usize = 32> {
pub sections: Vec<Section<'src>>,
/* private fields */
}Expand description
A parsed Markdown document.
Contains the block-level Sections and the internal pools that store
Inline elements. Use inlines and
item_spans to access inline content referenced by
sections.
The const generics MAX_INLINE_DEPTH and INLINE_STACK_CAP control
recursion depth and stack-allocation size for emphasis parsing. The
defaults (16 and 32) are suitable for virtually all real-world input.
Fields§
§sections: Vec<Section<'src>>The block-level sections of the document, in order.
Implementations§
Source§impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Source§impl MarkdownFile<'_, 16, 32>
On the default MarkdownFile (depth=16, cap=32) we expose normalize as
an associated fn so callers don’t need to import a free function.
impl MarkdownFile<'_, 16, 32>
On the default MarkdownFile (depth=16, cap=32) we expose normalize as
an associated fn so callers don’t need to import a free function.
Sourcepub fn normalize(input: &str) -> Cow<'_, str>
pub fn normalize(input: &str) -> Cow<'_, str>
Normalize line endings for parsing. Converts \r\n to \n and bare
\r (classic Mac) to \n. Returns the input borrowed if no carriage
returns are found (zero cost).
Call this before MarkdownFile::parse when input may contain CRLF:
let input = "# Hello\r\nWorld";
let normalized = marki_parse::MarkdownFile::normalize(input);
let md: marki_parse::MarkdownFile<'_> = marki_parse::MarkdownFile::parse(&normalized);Source§impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Sourcepub fn inlines(&self, span: InlineSpan) -> &[Inline<'src>]
pub fn inlines(&self, span: InlineSpan) -> &[Inline<'src>]
Get the inline elements referenced by a span.
Sourcepub fn item_spans(&self, slice: SpanSlice) -> &[InlineSpan]
pub fn item_spans(&self, slice: SpanSlice) -> &[InlineSpan]
Get the item spans referenced by a SpanSlice (list items).
Trait Implementations§
Source§impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Clone for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Clone for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Source§fn clone(&self) -> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
fn clone(&self) -> MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Debug for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Debug for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Eq for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Source§impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Index<InlineSpan> for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Index<InlineSpan> for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Source§impl<const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Index<SpanSlice> for MarkdownFile<'_, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> Index<SpanSlice> for MarkdownFile<'_, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Source§type Output = [InlineSpan]
type Output = [InlineSpan]
Source§impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> PartialEq for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
impl<'src, const MAX_INLINE_DEPTH: u8, const INLINE_STACK_CAP: usize> PartialEq for MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>
Source§fn eq(
&self,
other: &MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>,
) -> bool
fn eq( &self, other: &MarkdownFile<'src, MAX_INLINE_DEPTH, INLINE_STACK_CAP>, ) -> bool
self and other values to be equal, and is used by ==.