Home
Head's Up: I'm in the middle of upgrading my site. Most things are in place, but there are something missing and/or broken including image alt text. Please bear with me while I'm getting things fixed.

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.

rust
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 :

rust
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

You'll need to add the regex create with :

cli
cargo add regex