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 {
|
||||
let finder = LinkFinder::new();
|
||||
let mut finder = LinkFinder::new();
|
||||
finder.url_must_have_scheme(false);
|
||||
let mut parts = Vec::new();
|
||||
for span in finder.spans(text) {
|
||||
// TODO(wathiede): use Cow<str>?
|
||||
@ -26,7 +27,17 @@ pub fn linkify_html(text: &str) -> String {
|
||||
// Text as-is
|
||||
None => parts.push(span.as_str().to_string()),
|
||||
// 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()),
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user