Linkify URLs missing schema
This commit is contained in:
parent
0f1a60a348
commit
81ed3a8ca2
@ -18,7 +18,8 @@ pub enum SanitizeError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn linkify_html(text: &str) -> String {
|
pub fn linkify_html(text: &str) -> String {
|
||||||
let finder = LinkFinder::new();
|
let mut finder = LinkFinder::new();
|
||||||
|
finder.url_must_have_scheme(false);
|
||||||
let mut parts = Vec::new();
|
let mut parts = Vec::new();
|
||||||
for span in finder.spans(text) {
|
for span in finder.spans(text) {
|
||||||
// TODO(wathiede): use Cow<str>?
|
// TODO(wathiede): use Cow<str>?
|
||||||
@ -26,7 +27,17 @@ pub fn linkify_html(text: &str) -> String {
|
|||||||
// Text as-is
|
// Text as-is
|
||||||
None => parts.push(span.as_str().to_string()),
|
None => parts.push(span.as_str().to_string()),
|
||||||
// Wrap in anchor tag
|
// Wrap in anchor tag
|
||||||
Some(LinkKind::Url) => parts.push(format!(r#"<a href="{0}">{0}</a>"#, span.as_str())),
|
Some(LinkKind::Url) => {
|
||||||
|
let text = span.as_str();
|
||||||
|
let schema = if text.starts_with("http") {
|
||||||
|
""
|
||||||
|
} else {
|
||||||
|
"http://"
|
||||||
|
};
|
||||||
|
let a = format!(r#"<a href="{schema}{0}">{0}</a>"#, text);
|
||||||
|
log::info!("link {} {a}", span.as_str());
|
||||||
|
parts.push(a);
|
||||||
|
}
|
||||||
_ => todo!("unhandled kind: {:?}", span.kind().unwrap()),
|
_ => todo!("unhandled kind: {:?}", span.kind().unwrap()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user