From b183e611e8f6b884338cb97bfbf5f22d54014855 Mon Sep 17 00:00:00 2001 From: Maverick Liu Date: Sun, 23 Feb 2025 16:34:48 +0800 Subject: [PATCH] with file name as output dir --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 2 +- src/lib.rs | 11 ++++++++--- src/main.rs | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d69290c..085b8a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -192,7 +192,7 @@ dependencies = [ [[package]] name = "epub2mdbook" -version = "0.10.0" +version = "0.11.0" dependencies = [ "clap", "epub", diff --git a/Cargo.toml b/Cargo.toml index 9a8eb27..dd85cde 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "epub2mdbook" -version = "0.10.0" +version = "0.11.0" edition = "2024" description = "A tool to convert EPUB files to MDBook format" authors = ["Maverick Liu "] diff --git a/README.md b/README.md index 1b5dbe9..473af20 100644 --- a/README.md +++ b/README.md @@ -16,5 +16,5 @@ epub2mdbook --input-epub path/to/input.epub --output-dir path/to/output ```rust use epub2mdbook::convert_epub_to_mdbook; -convert_epub_to_mdbook("path/to/input.epub", Some("path/to/output")); +convert_epub_to_mdbook("path/to/input.epub", Some("path/to/output"), true); ``` diff --git a/src/lib.rs b/src/lib.rs index 1c24f20..a93d772 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,10 +16,12 @@ use std::{fs, io}; /// /// * `epub_path` - The path to the EPUB file /// * `output_dir` - The path to the output directory, working directory by default +/// * `with_file_name` - Whether to use the file name as the output directory /// pub fn convert_epub_to_mdbook( epub_path: impl AsRef, output_dir: Option>, + with_file_name: bool, ) -> Result<(), Error> { let epub_path = epub_path.as_ref(); if !epub_path.is_file() { @@ -31,10 +33,13 @@ pub fn convert_epub_to_mdbook( .expect("unreachable") .to_string_lossy() .to_string(); - let output_dir = match output_dir { - Some(output_dir) => output_dir.as_ref().join(&book_name), - None => PathBuf::from(".").join(&book_name), + let mut output_dir = match output_dir { + Some(output_dir) => output_dir.as_ref().to_owned(), + None => PathBuf::from("."), }; + if with_file_name { + output_dir.push(&book_name); + } fs::create_dir_all(output_dir.join("src"))?; let mut epub_doc = EpubDoc::new(epub_path)?; diff --git a/src/main.rs b/src/main.rs index 09acbc9..0de6e25 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,7 +15,7 @@ struct Args { fn main() -> Result<(), Error> { let args = Args::parse(); - convert_epub_to_mdbook(args.input_epub, args.output_dir)?; + convert_epub_to_mdbook(args.input_epub, args.output_dir, true)?; println!("Conversion completed successfully!"); Ok(()) } \ No newline at end of file