pub struct Parser {
pub paragraph_ending: ParagraphEnding,
pub headline_ending: HeadlineEnding,
pub list_indent_style: IndentStyle,
/* private fields */
}
Expand description
Parser of tokens.
This struct contains configurations for parsing. These configurations are for supporting various markdown syntax.
§Example
use note_mark::prelude::*;
let parser = Parser::default().headline_ending(HeadlineEnding::SoftBreak);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("# Hello, world!\nThis is a new line.");
assert_eq!(html, "<h1>Hello, world!</h1><p>This is a new line.</p>");
let parser = Parser::default().headline_ending(HeadlineEnding::HardBreak);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("# Hello, world!\nThis is a new line.");
assert_eq!(html, "<h1>Hello, world!<br>This is a new line.</h1>");
Fields§
§paragraph_ending: ParagraphEnding
The end of paragraph is decided by at liest two consecutive line breaks. This determines whether to treat the previous sentence as a paragraph if the next line is another block element.
headline_ending: HeadlineEnding
This determines whether to allow a line break in a headline.
list_indent_style: IndentStyle
This determines whether to make the indent style of list space, tab, or both.
Implementations§
Source§impl Parser
impl Parser
Sourcepub fn paragraph_ending(self, ending: ParagraphEnding) -> Self
pub fn paragraph_ending(self, ending: ParagraphEnding) -> Self
Set ending of paragraph.
§Example
use note_mark::prelude::*;
let parser = Parser::default().paragraph_ending(ParagraphEnding::AllowSoftBreak);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("Hello, world!\n# This is a new headline.");
assert_eq!(html, "<p>Hello, world!</p><h1>This is a new headline.</h1>");
let parser = Parser::default().paragraph_ending(ParagraphEnding::HardBreak);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("Hello, world!\n# This is a new headline.");
assert_eq!(html, "<p>Hello, world!<br># This is a new headline.</p>");
Sourcepub fn headline_ending(self, ending: HeadlineEnding) -> Self
pub fn headline_ending(self, ending: HeadlineEnding) -> Self
Set ending of headline.
§Example
use note_mark::prelude::*;
let parser = Parser::default().headline_ending(HeadlineEnding::SoftBreak);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("# Hello, world!\nThis is a new line.");
assert_eq!(html, "<h1>Hello, world!</h1><p>This is a new line.</p>");
let parser = Parser::default().headline_ending(HeadlineEnding::HardBreak);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("# Hello, world!\nThis is a new line.");
assert_eq!(html, "<h1>Hello, world!<br>This is a new line.</h1>");
Sourcepub fn list_indent_style(self, style: IndentStyle) -> Self
pub fn list_indent_style(self, style: IndentStyle) -> Self
Set indent style of list.
§Example
use note_mark::prelude::*;
let parser = Parser::default().list_indent_style(IndentStyle::Space(2));
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("- Hello, world!\n - This is a new line.");
assert_eq!(html, "<ul><li>Hello, world!<ul><li>This is a new line.</li></ul></li></ul>");
let parser = Parser::default().list_indent_style(IndentStyle::Tab);
let markdown = Markdown::default().parser(parser);
let html = markdown.execute("- Hello, world!\n\t- This is a new line.");
assert_eq!(html, "<ul><li>Hello, world!<ul><li>This is a new line.</li></ul></li></ul>");
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Parser
impl RefUnwindSafe for Parser
impl Send for Parser
impl Sync for Parser
impl Unpin for Parser
impl UnwindSafe for Parser
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more