build.rs
1 use mdbook_gen::generate_router_build_script; 2 use std::{env::current_dir, path::PathBuf}; 3 4 fn main() { 5 println!("cargo:rerun-if-changed=./src/content/docs/src"); 6 generate_mdbook_router("./src/content/docs", "src/content/docs"); 7 } 8 9 fn generate_mdbook_router(mdbook_dir: impl Into<PathBuf>, out_dir: impl Into<PathBuf>) { 10 let mdbook_dir = mdbook_dir.into(); 11 let out_dir = current_dir().expect("cwd").join(out_dir.into()); 12 13 let mut out = generate_router_build_script(mdbook_dir); 14 out.push_str("\nuse super::*;\n"); 15 16 std::fs::create_dir_all(&out_dir).expect("create output dir"); 17 std::fs::write(out_dir.join("router.rs"), out).expect("write generated router"); 18 }