From cd593cd70db747c8f018a8e63a2af0e4727b12b3 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 5 Aug 2022 09:09:09 +0300 Subject: name: store only page filename, without path, as page name Sponsored-by: author --- src/name.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/name.rs b/src/name.rs index 44328b1..e0b4882 100644 --- a/src/name.rs +++ b/src/name.rs @@ -13,12 +13,17 @@ pub struct Name { impl Name { fn new(is_wikitext: bool, src: PathBuf, dest: PathBuf, page: PathBuf) -> Self { + let page_name = page + .file_name() + .unwrap_or_else(|| panic!("get filename from {}", page.display())) + .to_string_lossy() + .to_string(); Self { is_wikitext, src, dest, - page: page.clone(), - page_name: page.to_string_lossy().into(), + page, + page_name, } } @@ -140,7 +145,7 @@ mod test { assert_eq!(name.source_path(), Path::new("/src/foo/bar.mdwn")); assert_eq!(name.destination_path(), Path::new("/dest/foo/bar.html")); assert_eq!(name.page_path(), Path::new("/foo/bar")); - assert_eq!(name.page_name(), "/foo/bar"); + assert_eq!(name.page_name(), "bar"); } #[test] @@ -149,7 +154,7 @@ mod test { assert_eq!(name.source_path(), Path::new("/src/foo/bar.jpg")); assert_eq!(name.destination_path(), Path::new("/dest/foo/bar.jpg")); assert_eq!(name.page_path(), Path::new("/foo/bar.jpg")); - assert_eq!(name.page_name(), "/foo/bar.jpg"); + assert_eq!(name.page_name(), "bar.jpg"); } #[test] -- cgit v1.2.1