aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-01-13 18:42:26 +0100
committerRuben Beltran del Rio <git@r.bdr.sh>2025-01-13 18:42:26 +0100
commit3a544e1f1226027b4a429e525126b2a7623de8d1 (patch)
tree357d49f99a99fbc0ec88de6f28374e58e527bd6b /src
parent9d687f8c5a45f72cb0040bb2d0441d04ea9987fb (diff)
Address clippy1.0.1
Diffstat (limited to 'src')
-rw-r--r--src/html_renderer.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/html_renderer.rs b/src/html_renderer.rs
index fccf163..61d2d73 100644
--- a/src/html_renderer.rs
+++ b/src/html_renderer.rs
@@ -1,4 +1,5 @@
use crate::gemini_parser::GeminiLine;
+use std::path::Path;
/// Renders HTML from a vector of `GeminiLine` elements.
///
@@ -99,12 +100,17 @@ fn line_content(line: &GeminiLine) -> String {
match line {
GeminiLine::Text(content, false) => format!("<p>{content}</p>"),
GeminiLine::Link(url, text) => {
- let processed_url;
- if !url.starts_with("gemini:") && url.ends_with(".gmi") {
- processed_url = url.replace(".gmi", ".html");
+ let path = Path::new(url);
+ let processed_url = if !url.starts_with("gemini:")
+ && path
+ .extension()
+ .map_or(false, |ext| ext.eq_ignore_ascii_case("gmi"))
+ {
+ url.replace(".gmi", ".html")
} else {
- processed_url = url.to_string();
- }
+ url.to_string()
+ };
+
let display = if text.is_empty() {
&processed_url
} else {