Moka.Docs.Core

NameKindDescription
MokaDefaults Class Central defaults for MokaDocs. The library author sets these to control what ships as the default experience. Users override via mokadocs.yaml, and environment variables override everything. Priority: Environment Variable > User YAML Config > MokaDefaults

Moka.Docs.Core.Api

NameKindDescription
ApiAccessibility Enum Access modifier for a type or member.
ApiAttribute Record An attribute applied to a type or member.
ApiMember Record A member of a type (method, property, field, event, constructor, operator, indexer).
ApiMemberKind Enum The kind of a member.
ApiNamespace Record A namespace containing types.
ApiParameter Record A parameter on a method, constructor, or indexer.
ApiReference Record The complete API reference model for all analyzed projects/assemblies.
ApiType Record A type (class, struct, record, interface, enum, delegate).
ApiTypeKind Enum The kind of a type.
ApiTypeParameter Record A generic type parameter with optional constraints.
ExceptionDoc Record Documentation for a thrown exception.
XmlDocBlock Record Parsed XML documentation block for a type or member.

Moka.Docs.Core.Configuration

NameKindDescription
BlogFeatureConfig Record Blog feature configuration.
BuildConfig Record Build options.
CloudConfig Record Cloud feature configuration (all OFF by default).
CloudFeatures Record Individual cloud feature toggles.
ContentConfig Record Content source configuration: where to find Markdown and C# projects.
EditLinkConfig Record Configuration for "Edit this page" links pointing to a source repository.
FeaturesConfig Record Feature toggles for optional capabilities.
NavItem Record Navigation sidebar item (can be auto-generated or manual override).
PluginDeclaration Record Plugin declaration in configuration.
ProjectSource Record A C# project source for API documentation extraction.
SearchFeatureConfig Record Search feature configuration.
SiteAssetReference Record A resolved reference to a site-level brand asset such as SiteMetadata.Logo or SiteMetadata.Favicon.

Unlike the raw yaml string, this record knows BOTH where the file lives on disk (for asset copying) AND what URL the theme templates should emit (for browser resolution) — including correct handling of paths that traverse out of the content.docs directory via ../, and absolute URLs (http/https/data) which pass through unchanged.

Created by SiteConfigReader from the raw yaml value and the mokadocs.yaml file's directory. Consumers (FileDiscoveryService / BrandAsset- Resolver / OutputPhase / ScribanTemplateEngine) work only with the already- resolved fields, never with the raw yaml string.

SiteConfig Record Top-level configuration for a MokaDocs site, parsed from mokadocs.yaml.
SiteConfigException Class Exception thrown when the site configuration is invalid.
SiteConfigReader Class Reads and parses a mokadocs.yaml configuration file into a SiteConfig.
SiteMetadata Record Site metadata: title, description, base URL, branding.
SocialLink Record A social link displayed in the site header.
ThemeConfig Record Theme configuration.
ThemeOptions Record Theme-specific options for customizing appearance.
VersionDefinition Record A version definition for multi-version documentation.
VersioningFeatureConfig Record Versioning feature configuration.

Moka.Docs.Core.Content

NameKindDescription
DocPage Record Represents a single documentation page, whether from Markdown or auto-generated from API docs.
DocSite Record Top-level model representing the entire documentation site being generated.
DocVersion Record Represents a specific version snapshot of the documentation.
FrontMatter Record Front matter metadata extracted from YAML at the top of a Markdown file.
PageContent Record The parsed body content of a page.
PageOrigin Enum Indicates where a page was sourced from.
PageVisibility Enum Page visibility control.
TableOfContents Record Auto-generated table of contents from page headings.
TocEntry Record A single entry in the table of contents.

Moka.Docs.Core.Diagnostics

NameKindDescription
Diagnostic Record A single diagnostic message produced during the build.
DiagnosticBag Class Collects diagnostic messages during the build pipeline.
DiagnosticSeverity Enum Diagnostic severity levels.

Moka.Docs.Core.Features

NameKindDescription
MokaFeatureConfiguration Class Provides default feature flag values. The library author changes these in MokaDefaults before shipping to control what's enabled out of the box. Users can override via appsettings.json or environment variables.
MokaFeatureFlags Class All MokaDocs feature flag names. Used with IFeatureManager and Microsoft.FeatureManagement for runtime feature toggling.

Moka.Docs.Core.Navigation

NameKindDescription
NavigationNode Record A single node in the navigation tree.
NavigationTree Record The complete navigation tree for the site sidebar.

Moka.Docs.Core.Pipeline

NameKindDescription
BuildContext Class Mutable state bag passed through all build pipeline phases.
IBuildPhase Interface A single phase in the MokaDocs build pipeline.
PackageMetadata Record NuGet package metadata extracted from a .csproj file.

Moka.Docs.Core.Search

NameKindDescription
SearchEntry Record A single searchable entry in the index.
SearchIndex Record A pre-built search index for client-side search functionality.

Moka.Docs.Core.Theming

NameKindDescription
LucideIcons Class Provides a curated set of Lucide SVG icons for use in the default theme. Icons are 24x24 with stroke-based rendering (stroke="currentColor", stroke-width="2").
ThemeManifest Record Metadata and configuration for an active theme.

Moka.Docs.CSharp

NameKindDescription
CSharpServiceExtensions Class Extension methods for registering C# analysis services.

Moka.Docs.CSharp.Metadata

NameKindDescription
AssemblyAnalyzer Class Analyzes C# source files via Roslyn to extract a complete API model. Uses CSharpCompilation to build a semantic model without requiring MSBuild.

Moka.Docs.CSharp.XmlDoc

NameKindDescription
InheritDocResolver Class Resolves references by finding documentation from base types and implemented interfaces.
MemberIdInfo Record Parsed components of a member ID string.
MemberIdKind Enum The kind of member referenced by a member ID.
MemberIdParser Class Utilities for working with .NET XML documentation member ID strings. Member IDs follow the format: prefix:fully.qualified.name(param1,param2)
XmlDocFile Record Represents a parsed XML documentation file.
XmlDocParser Class Parses a .NET XML documentation file (the output of ) into a dictionary of member ID → XmlDocBlock.

Moka.Docs.Engine

NameKindDescription
BuildPipeline Class Orchestrates the execution of all build phases in order.
EngineServiceExtensions Class Extension methods for registering build engine services.

Moka.Docs.Engine.Discovery

NameKindDescription
BrandAssetResolver Class Populates BuildContext.BrandAssetFiles with the resolved SiteAssetReference entries for site.logo and site.favicon, so the output phase knows to copy them into the built site even when they live outside the content.docs directory tree.

Invoked from DiscoveryPhase after the normal markdown/asset glob. Logs warnings for missing source files but does not throw — a missing logo should not break a docs build, just fall back to the default SVG logo in the theme.

DiscoveryResult Class The result of a file discovery scan.
FileDiscoveryService Class Scans the project directory for Markdown files, C# projects, and static assets.

Moka.Docs.Engine.Phases

NameKindDescription
ApiPageRenderer Class Generates HTML content for API type documentation pages.
CSharpAnalysisPhase Class Analyzes C# projects to build the ApiReference model.
DiscoveryPhase Class Scans for Markdown files, C# projects, and static assets.
FeatureGatePhase Class Filters pages from the build based on feature flags. Pages with a requires front matter field are excluded when the corresponding feature flag is disabled in the feature manager.
MarkdownParsePhase Class Parses all discovered Markdown files into DocPage objects.
NavigationBuildPhase Class Generates the sidebar navigation tree from the folder structure, front matter, and config overrides.
OutputPhase Class Writes all rendered pages and copies assets to the output directory. Handles output directory creation and cleaning.
PostProcessPhase Class Generates sitemap.xml and robots.txt in the output directory.
RenderPhase Class Applies theme templates to every page, producing final HTML output.
SearchIndexPhase Class Builds the client-side search index from all pages.
ThemeAssetPhase Class Writes theme CSS and JS assets to the output directory.

Moka.Docs.Parsing

NameKindDescription
ParsingServiceExtensions Class Extension methods for registering parsing services.

Moka.Docs.Parsing.FrontMatter

NameKindDescription
FrontMatterExtractor Class Extracts and parses YAML front matter from the top of Markdown files. Returns the parsed Content.FrontMatter and the remaining Markdown body.
FrontMatterResult Record The result of front matter extraction: the parsed metadata and remaining body.

Moka.Docs.Parsing.Markdown

NameKindDescription
AdmonitionBlock Class Represents an admonition block in the AST.
AdmonitionExtension Class Markdig extension for admonition blocks (note, tip, warning, danger, info). Uses the ::: type syntax.
AdmonitionParser Class Parses ::: type [title] blocks.
AdmonitionRenderer Class Renders admonition blocks as styled HTML.
BlazorPreviewExtension Class Markdig extension that renders fenced code blocks with the "blazor-preview" (or "razor-preview") language as preview containers with a data-blazor-preview="true" attribute. The container includes both the syntax-highlighted source code and a placeholder for the live-rendered preview. The REPL/Blazor plugin later enhances these with tabbed UI and server-side rendering.
CardBlock Class Represents a card component block.
CardRenderer Class Renders a card block as styled HTML.
ChangelogBlock Class Represents a changelog container block in the Markdown AST. Contains the raw lines between :::changelog and the closing :::.
ChangelogExtension Class Markdig extension for changelog blocks. Uses the ::: changelog syntax to render a rich timeline UI.
ChangelogParser Class Parses ::: changelog blocks. Collects all inner lines as raw text so the renderer can parse version entries, types, categories, and items.
ChangelogRenderer Class Renders a ChangelogBlock as a rich timeline HTML structure. Parses the raw lines to extract version entries, types, categories, and items.
CodeGroupBlock Class Represents a code-group container with tabbed code blocks.
CodeGroupRenderer Class Renders a code-group block as a tabbed interface.
ComponentExtension Class Markdig extension for UI components (card, steps, link-cards, code-group). Uses the ::: type{attrs} syntax.
ComponentParser Class Parses ::: card{title="..." icon="..." variant="..."}, ::: steps, ::: link-cards, and ::: code-group blocks.
LinkCardsBlock Class Represents a link-cards grid container.
LinkCardsRenderer Class Renders a link-cards block as a responsive grid.
MarkdownParser Class Parses a Markdown file into a MarkdownParseResult containing front matter, rendered HTML, plain text, and a table of contents.
MarkdownParseResult Record The result of parsing a Markdown file.
MarkdownParserOptions Class Configuration options for the Markdown parser.
MermaidExtension Class Markdig extension that renders fenced code blocks with the "mermaid" language as
 elements for client-side Mermaid.js rendering.
ReplExtension Class Markdig extension that renders fenced code blocks with the "csharp-repl" (or "csharp repl") language as interactive REPL containers with a data-repl="true" attribute. The REPL plugin later enhances these with Run buttons and output panels.
StepsBlock Class Represents a steps container block. Each h3 inside becomes a numbered step.
StepsRenderer Class Renders a steps block as numbered step-by-step HTML.
TabbedContentExtension Class Markdig extension for tabbed content blocks. Uses the === "Tab Title" syntax.
TabGroupBlock Class Represents a group of tabs in the AST.
TabGroupParser Class Parses === "Title" tab blocks.
TabGroupRenderer Class Renders a tab group as HTML.
TabItemBlock Class Represents a single tab within a tab group.
TabItemRenderer Class Renders a tab item as an HTML panel.
TocGenerator Class Generates a TableOfContents from the heading blocks in a parsed Markdown document.

Moka.Docs.Plugins

NameKindDescription
IMokaPlugin Interface Contract that all MokaDocs plugins must implement. Plugins are discovered and loaded by the PluginHost.
IPluginContext Interface Provides plugins with access to host services, configuration, and logging.
LoadedPlugin Record Represents a successfully loaded and initialized plugin.
PluginContext Class Default implementation of IPluginContext that wraps the host service provider and plugin-specific options from configuration.
PluginHost Class Discovers, loads, and manages the lifecycle of IMokaPlugin instances. Plugins are resolved from the DI container and matched against declarations in the site configuration.
PluginServiceExtensions Class Extension methods for registering plugin services.

Moka.Docs.Plugins.BlazorPreview

NameKindDescription
BlazorPreviewPlugin Class MokaDocs plugin that compiles ```blazor-preview code blocks with Roslyn at build time and wires them up for interactive in-page hydration in the browser.

Architecture — one iframe per preview block. Each block is compiled to a standalone .dll at build time, written to _site/_preview-assemblies/, and rendered inside an