extern crate micromark; use micromark::{ mdast::{Break, Node, Paragraph, Root, Text}, micromark, micromark_to_mdast, micromark_with_options, unist::Position, Constructs, Options, ParseOptions, }; use pretty_assertions::assert_eq; #[test] fn hard_break_escape() -> Result<(), String> { assert_eq!( micromark("foo\\\nbaz"), "
foo
\nbaz
foo
\nbar
foo
\nbar
code\\ text
foo\\
", "should not support escape hard breaks at the end of a paragraph" ); assert_eq!( micromark("### foo\\"), "a\\\nb
", "should support turning off hard break (escape)" ); assert_eq!( micromark_to_mdast("a\\\nb.", &ParseOptions::default())?, Node::Root(Root { children: vec![Node::Paragraph(Paragraph { children: vec![ Node::Text(Text { value: "a".into(), position: Some(Position::new(1, 1, 0, 1, 2, 1)) }), Node::Break(Break { position: Some(Position::new(1, 2, 1, 2, 1, 3)) }), Node::Text(Text { value: "b.".into(), position: Some(Position::new(2, 1, 3, 2, 3, 5)) }), ], position: Some(Position::new(1, 1, 0, 2, 3, 5)) })], position: Some(Position::new(1, 1, 0, 2, 3, 5)) }), "should support hard break (escape) as `Break`s in mdast" ); Ok(()) }