From 530873b7a30a41a606e9b927681201ab97d444a6 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Thu, 12 Mar 2026 20:59:38 +0300 Subject: [PATCH] pinakes-ui: replace `unwrap()` with `expect(); add `# Panics` section to `convert_wikilinks` Signed-off-by: NotAShelf Change-Id: I984d4d9e636a6a4091cba6f4048c09826a6a6964 --- .../src/components/markdown_viewer.rs | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/crates/pinakes-ui/src/components/markdown_viewer.rs b/crates/pinakes-ui/src/components/markdown_viewer.rs index ec3454f..35f20f2 100644 --- a/crates/pinakes-ui/src/components/markdown_viewer.rs +++ b/crates/pinakes-ui/src/components/markdown_viewer.rs @@ -235,13 +235,24 @@ fn render_markdown(text: &str) -> String { /// Convert wikilinks [[target]] and [[target|display]] to styled HTML links. /// Uses a special URL scheme that can be intercepted by click handlers. +/// +/// # Panics +/// +/// Never panics because the regex patterns are hardcoded and syntactically +/// valid. +#[expect(clippy::expect_used)] fn convert_wikilinks(text: &str) -> String { use regex::Regex; // Match embeds ![[target]] first, convert to a placeholder image/embed span - let embed_re = Regex::new(r"!\[\[([^\]|]+)(?:\|([^\]]+))?\]\]").unwrap(); + let embed_re = Regex::new(r"!\[\[([^\]|]+)(?:\|([^\]]+))?\]\]") + .expect("invalid regex pattern for wikilink embeds"); let text = embed_re.replace_all(text, |caps: ®ex::Captures| { - let target = caps.get(1).unwrap().as_str().trim(); + let target = caps + .get(1) + .expect("capture group 1 always exists for wikilink embeds") + .as_str() + .trim(); let alt = caps.get(2).map(|m| m.as_str().trim()).unwrap_or(target); format!( " String { }); // Match wikilinks [[target]] or [[target|display]] - let wikilink_re = Regex::new(r"\[\[([^\]|]+)(?:\|([^\]]+))?\]\]").unwrap(); + let wikilink_re = Regex::new(r"\[\[([^\]|]+)(?:\|([^\]]+))?\]\]") + .expect("invalid regex pattern for wikilinks"); let text = wikilink_re.replace_all(&text, |caps: ®ex::Captures| { - let target = caps.get(1).unwrap().as_str().trim(); + let target = caps + .get(1) + .expect("capture group 1 always exists for wikilinks") + .as_str() + .trim(); let display = caps.get(2).map(|m| m.as_str().trim()).unwrap_or(target); // Create a styled link that uses a special pseudo-protocol scheme // This makes it easier to intercept clicks via JavaScript