summaryrefslogtreecommitdiff
path: root/src/library/link.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-01-31 16:06:44 +0100
committerLaurenz <laurmaedje@gmail.com>2022-01-31 16:47:00 +0100
commit20b1a38414101f842a6d9201133a5aaaa45a7cec (patch)
tree2365453d4dfdebfa11d618baad1a36c65b62d7c7 /src/library/link.rs
parentfa57d86ed981373b66804972147bf59cab920e6b (diff)
Switch from `Rc` to `Arc`
Diffstat (limited to 'src/library/link.rs')
-rw-r--r--src/library/link.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/library/link.rs b/src/library/link.rs
index dc523ffd..0ecd317b 100644
--- a/src/library/link.rs
+++ b/src/library/link.rs
@@ -10,13 +10,14 @@ pub struct LinkNode;
#[class]
impl LinkNode {
fn construct(_: &mut EvalContext, args: &mut Args) -> TypResult<Node> {
- let url: String = args.expect::<EcoString>("url")?.into();
+ let url = args.expect::<EcoString>("url")?;
let body = args.find().unwrap_or_else(|| {
let mut text = url.as_str();
for prefix in ["mailto:", "tel:"] {
text = text.trim_start_matches(prefix);
}
- Node::Text(text.into())
+ let shorter = text.len() < url.len();
+ Node::Text(if shorter { text.into() } else { url.clone() })
});
Ok(body.styled(TextNode::LINK, Some(url)))