extern crate micromark; use micromark::micromark; #[test] fn heading_atx() { assert_eq!( micromark("# foo"), "

foo

", "should support a heading w/ rank 1" ); assert_eq!( micromark("## foo"), "

foo

", "should support a heading w/ rank 2" ); assert_eq!( micromark("### foo"), "

foo

", "should support a heading w/ rank 3" ); assert_eq!( micromark("#### foo"), "

foo

", "should support a heading w/ rank 4" ); assert_eq!( micromark("##### foo"), "
foo
", "should support a heading w/ rank 5" ); assert_eq!( micromark("###### foo"), "
foo
", "should support a heading w/ rank 6" ); assert_eq!( micromark("####### foo"), "

####### foo

", "should not support a heading w/ rank 7" ); assert_eq!( micromark("#5 bolt"), "

#5 bolt

", "should not support a heading for a number sign not followed by whitespace (1)" ); assert_eq!( micromark("#hashtag"), "

#hashtag

", "should not support a heading for a number sign not followed by whitespace (2)" ); assert_eq!( micromark("\\## foo"), "

## foo

", "should not support a heading for an escaped number sign" ); // To do: attention. // assert_eq!( // micromark("# foo *bar* \\*baz\\*"), // "

foo bar *baz*

", // "should support text content in headings" // ); assert_eq!( micromark("# foo "), "

foo

", "should support arbitrary initial and final whitespace" ); assert_eq!( micromark(" ### foo"), "

foo

", "should support an initial space" ); assert_eq!( micromark(" ## foo"), "

foo

", "should support two initial spaces" ); assert_eq!( micromark(" # foo"), "

foo

", "should support three initial spaces" ); assert_eq!( micromark(" # foo"), "
# foo\n
", "should not support four initial spaces" ); // To do: trimming paragraphs. // assert_eq!( // micromark("foo\n # bar"), // "

foo\n# bar

", // "should not support four initial spaces when interrupting" // ); assert_eq!( micromark("## foo ##"), "

foo

", "should support a closing sequence (1)" ); assert_eq!( micromark(" ### bar ###"), "

bar

", "should support a closing sequence (2)" ); assert_eq!( micromark("# foo ##################################"), "

foo

", "should support a closing sequence w/ an arbitrary number of number signs (1)" ); assert_eq!( micromark("##### foo ##"), "
foo
", "should support a closing sequence w/ an arbitrary number of number signs (2)" ); assert_eq!( micromark("### foo ### "), "

foo

", "should support trailing whitespace after a closing sequence" ); assert_eq!( micromark("### foo ### b"), "

foo ### b

", "should not support other content after a closing sequence" ); assert_eq!( micromark("# foo#"), "

foo#

", "should not support a closing sequence w/o whitespace before it" ); assert_eq!( micromark("### foo \\###"), "

foo ###

", "should not support an “escaped” closing sequence (1)" ); assert_eq!( micromark("## foo #\\##"), "

foo ###

", "should not support an “escaped” closing sequence (2)" ); assert_eq!( micromark("# foo \\#"), "

foo #

", "should not support an “escaped” closing sequence (3)" ); assert_eq!( micromark("****\n## foo\n****"), "
\n

foo

\n
", "should support atx headings when not surrounded by blank lines" ); assert_eq!( micromark("Foo bar\n# baz\nBar foo"), "

Foo bar

\n

baz

\n

Bar foo

", "should support atx headings interrupting paragraphs" ); assert_eq!( micromark("## \n#\n### ###"), "

\n

\n

", "should support empty atx headings" ); // To do: block quote. // assert_eq!( // micromark("> #\na"), // "
\n

\n
\n

a

", // "should not support lazyness (1)" // ); // assert_eq!( // micromark("> a\n#"), // "
\n

a

\n
\n

", // "should not support lazyness (2)" // ); // Extensions: // assert_eq!( // micromark("# a", {extensions: [{disable: {null: ["headingAtx"]}}]}), // "

# a

", // "should support turning off heading (atx)" // ); }