This commit is contained in:
25
src/main.rs
25
src/main.rs
@@ -82,6 +82,17 @@ async fn page<'r>(
|
||||
})
|
||||
.render()))
|
||||
}
|
||||
|
||||
if key == "tag" {
|
||||
return PageResponder::Page(RawHtml(renderer.template("search.html")
|
||||
.with_historian(&historian)
|
||||
.with_page(&page)
|
||||
.insert("results", &Searcher::new(&historian).tag_search(&page, value))
|
||||
.insert("options", &toml! {
|
||||
dynamic = true
|
||||
})
|
||||
.render()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,6 +219,10 @@ struct Args {
|
||||
#[arg(long)]
|
||||
search: Option<String>,
|
||||
|
||||
/// Search the wiki by tag
|
||||
#[arg(long)]
|
||||
tag: Option<String>,
|
||||
|
||||
/// Search root
|
||||
#[arg(long)]
|
||||
search_root: Option<String>
|
||||
@@ -276,6 +291,16 @@ async fn main() {
|
||||
return;
|
||||
}
|
||||
|
||||
if let Some(tag) = args.tag {
|
||||
let searcher = Searcher::new(&historian);
|
||||
let search_root = args.search_root.as_deref().unwrap_or("");
|
||||
let page = historian.resolve_to_page(&search_root).expect("failed to find page");
|
||||
for result in searcher.tag_search(&page, &tag) {
|
||||
print_result(&result);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
rocket::build()
|
||||
.manage(historian)
|
||||
.manage(renderer)
|
||||
|
||||
Reference in New Issue
Block a user