use once_cell::sync::Lazy;
use regex::Regex;

static WIKILINK_RE: Lazy<Regex> =
    Lazy::new(|| Regex::new(r"\[\[([^\]|#]+)(?:#[^\]|]+)?(?:\|[^\]]+)?\]\]").unwrap());

pub fn extract_wikilinks(input: &str) -> Vec<String> {
    WIKILINK_RE
        .captures_iter(input)
        .filter_map(|caps| caps.get(1).map(|m| m.as_str().trim().to_string()))
        .collect()
}
