Skip to main content

parley/
docs.rs

1#[derive(Debug, Clone, Copy)]
2pub struct ParleyDoc {
3    pub title: &'static str,
4    pub slug: &'static str,
5    pub source_path: &'static str,
6    pub uri: &'static str,
7    pub body: &'static str,
8}
9
10pub const PARLEY_DOCS: &[ParleyDoc] = &[
11    ParleyDoc {
12        title: "Keybindings",
13        slug: "keybindings",
14        source_path: "docs/keybindings.md",
15        uri: "parley://docs/keybindings",
16        body: include_str!("../docs/keybindings.md"),
17    },
18    ParleyDoc {
19        title: "Overview",
20        slug: "overview",
21        source_path: "docs/overview.md",
22        uri: "parley://docs/overview",
23        body: include_str!("../docs/overview.md"),
24    },
25    ParleyDoc {
26        title: "Quickstart",
27        slug: "quickstart",
28        source_path: "docs/quickstart.md",
29        uri: "parley://docs/quickstart",
30        body: include_str!("../docs/quickstart.md"),
31    },
32    ParleyDoc {
33        title: "Workflow",
34        slug: "review-workflow",
35        source_path: "docs/review-workflow.md",
36        uri: "parley://docs/review-workflow",
37        body: include_str!("../docs/review-workflow.md"),
38    },
39    ParleyDoc {
40        title: "MCP",
41        slug: "mcp",
42        source_path: "docs/mcp.md",
43        uri: "parley://docs/mcp",
44        body: include_str!("../docs/mcp.md"),
45    },
46];
47
48#[must_use]
49pub fn find_doc(value: &str) -> Option<&'static ParleyDoc> {
50    let normalized = value.trim();
51    PARLEY_DOCS.iter().find(|doc| {
52        doc.uri == normalized
53            || doc.slug == normalized
54            || doc.source_path == normalized
55            || doc.title.eq_ignore_ascii_case(normalized)
56    })
57}