Skip to content

Commit

Permalink
Merge pull request #1208 from uint/links-preprocessor-support-pluses
Browse files Browse the repository at this point in the history
#1098 Links preprocessor: support pluses
  • Loading branch information
ehuss authored May 7, 2020
2 parents 11f95f7 + b1cf3f1 commit 17210b0
Showing 1 changed file with 26 additions and 8 deletions.
34 changes: 26 additions & 8 deletions src/preprocess/links.rs
Original file line number Diff line number Diff line change
Expand Up @@ -364,14 +364,14 @@ fn find_links(contents: &str) -> LinkIter<'_> {
// r"\\\{\{#.*\}\}|\{\{#([a-zA-Z0-9]+)\s*([a-zA-Z0-9_.\-:/\\\s]+)\}\}")?;
lazy_static! {
static ref RE: Regex = Regex::new(
r"(?x) # insignificant whitespace mode
\\\{\{\#.*\}\} # match escaped link
| # or
\{\{\s* # link opening parens and whitespace
\#([a-zA-Z0-9_]+) # link type
\s+ # separating whitespace
([a-zA-Z0-9\s_.\-:/\\]+) # link target path and space separated properties
\s*\}\} # whitespace and link closing parens"
r"(?x) # insignificant whitespace mode
\\\{\{\#.*\}\} # match escaped link
| # or
\{\{\s* # link opening parens and whitespace
\#([a-zA-Z0-9_]+) # link type
\s+ # separating whitespace
([a-zA-Z0-9\s_.\-:/\\\+]+) # link target path and space separated properties
\s*\}\} # whitespace and link closing parens"
)
.unwrap();
}
Expand Down Expand Up @@ -451,6 +451,24 @@ mod tests {
);
}

#[test]
fn test_find_links_with_special_characters() {
let s = "Some random text with {{#playpen foo-bar\\baz/_c++.rs}}...";

let res = find_links(s).collect::<Vec<_>>();
println!("\nOUTPUT: {:?}\n", res);

assert_eq!(
res,
vec![Link {
start_index: 22,
end_index: 54,
link_type: LinkType::Playpen(PathBuf::from("foo-bar\\baz/_c++.rs"), vec![]),
link_text: "{{#playpen foo-bar\\baz/_c++.rs}}",
},]
);
}

#[test]
fn test_find_links_with_range() {
let s = "Some random text with {{#include file.rs:10:20}}...";
Expand Down

0 comments on commit 17210b0

Please sign in to comment.