aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-09 14:03:04 +0200
committerLibravatar Titus Wormer <tituswormer@gmail.com>2022-06-09 14:03:04 +0200
commitcba78821ed13d5a92c74d092914fbad4c842f889 (patch)
tree669b341687e0e1fc9f443625d7a29c5a56d9f700
parent10355a403f57c93a074716c785d588c76de5634c (diff)
downloadmarkdown-rs-cba78821ed13d5a92c74d092914fbad4c842f889.tar.gz
markdown-rs-cba78821ed13d5a92c74d092914fbad4c842f889.tar.bz2
markdown-rs-cba78821ed13d5a92c74d092914fbad4c842f889.zip
Add temporary support for stripping whitespace
-rw-r--r--readme.md1
-rw-r--r--src/compiler.rs12
-rw-r--r--tests/code_indented.rs11
-rw-r--r--tests/heading_atx.rs11
-rw-r--r--tests/html_flow.rs11
-rw-r--r--tests/thematic_break.rs11
6 files changed, 29 insertions, 28 deletions
diff --git a/readme.md b/readme.md
index 1dc9932..15edf87 100644
--- a/readme.md
+++ b/readme.md
@@ -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>&lt;x</p>",
- // "should not support an eof after a space directly after a tag name"
- // );
+ assert_eq!(
+ micromark_with_options("<x ", DANGER),
+ "<p>&lt;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("_____________________________________"),