Replace Spaces In Directory And File Paths With Dashes In Rust

I store the content for my site in plain-text files^g:neo^^ in my Grimoire^g:grim^^. After years of avoiding them, I've started using spaces in the filenames. They're what I see when I search and they're easier to parse with spaces.

The same filenames are used for building the web pages but I *do not** want spaces there. I also don't want the uppercase letters that I also use in the raw filenames.

This is the little function I use to take care of all that for me.

Code

use regex::Regex;

fn scrub_url_path(source: String) -> String {
    let re = Regex::new(r"\s+").unwrap();
    re.replace_all(&source, "-").to_lowercase()
}

A test run looks like this:

Code

fn main() {
    let source = String::from("this Is  123 Some Text");
    let expected = String::from("this-is-123-some-text");
    let result = scrub_url_path(source);
    assert_eq!(expected, result);
}

Features

Code

cargo add regex