diff options
-rw-r--r-- | readme.md | 1 | ||||
-rw-r--r-- | src/compiler.rs | 12 | ||||
-rw-r--r-- | tests/code_indented.rs | 11 | ||||
-rw-r--r-- | tests/heading_atx.rs | 11 | ||||
-rw-r--r-- | tests/html_flow.rs | 11 | ||||
-rw-r--r-- | tests/thematic_break.rs | 11 |
6 files changed, 29 insertions, 28 deletions
@@ -70,6 +70,7 @@ cargo doc --document-private-items ### Small things +- [ ] (1) Parse initial and final whitespace of paragraphs (in text) - [ ] (3) Clean compiler - [ ] (1) Optionally remove dangerous protocols when compiling - [ ] (1) Use preferred line ending style in markdown diff --git a/src/compiler.rs b/src/compiler.rs index 4f362b8..3632d29 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -280,11 +280,15 @@ pub fn compile(events: &[Event], codes: &[Code], options: &CompileOptions) -> St } // To do: `ContentPhrasing` should be parsed as phrasing first. // This branch below currently acts as the resulting `data` tokens. - TokenType::ContentChunk + // To do: initial and final whitespace should be handled in `text`. + TokenType::ContentChunk => { + // last_was_tag = false; + buf_tail_mut(buffers).push(encode( + slice_serialize(codes, &get_span(events, index), false).trim(), + )); + } // To do: `ChunkString` does not belong here. Remove it when subtokenization is supported. - | TokenType::ChunkString - | TokenType::Data - | TokenType::CharacterEscapeValue => { + TokenType::ChunkString | TokenType::Data | TokenType::CharacterEscapeValue => { // last_was_tag = false; buf_tail_mut(buffers).push(encode(&slice_serialize( codes, diff --git a/tests/code_indented.rs b/tests/code_indented.rs index 80dae4b..5967cb3 100644 --- a/tests/code_indented.rs +++ b/tests/code_indented.rs @@ -40,12 +40,11 @@ fn code_indented() { "should support blank lines in indented code (3)" ); - // To do: strip whitespace. - // assert_eq!( - // micromark("Foo\n bar"), - // "<p>Foo\nbar</p>", - // "should not support interrupting paragraphs" - // ); + assert_eq!( + micromark("Foo\n bar"), + "<p>Foo\nbar</p>", + "should not support interrupting paragraphs" + ); assert_eq!( micromark(" foo\nbar"), diff --git a/tests/heading_atx.rs b/tests/heading_atx.rs index 7a830fe..defc77f 100644 --- a/tests/heading_atx.rs +++ b/tests/heading_atx.rs @@ -99,12 +99,11 @@ fn heading_atx() { "should not support four initial spaces" ); - // To do: strip whitespace. - // assert_eq!( - // micromark("foo\n # bar"), - // "<p>foo\n# bar</p>", - // "should not support four initial spaces when interrupting" - // ); + assert_eq!( + micromark("foo\n # bar"), + "<p>foo\n# bar</p>", + "should not support four initial spaces when interrupting" + ); assert_eq!( micromark("## foo ##"), diff --git a/tests/html_flow.rs b/tests/html_flow.rs index 18eff2d..0a5ec72 100644 --- a/tests/html_flow.rs +++ b/tests/html_flow.rs @@ -814,12 +814,11 @@ fn html_flow_7_complete() { "should not support a line ending directly after a tag name" ); - // To do: trim trailing whitespace. - // assert_eq!( - // micromark_with_options("<x ", DANGER), - // "<p><x</p>", - // "should not support an eof after a space directly after a tag name" - // ); + assert_eq!( + micromark_with_options("<x ", DANGER), + "<p><x</p>", + "should not support an eof after a space directly after a tag name" + ); assert_eq!( micromark_with_options("<x/", DANGER), diff --git a/tests/thematic_break.rs b/tests/thematic_break.rs index 1e3fb1e..fa86835 100644 --- a/tests/thematic_break.rs +++ b/tests/thematic_break.rs @@ -63,12 +63,11 @@ fn thematic_break() { "should not support thematic breaks w/ 4 spaces" ); - // To do: trim initial whitespace. - // assert_eq!( - // micromark("Foo\n ***"), - // "<p>Foo\n***</p>", - // "should not support thematic breaks w/ 4 spaces as paragraph continuation" - // ); + assert_eq!( + micromark("Foo\n ***"), + "<p>Foo\n***</p>", + "should not support thematic breaks w/ 4 spaces as paragraph continuation" + ); assert_eq!( micromark("_____________________________________"), |