Add an ability to resolve a file path to a historian instance and page object. Add a command for running resolve-links on a file directly, for use in an editor.
This commit is contained in:
67
src/main.rs
67
src/main.rs
@@ -171,7 +171,7 @@ fn action(
|
||||
#[command(version, about, long_about = None)]
|
||||
struct Args {
|
||||
/// Path to wiki repository
|
||||
wiki_path: String,
|
||||
wiki_path: Option<String>,
|
||||
|
||||
/// Render the wiki to a static website
|
||||
#[arg(long)]
|
||||
@@ -193,36 +193,51 @@ struct Args {
|
||||
#[rocket::main]
|
||||
async fn main() {
|
||||
let args = Args::parse();
|
||||
let historian = Historian::new(args.wiki_path);
|
||||
|
||||
let renderer = if let Some(template_path) = args.template_path {
|
||||
PageRenderer::with_template_path(&template_path)
|
||||
} else {
|
||||
PageRenderer::new()
|
||||
};
|
||||
if let Some(wiki_path) = args.wiki_path {
|
||||
let historian = Historian::new(wiki_path);
|
||||
|
||||
let linker = Linker::new(&historian);
|
||||
let renderer = if let Some(template_path) = args.template_path {
|
||||
PageRenderer::with_template_path(&template_path)
|
||||
} else {
|
||||
PageRenderer::new()
|
||||
};
|
||||
|
||||
let linker = Linker::new(&historian);
|
||||
|
||||
if let Some(resolve_link) = args.resolve_link {
|
||||
println!("{}", linker.resolve_link(&resolve_link).unwrap());
|
||||
return;
|
||||
}
|
||||
|
||||
if let Some(resolve_links) = args.resolve_links {
|
||||
let page = historian.resolve_to_page(&resolve_links).expect("failed to find page");
|
||||
println!("{}", linker.resolve_links(&page));
|
||||
return;
|
||||
}
|
||||
|
||||
if let Some(render_to) = args.render_to {
|
||||
export_wiki(&historian, &renderer, &render_to);
|
||||
return;
|
||||
}
|
||||
|
||||
rocket::build()
|
||||
.manage(historian)
|
||||
.manage(renderer)
|
||||
.mount("/", routes![page, action])
|
||||
.launch()
|
||||
.await;
|
||||
return;
|
||||
} else if let Some(resolve_links) = args.resolve_links {
|
||||
if let Some((historian, page)) = Historian::resolve_from_file(&resolve_links) {
|
||||
let linker = Linker::new(&historian);
|
||||
println!("{}", linker.resolve_links(&page));
|
||||
return;
|
||||
}
|
||||
|
||||
if let Some(resolve_link) = args.resolve_link {
|
||||
println!("{}", linker.resolve_link(&resolve_link).unwrap());
|
||||
return;
|
||||
}
|
||||
|
||||
if let Some(resolve_links) = args.resolve_links {
|
||||
let page = historian.resolve_to_page(&resolve_links).expect("failed to find page");
|
||||
println!("{}", linker.resolve_links(&page));
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
if let Some(render_to) = args.render_to {
|
||||
export_wiki(&historian, &renderer, &render_to);
|
||||
return;
|
||||
}
|
||||
|
||||
rocket::build()
|
||||
.manage(historian)
|
||||
.manage(renderer)
|
||||
.mount("/", routes![page, action])
|
||||
.launch()
|
||||
.await;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user