Simple library to provide Wikidot-compatible string normalization. It is a Rust port of the functionality in WDStringUtils::toUnixName.
Wikidot normal form is used in the site's page names. Essentially it ensures the following:
- All ASCII is lowercase.
- All characters outside of
:,a-z,0-9, or-are replaced with dashes. - Underscores are only permitted as the first character.
- Any leading or trailing dashes are removed.
- Any set of multiple dashes are replaced with a single dash.
- Any set of multiple colons are replaced with a single colon.
Examples:
"Big Cheese Horace"->"big-cheese-horace""bottom--Text"->"bottom-text""Tufto's Proposal"->"tufto-s-proposal""-test-"->"test"
This library is getting close to finalization with a v1.0.0 release.
Available under the terms of the MIT License. See LICENSE.md.
This library targets the latest stable Rust. At time of writing, that is 1.68.2
$ cargo build --release$ cargo testAdd -- --nocapture to the end if you want to see test output.