A filename sanitizer aiming to produce reader friendly filenames, while preserving as much information as possible.
Unlike Node's [sanitize-filename], this library replaces
non-file-system-compatible characters with underscore and space. Both are
trimmed when they appear at the beginning or at the end of a line or when they
repeat within. Non-printable punctuation marks are replaced by underscores,
other non-printable characters by spaces, except the non-printable space
U+200b
which is filtered out. Newlines are replaced by dashes.
Sample usage:
```rust extern crate sanitizefilenamereaderfriendly; use crate::sanitizefilenamereaderfriendly::sanitize;
fn main() { println!("{}", sanitize("Read: http://blog.getreu.net/projects/tp-note/")); // Prints: "Read_ httpblog.getreu.netprojects_tp-note" } ```
This library comes with a simple command-line application. Usage:
bash
cargo install sanitize-filename-reader-friendly
sanitize-filename <input.txt >output.txt