Skip to content

Commit

Permalink
improve clean::lines
Browse files Browse the repository at this point in the history
Blank lines no longer prevent deindentation
  • Loading branch information
Canop committed Nov 26, 2019
1 parent a954e5b commit 5e3ed4c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "minimad"
version = "0.5.0"
version = "0.5.1"
authors = ["dystroy <denys.seguret@gmail.com>"]
repository = "https://github.com/Canop/minimad"
description = "light Markdown parser"
Expand Down
12 changes: 8 additions & 4 deletions src/clean.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@


pub fn is_blank(s: &str) -> bool {
s.chars().all(char::is_whitespace)
}

/// remove the superfluous lines and indentations you get when you insert
/// in your code a multi-line raw literal.
pub fn lines(src: &str) -> Vec<&str> {
Expand All @@ -15,7 +19,7 @@ pub fn lines(src: &str) -> Vec<&str> {
for line in src_lines {
result_lines.push(line);
}
if result_lines[result_lines.len()-1].chars().all(char::is_whitespace) {
if is_blank(result_lines[result_lines.len()-1]) {
result_lines.truncate(result_lines.len()-1);
}
if result_lines.len() > 1 {
Expand All @@ -29,10 +33,10 @@ pub fn lines(src: &str) -> Vec<&str> {
}
if
!white_prefix.is_empty()
&& result_lines.iter().all(|line| line.starts_with(&white_prefix))
&& result_lines.iter().all(|line| line.starts_with(&white_prefix) || is_blank(line))
{
result_lines = result_lines.iter().map(
|line| &line[white_prefix.len()..]
result_lines = result_lines.iter().map(|line|
if is_blank(line) { line } else { &line[white_prefix.len()..] }
).collect();
}
}
Expand Down

0 comments on commit 5e3ed4c

Please sign in to comment.