#[cfg(all(target_arch = "wasm32", feature = "highlight"))]
mod wasm_sysroot_stderr {
use core::ffi::c_void;
static mut DUMMY_FILE: u8 = 0;
#[used]
#[unsafe(no_mangle)]
static mut stderr: *mut c_void = &raw mut DUMMY_FILE as *mut c_void;
}
pub mod blog;
pub mod components;
pub mod config;
pub mod error;
pub mod hooks;
pub mod registry;
pub(crate) mod search;
#[cfg(feature = "server")]
pub mod server;
use dioxus::prelude::*;
pub const DOCS_KIT_CSS: Asset = asset!("/assets/docs-kit.css");
#[derive(Clone)]
#[non_exhaustive]
pub struct DocsContext {
pub current_path: ReadSignal<String>,
pub base_path: String,
pub navigate: Callback<String>,
pub site_url: Option<String>,
pub auto_meta: bool,
pub markdown_alternate: bool,
}
impl DocsContext {
pub fn new(
current_path: impl Into<ReadSignal<String>>,
base_path: impl Into<String>,
navigate: Callback<String>,
) -> Self {
Self {
current_path: current_path.into(),
base_path: base_path.into(),
navigate,
site_url: None,
auto_meta: true,
markdown_alternate: false,
}
}
pub fn with_site_url(mut self, site_url: impl Into<String>) -> Self {
self.site_url = Some(site_url.into());
self
}
pub fn with_auto_meta(mut self, auto_meta: bool) -> Self {
self.auto_meta = auto_meta;
self
}
pub fn with_markdown_alternate(mut self, markdown_alternate: bool) -> Self {
self.markdown_alternate = markdown_alternate;
self
}
}
#[derive(Clone)]
#[non_exhaustive]
pub struct BlogContext {
pub current_slug: ReadSignal<String>,
pub base_path: String,
pub navigate: Callback<String>,
pub site_url: Option<String>,
pub auto_meta: bool,
pub markdown_alternate: bool,
}
impl BlogContext {
pub fn new(
current_slug: impl Into<ReadSignal<String>>,
base_path: impl Into<String>,
navigate: Callback<String>,
) -> Self {
Self {
current_slug: current_slug.into(),
base_path: base_path.into(),
navigate,
site_url: None,
auto_meta: true,
markdown_alternate: false,
}
}
pub fn with_site_url(mut self, site_url: impl Into<String>) -> Self {
self.site_url = Some(site_url.into());
self
}
pub fn with_auto_meta(mut self, auto_meta: bool) -> Self {
self.auto_meta = auto_meta;
self
}
pub fn with_markdown_alternate(mut self, markdown_alternate: bool) -> Self {
self.markdown_alternate = markdown_alternate;
self
}
}
#[cfg(feature = "highlight")]
pub use config::CodeThemeConfig;
pub use config::{DocsConfig, ThemeConfig};
pub use error::DocsKitError;
pub use registry::DocsRegistry;
pub use registry::{ApiEndpointEntry, NavConfig, NavGroup, SearchEntry};
pub use components::{
ActiveTab, CopyPageButton, CurrentTheme, DocsLayout, DocsPageContent, DocsPageMeta,
DocsPageNav, DocsSidebar, DocsVariant, DrawerOpen, LayoutOffsets, MobileDrawer, SearchButton,
SearchModal, SearchOpen, ThemeToggle, use_theme_provider,
};
pub use hooks::{DocsProviders, use_docs_context, use_docs_providers};
pub use dioxus_mdx::{
ApiOperation, ApiTag, DocContent, DocTableOfContents, EndpointPage, HttpMethod, OpenApiSpec,
ParsedDoc, extract_headers,
};
#[cfg(feature = "highlight")]
pub use dioxus_mdx::CodeThemeOverride;
#[cfg(feature = "highlight")]
pub use dioxus_code::{Code, CodeTheme, Language, SourceCode, Theme};
#[cfg(feature = "mermaid")]
pub use dioxus_mdx::MermaidDiagram;
pub use blog::hooks::{ActiveTag, CurrentPage};
pub use blog::types::{Author, BlogFrontmatter, BlogPost, BlogSearchEntry};
pub use blog::{BlogConfig, BlogProviders, BlogRegistry, use_blog_providers};
pub use components::{
AuthorInfo, BlogCard, BlogIndexMeta, BlogLayout, BlogList, BlogMobileDrawer, BlogPostMeta,
BlogPostNav, BlogPostView, BlogSearchButton, BlogSearchModal, BlogThemeToggle,
ReadingProgressBar, ReadingTimeBadge, RelatedPosts, TagFilter,
};
#[macro_export]
macro_rules! doc_content_map {
() => {
fn doc_content_map() -> ::std::collections::HashMap<&'static str, &'static str> {
include!(concat!(env!("OUT_DIR"), "/doc_content_generated.rs"))
}
};
}
#[macro_export]
macro_rules! blog_content_map {
() => {
fn blog_content_map() -> ::std::collections::HashMap<&'static str, &'static str> {
include!(concat!(env!("OUT_DIR"), "/blog_content_generated.rs"))
}
};
}