diff --git a/src/config.rs b/src/config.rs index ca50105..675c97b 100644 --- a/src/config.rs +++ b/src/config.rs @@ -16,4 +16,8 @@ pub struct Config { /// * keep empty to export all #[arg(short, long)] pub filter_tag: Vec, + + /// Generate index file with given name + #[arg(short, long)] + pub index: Option, } diff --git a/src/main.rs b/src/main.rs index 1f8ffdc..311f5b4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -96,6 +96,17 @@ fn main() -> Result<()> { }) } + if let Some(index) = config.index { + let mut file = File::create_new({ + let mut path = PathBuf::from(&config.target); + path.push(format!("{}.md", index.trim_end_matches(".md"))); + path + })?; + for discussion in &discussions { + file.write_all(format!("* [{}]({}.md)\n", discussion.title, discussion.id).as_bytes())?; + } + } + for discussion in discussions { let mut file = File::create_new({ let mut path = PathBuf::from(&config.target);