/ web / build.rs
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  }