# DocShell v2.0.0 - Table of Contents > Renderer-neutral documentation extraction, site projection, and publication for Elixir ## Pages - [Overview](readme.md) - [Collection and site specification](dsh-01-documentation-sites.md) - [Portable artifact capability draft](portable-artifact-capabilities.md) - [Implementation status](documentation-sites.md) - Tutorials - [The Build Pipeline](build-pipeline.md) - [OpenAPI Adapters](openapi-adapters.md) - [Artifact Contract](artifact-contract.md) - [Serving Artifacts](serving-artifacts.md) - [Publish a Portable Site](site-publication.md) - Performance - [Markdown Parsing](ast.md) - [Presentation Projection](presentation.md) - [Term Coercion](json.md) - [Artifact Round Trip](artifact.md) - [Collection Preparation and Import](collection.md) - [Site Projection and Export](site.md) - Reference - [Changelog](changelog.md) - [Contributing](contributing.md) - [License](license.md) - [Usage Rules (LLM)](usage-rules.md) ## Modules - [DocShell.Generate.Collection.ArtifactTree](DocShell.Generate.Collection.ArtifactTree.md): Reads a manifested collection tree with bounded, path-checked filesystem I/O. - [DocShell.Generate.Collection.Descriptor](DocShell.Generate.Collection.Descriptor.md): Validates caller-owned collection identity independently of corpus I/O. - [DocShell.Generate.Collection.Limits](DocShell.Generate.Collection.Limits.md): Finite admission budgets for loading existing collection artifacts. - [DocShell.Generate.Collection.Provenance](DocShell.Generate.Collection.Provenance.md): Admits source records and verifies their relationship to a collection's content. - [DocShell.Json.Canonical](DocShell.Json.Canonical.md): Computes reproducible JSON bytes and content digests at serialization boundaries. - [DocShell.Presentation.ArtifactAdmission](DocShell.Presentation.ArtifactAdmission.md): Selects a completed artifact variant under explicit runtime constraints. - [DocShell.Presentation.ArtifactBlock](DocShell.Presentation.ArtifactBlock.md): Projects typed external artifact blocks into verified presentation receipts. - [DocShell.Presentation.ArtifactProfile](DocShell.Presentation.ArtifactProfile.md): Defines an explicitly supplied validator for one portable artifact profile. - [DocShell.Presentation.References](DocShell.Presentation.References.md): Checks identity and reference consistency after presentation shape validation. - Core - [DocShell](DocShell.md): Turns the documentation an Elixir project already has into plain JSON. - [DocShell.Artifact](DocShell.Artifact.md): Reads and writes the versioned JSON envelope every artifact is wrapped in. - [DocShell.Artifact.Encoded](DocShell.Artifact.Encoded.md): Holds JSON bytes that have already been encoded and are written verbatim. - [DocShell.Artifact.Transaction](DocShell.Artifact.Transaction.md): Stages a batch of JSON files before replacing any published artifact. - [DocShell.Build](DocShell.Build.md): Runs every extractor and writes the complete artifact tree to disk. - [DocShell.Build.Tree](DocShell.Build.Tree.md): Encodes a completed build once and publishes it as one artifact generation. - [DocShell.Config](DocShell.Config.md): Resolves build settings from per-call options, host config, and defaults. - Extraction - [DocShell.Ast](DocShell.Ast.md): Parses Markdown into the recursive, JSON-safe node shape renderers consume. - [DocShell.Generate.Cohort](DocShell.Generate.Cohort.md): Binds an ordered set of loaded collections to one site profile. - [DocShell.Generate.Collection](DocShell.Generate.Collection.md): Describes, writes, and validates a portable documentation corpus. - [DocShell.Generate.Collector](DocShell.Generate.Collector.md): The two behaviours every extractor shares, in one place. - [DocShell.Generate.ExDoc](DocShell.Generate.ExDoc.md): Extracts documentation from compiled modules through the BEAM docs chunk. - [DocShell.Generate.Guides](DocShell.Generate.Guides.md): Extracts hand-written Markdown guides, with optional YAML frontmatter. - [DocShell.Generate.Livebooks](DocShell.Generate.Livebooks.md): Indexes Livebook notebooks so they appear in navigation and search. - Changelog - [DocShell.Generate.Changelog](DocShell.Generate.Changelog.md): Extracts the host's changelog or release notes into renderer-neutral release entries. - [DocShell.Generate.Changelog.Source](DocShell.Generate.Changelog.Source.md): Source adapter contract for changelog or release-note entries. - [DocShell.Generate.Changelog.Sources.MarkdownFile](DocShell.Generate.Changelog.Sources.MarkdownFile.md): Default changelog source that reads conventional release notes from Markdown. - OpenAPI - [DocShell.Generate.OpenApi](DocShell.Generate.OpenApi.md): Loads an OpenAPI document through a pluggable adapter, and sanity-checks it. - [DocShell.Generate.OpenApi.Adapter](DocShell.Generate.OpenApi.Adapter.md): The one callback a source of OpenAPI documents has to implement. - [DocShell.Generate.OpenApi.Adapters.AshOaskit](DocShell.Generate.OpenApi.Adapters.AshOaskit.md): Derives the OpenAPI document from Ash domains, via AshOaskit. - [DocShell.Generate.OpenApi.Adapters.OpenApiSpex](DocShell.Generate.OpenApi.Adapters.OpenApiSpex.md): Reuses an existing [OpenApiSpex](https://hexdocs.pm/open_api_spex) spec module. - [DocShell.Generate.OpenApi.Adapters.RawJson](DocShell.Generate.OpenApi.Adapters.RawJson.md): Takes the OpenAPI document as it is — from a map or a JSON file on disk. - Presentation - [DocShell.Presentation.Backlink](DocShell.Presentation.Backlink.md): A document that links to another, for rendering "referenced by" panels. - [DocShell.Presentation.GraphProjector](DocShell.Presentation.GraphProjector.md): Port implemented by graph-backed hosts to produce DocShell presentation data. - [DocShell.Presentation.NavigationItem](DocShell.Presentation.NavigationItem.md): One node in the documentation navigation tree. - [DocShell.Presentation.SearchEntry](DocShell.Presentation.SearchEntry.md): One searchable document, flattened to plain text. - [DocShell.Presentation.Source](DocShell.Presentation.Source.md): Producer contract for source-independent documentation presentation data. - [DocShell.Presentation.StaticGenerator](DocShell.Presentation.StaticGenerator.md): Builds navigation, search, and content indexes from extracted entries. - Site Publication - [DocShell.Presentation.ArtifactLimits](DocShell.Presentation.ArtifactLimits.md): Bounds portable artifact inputs before profiles are invoked or JSON is decoded. - [DocShell.Presentation.Breadcrumb](DocShell.Presentation.Breadcrumb.md): Represents one item in a page's navigation ancestry. - [DocShell.Presentation.Heading](DocShell.Presentation.Heading.md): Identifies a heading after deterministic anchor projection. - [DocShell.Presentation.HostedPair](DocShell.Presentation.HostedPair.md): Checks one host-admitted narrative/OpenAPI publication before rendering. - [DocShell.Presentation.Limits](DocShell.Presentation.Limits.md): Finite resource ceilings for site projection and static export. - [DocShell.Presentation.Link](DocShell.Presentation.Link.md): Carries a resolved link used by previous/next navigation and direct actions. - [DocShell.Presentation.Page](DocShell.Presentation.Page.md): Holds the complete renderer-neutral record for one documentation page. - [DocShell.Presentation.PageDecorations](DocShell.Presentation.PageDecorations.md): Checks renderer-neutral banner and hero records before page projection. - [DocShell.Presentation.SearchAdapter](DocShell.Presentation.SearchAdapter.md): Build-time adapter for a validated, renderer-neutral search corpus. - [DocShell.Presentation.SearchAdapter.JSON](DocShell.Presentation.SearchAdapter.JSON.md): Deterministic JSON search adapter and reference query implementation. - [DocShell.Presentation.SearchAdapter.Output](DocShell.Presentation.SearchAdapter.Output.md): Returns local index assets together with their browser query contract. - [DocShell.Presentation.Settings](DocShell.Presentation.Settings.md): Validates optional, inert presentation choices shared by site renderers. - [DocShell.Presentation.Site](DocShell.Presentation.Site.md): Contains one validated `doc-shell-site/v1` generation. - [DocShell.Presentation.SiteProjector](DocShell.Presentation.SiteProjector.md): Turns validated documentation collections into a renderer-neutral site. - [DocShell.Presentation.SiteSearchEntry](DocShell.Presentation.SiteSearchEntry.md): Represents one page or heading in the portable site search corpus. - [DocShell.Presentation.SiteSource](DocShell.Presentation.SiteSource.md): Defines the host-owned policy input to site projection. - [DocShell.Presentation.SiteSource.Default](DocShell.Presentation.SiteSource.Default.md): Supplies a deterministic flat site policy for zero-configuration consumers. - [DocShell.Presentation.StaticExporter](DocShell.Presentation.StaticExporter.md): Builds and atomically publishes a complete static documentation site. - Renderer Contracts - [DocShell.Presentation.Asset](DocShell.Presentation.Asset.md): Describes one local asset produced by a renderer or search adapter. - [DocShell.Presentation.Conformance](DocShell.Presentation.Conformance.md): Shared fixtures and semantic snapshots for independent site renderers. - [DocShell.Presentation.Conformance.Surface](DocShell.Presentation.Conformance.Surface.md): Captures renderer-observed semantics for one exact site generation. - [DocShell.Presentation.Renderer](DocShell.Presentation.Renderer.md): Defines the boundary between a portable site and a concrete renderer. - [DocShell.Presentation.Renderer.Capabilities](DocShell.Presentation.Renderer.Capabilities.md): Declares a renderer's portable identity and supported feature states. - [DocShell.Presentation.Renderer.Capability](DocShell.Presentation.Renderer.Capability.md): Describes the states a renderer can provide for one feature. - [DocShell.Presentation.Renderer.CapabilityRequirement](DocShell.Presentation.Renderer.CapabilityRequirement.md): States what a page needs from a renderer for one portable feature. - [DocShell.Presentation.Renderer.Context](DocShell.Presentation.Renderer.Context.md): Carries inert site context into one renderer call. - Web Serving - [DocShell.Web.Cache](DocShell.Web.Cache.md): Holds validated artifacts in ETS so serving them never touches disk. - [DocShell.Web.Controller](DocShell.Web.Controller.md): Serves artifacts from a controller action you already own. - [DocShell.Web.Plug](DocShell.Web.Plug.md): Serves cached artifacts over HTTP, behind an authorization gate you supply. - [DocShell.Web.Response](DocShell.Web.Response.md): Sends an immutable cached JSON representation with HTTP validators. - Support - [DocShell.Json](DocShell.Json.md): Coerces arbitrary Elixir terms into something JSON can represent. - [DocShell.Json.Depth](DocShell.Json.Depth.md): Bounds JSON container nesting before decoding allocates a native tree. ## Mix Tasks - [mix doc_shell.build](Mix.Tasks.DocShell.Build.md): Builds the documentation artifact tree for the current project.