pinakes-ui: replace unwrap() with expect(); add # Panics section to convert_wikilinks`
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I984d4d9e636a6a4091cba6f4048c09826a6a6964
This commit is contained in:
parent
a1906ece00
commit
530873b7a3
1 changed files with 20 additions and 4 deletions
|
|
@ -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!(
|
||||
"<span class=\"wikilink-embed\" data-target=\"{}\" title=\"Embed: \
|
||||
|
|
@ -253,9 +264,14 @@ fn convert_wikilinks(text: &str) -> 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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue