Markdown parser fork with extended syntax for personal use.
at hack 49 lines 1.5 kB view raw
1mod test_utils; 2use markdown::{message, to_html_with_options, Constructs, Options, ParseOptions}; 3use pretty_assertions::assert_eq; 4use test_utils::swc::{parse_esm, parse_expression}; 5 6#[test] 7fn mdx_swc() -> Result<(), message::Message> { 8 let swc = Options { 9 parse: ParseOptions { 10 constructs: Constructs::mdx(), 11 mdx_esm_parse: Some(Box::new(parse_esm)), 12 mdx_expression_parse: Some(Box::new(parse_expression)), 13 ..Default::default() 14 }, 15 ..Default::default() 16 }; 17 18 assert_eq!( 19 to_html_with_options("{'}'}", &swc)?, 20 "", 21 "should support JavaScript-aware flow expressions w/ `mdx_expression_parse`" 22 ); 23 24 assert_eq!( 25 to_html_with_options("a {'}'} b", &swc)?, 26 "<p>a b</p>", 27 "should support JavaScript-aware text expressions w/ `mdx_expression_parse`" 28 ); 29 30 assert_eq!( 31 to_html_with_options("<a {...a/*}*/} />", &swc)?, 32 "", 33 "should support JavaScript-aware attribute expressions w/ `mdx_expression_parse`" 34 ); 35 36 assert_eq!( 37 to_html_with_options("<a b={'}'} />", &swc)?, 38 "", 39 "should support JavaScript-aware attribute value expressions w/ `mdx_expression_parse`" 40 ); 41 42 assert_eq!( 43 to_html_with_options("import a from 'b'\n\nexport {a}\n\n# c", &swc)?, 44 "<h1>c</h1>", 45 "should support JavaScript-aware ESM w/ `mdx_esm_parse`" 46 ); 47 48 Ok(()) 49}