extern crate markdown; use markdown::{ mdast::{Break, Node, Paragraph, Root, Text}, to_html, to_html_with_options, to_mdast, unist::Position, Constructs, Options, ParseOptions, }; use pretty_assertions::assert_eq; #[test] fn hard_break_escape() -> Result<(), String> { assert_eq!( to_html("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!( to_html("### foo\\"), "a\\\nb
", "should support turning off hard break (escape)" ); assert_eq!( to_mdast("a\\\nb.", &Default::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(()) }