NOTE: Under Construction - I'm in the middle of upgrading my site and lots of stuff is kinda broken. Please forgive the mess.

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.

May 2023
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:

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);


You'll need to add the regex create with:

cargo add regex
═══ § ═══