mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-03-31 08:35:28 +00:00
implement strip_tags filter
This commit is contained in:
parent
3df4a79e0a
commit
43f348e9bb
2 changed files with 36 additions and 5 deletions
|
|
@ -61,13 +61,14 @@ impl Tags {
|
|||
links: &mut HashMap<TextTag, Uri>,
|
||||
) -> Option<String> {
|
||||
// * keep in order!
|
||||
let title = self.header.render(buffer); // @TODO strip raw tags
|
||||
let title = self.header.render(buffer);
|
||||
|
||||
self.quote.render(buffer);
|
||||
|
||||
reference::render_images_links(&buffer, base, &link_color, links);
|
||||
reference::render_images(&buffer, base, &link_color, links);
|
||||
reference::render_links(&buffer, base, &link_color, links);
|
||||
|
||||
title
|
||||
title.map(|ref s| reference::strip_tags(s)) // @TODO other tags
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -221,11 +221,41 @@ pub fn render_links(
|
|||
}
|
||||
}
|
||||
|
||||
pub fn strip_tags(value: &str) -> String {
|
||||
let mut result = String::from(value);
|
||||
for cap in Regex::new(REGEX_LINK)
|
||||
.unwrap()
|
||||
.captures_iter(&value)
|
||||
.into_iter()
|
||||
{
|
||||
if let Some(m) = cap.get(0) {
|
||||
result = result.replace(m.as_str(), &cap["text"]);
|
||||
}
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_strip_tags() {
|
||||
const VALUE: &str = r"Some text [link1](https://link1.com) [link2](https://link2.com)";
|
||||
let mut result = String::from(VALUE);
|
||||
for cap in Regex::new(REGEX_LINK)
|
||||
.unwrap()
|
||||
.captures_iter(VALUE)
|
||||
.into_iter()
|
||||
{
|
||||
if let Some(m) = cap.get(0) {
|
||||
result = result.replace(m.as_str(), &cap["text"]);
|
||||
}
|
||||
}
|
||||
assert_eq!(result, "Some text link1 link2")
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_regex_link() {
|
||||
let cap: Vec<_> = Regex::new(REGEX_LINK)
|
||||
.unwrap()
|
||||
.captures_iter(r#"[link1](https://link1.com) [link2](https://link2.com)"#)
|
||||
.captures_iter(r"[link1](https://link1.com) [link2](https://link2.com)")
|
||||
.collect();
|
||||
|
||||
let first = cap.get(0).unwrap();
|
||||
|
|
@ -245,7 +275,7 @@ fn test_regex_image_link() {
|
|||
REGEX_IMAGE_LINK,
|
||||
)
|
||||
.unwrap().captures_iter(
|
||||
r#"[](https://image2.com) [](https://image4.com)"#
|
||||
r"[](https://image2.com) [](https://image4.com)"
|
||||
).collect();
|
||||
|
||||
let first = cap.get(0).unwrap();
|
||||
|
|
@ -271,7 +301,7 @@ fn test_regex_image_link() {
|
|||
fn test_regex_image() {
|
||||
let cap: Vec<_> = Regex::new(REGEX_IMAGE)
|
||||
.unwrap()
|
||||
.captures_iter(r#" "#)
|
||||
.captures_iter(r" ")
|
||||
.collect();
|
||||
|
||||
let first = cap.get(0).unwrap();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue