Skip to main content

Crate dioxus_docs_kit

Crate dioxus_docs_kit 

Source
Expand description

§dioxus-docs-kit

Reusable documentation site shell for Dioxus applications.

Provides a complete docs layout with sidebar navigation, search modal, page navigation, OpenAPI API reference pages, and mobile drawer.

§Quick Start

use dioxus::prelude::*;
use dioxus_docs_kit::{DocsConfig, DocsRegistry, DocsContext, DocsLayout, DocsPageContent};
use std::sync::LazyLock;

static DOCS: LazyLock<DocsRegistry> = LazyLock::new(|| {
    DocsConfig::new(include_str!("../docs/_nav.json"), doc_content_map())
        .with_openapi("api-reference", include_str!("../docs/api-reference/spec.yaml"))
        .build()
});

#[component]
fn MyDocsLayout() -> Element {
    let nav = use_navigator();
    let route = use_route::<Route>();
    let current_path = use_memo(move || /* extract path from route */);
    let docs_ctx = DocsContext {
        current_path: current_path.into(),
        base_path: "/docs".into(),
        navigate: Callback::new(move |path: String| { /* push route */ }),
    };
    use_context_provider(|| &*DOCS as &'static DocsRegistry);
    use_context_provider(|| docs_ctx);
    rsx! { DocsLayout {} }
}

Re-exports§

pub use config::DocsConfig;
pub use config::ThemeConfig;
pub use registry::DocsRegistry;
pub use registry::ApiEndpointEntry;
pub use registry::NavConfig;
pub use registry::NavGroup;
pub use registry::SearchEntry;
pub use components::CurrentTheme;
pub use components::DocsLayout;
pub use components::DocsLayout;
pub use components::DocsPageContent;
pub use components::DocsPageContent;
pub use components::DocsPageNav;
pub use components::DocsPageNav;
pub use components::DocsSidebar;
pub use components::DocsSidebar;
pub use components::DrawerOpen;
pub use components::LayoutOffsets;
pub use components::MobileDrawer;
pub use components::MobileDrawer;
pub use components::SearchButton;
pub use components::SearchButton;
pub use components::SearchModal;
pub use components::SearchModal;
pub use components::ThemeToggle;
pub use components::ThemeToggle;
pub use hooks::DocsProviders;
pub use hooks::use_docs_providers;

Modules§

components
config
Builder for constructing a DocsRegistry.
hooks
registry
Documentation content registry.

Macros§

doc_content_map
Generates a doc_content_map() function that returns a HashMap<&'static str, &'static str> from the build-script output.

Structs§

ApiOperation
API endpoint operation.
ApiTag
Tag metadata.
DocsContext
Navigation bridge that decouples library components from the consumer’s Route enum.
OpenApiSpec
Parsed OpenAPI specification.
ParsedDoc
Parsed documentation page with frontmatter and content.

Enums§

HttpMethod
HTTP method.

Functions§

DocContent
Render a list of DocNodes.
DocTableOfContents
Table of contents sidebar component with scroll tracking.
EndpointPage
Full-page two-column layout for a single API endpoint.
extract_headers
Extract headers from markdown content for table of contents.
highlight_code
Apply syntax highlighting to code.