diff --git a/server/src/lib.rs b/server/src/lib.rs index 139bef7..d2652c5 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -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? @@ -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#"{0}"#, span.as_str())), + Some(LinkKind::Url) => { + let text = span.as_str(); + let schema = if text.starts_with("http") { + "" + } else { + "http://" + }; + let a = format!(r#"{0}"#, text); + log::info!("link {} {a}", span.as_str()); + parts.push(a); + } _ => todo!("unhandled kind: {:?}", span.kind().unwrap()), } }