What's new

Changelog3 min read|
|

All notable changes to DocsLit, organized by release.

0.1.11

AsciiDoc tables: author tables with AsciiDoc syntax via <wc-asciidoc-table>. Column specs, spans, alignment, cell styles, CSV/DSV/TSV, titles, and footers. Parsed at build time into real HTML tables. See AsciiDoc tables. Apache-2.0 license: the DocsLit CLI is now licensed under Apache-2.0 (was AGPL-3.0). DocsLit Cloud remains a separate proprietary product. Node.js >=20.19.0: engines no longer require Node 24. Installs work on common CI images and corporate machines running Node 20 or 22. Vendored FlexSearch: client search loads a local FlexSearch bundle instead of esm.sh, so air-gapped and CSP-restricted environments work reliably. Site chrome: configure navbar, footer, head, css, analytics (Plausible, PostHog, GA4, Fathom), and favicon in docslit.json. See Site chrome. basePath: deploy under a subpath such as GitHub Pages project sites (https://user.github.io/repo/). Asset URLs, SPA navigation, and sitemaps respect the prefix. Redirects: site-level redirects in docslit.json and frontmatter redirect emit meta-refresh stubs plus _redirects / vercel.json entries for Netlify, Vercel, and Cloudflare. API playground: <wc-playground> lets readers try OpenAPI endpoints from the docs (auth, params, live response). Scaffold and ref resolution wire it automatically. Optional playground.proxyUrl for CORS proxies. See OpenAPI integration. Changelog / blog + RSS: pages with layout: changelog|blog (or under changelog/ / blog/) get dated collection support and build-time rss.xml / atom.xml feeds when url is set. Images: lazy loading, lightbox zoom via <wc-image>, dark-mode variants (#dark= / dark-src), and build-time width/height for CLS. Docs assets are served in dev and copied on build. Social / OG images: each page gets a build-time card (og/{page}.png) with title and site name; og:image and twitter:card=summary_large_image are set automatically. Opt out with ogImage: false. Section search: headings get stable IDs at build time; the search index returns Page → Heading chunks with anchor links, and page bodies are trimmed to keep the index smaller. Sitemap lastmod: uses git history (mtime fallback) per page instead of stamping today’s date on every URL. i18n: locale trees like docs.fr/ / docs.ja/, locale switcher, hreflang tags, and per-locale sidebars. See Internationalization. docslit new and docslit deploy: scaffold pages into the sidebar; write GitHub Pages, Netlify, or Cloudflare recipe files. See Commands and Static hosting. Validate for CI: docslit validate --external checks outbound links; --format github prints Actions annotations for inline PR feedback. See Validation. Plugin hooks: optional docslit.config.js with transformPage and onBuildEnd escape hatches. Shiki highlighting now persists a disk cache across runs for faster rebuilds. Copy page dropdown: the per-page action bar replaces the old copy/view Markdown buttons with a split Copy page dropdown. Options: copy the page as Markdown for LLMs, open the page in ChatGPT, open in Claude, and copy the npx MCP install command for the site's MCP server. Agent directives and root llms.txt for versioned sites: every HTML page and Markdown output file now includes an in-band agent directive pointing to the documentation index. Versioned sites get a root /llms.txt that acts as a version index, listing each version with a link to its own llms.txt. Follows the Agent-Friendly Documentation Spec. Frontmatter titles in sidebar: pages now use their frontmatter title in the sidebar instead of falling back to the filename when a title is set. Versioned doc links: links inside web components in versioned sites now resolve correctly relative to the page's URL rather than the site root.

0.1.10

Custom logo: set "logo": "logo.svg" in docslit.json to replace the default favicon in the navigation bar with your own logo. Place the image file in your project root and it will be copied to the build output automatically. See Logo. Chapter PDF export: run docslit build --pdf to generate chapter PDFs (one per sidebar group), per-page PDFs, and a full documentation PDF in dist/pdf/. Readers get a Download PDF dropdown on each page. Configure via the pdf block in docslit.json, or enable permanently with "enabled": true. Requires Playwright as an optional peer dependency. See Chapter PDF export. Color presets and brand themes: set "theme": "ocean" (or teal, slate, forest, violet, rose, amber, graphite) in docslit.json to apply a professional color palette with full light and dark support. Define corporate branding with docslit theme init, which scaffolds a brand-theme.json file you can extend from any preset and override accent colors, surfaces, fonts, and radius. See Theming. Announcement banner: add an announcement block to docslit.json to show a dismissible site-wide banner at the top of every page. The message supports Markdown and HTML. Readers can dismiss it; updating the message brings it back. Version-specific overrides are supported in versions.list. Fern imports pick up announcement from docs.yml. See Announcement banner.

0.1.9

Accessibility settings widget: a new accessibility button in the navbar opens a settings panel with text size adjustment, high contrast mode, grayscale mode, and underline links toggle. Settings are stored in localStorage and persist across page reloads. The widget works in all three modes (dev, static, offline) and respects the offline security model with event delegation. Favicon and edit-this-page link: static builds now include a favicon and an "Edit this page" link on every page. The edit URL is auto-detected from your Git remote, so no manual configuration is needed for GitHub-hosted projects. Typography refinements: text rendering is improved across all platforms with font smoothing, OpenType features (ligatures, kerning, contextual alternates), and refined letter and word spacing for body text, headings, and code blocks. `wc-tree-item` now accepts a `title` attribute as an alias for `label`, improving compatibility with imported content.

0.1.8

Multi-file offline builds with lazy loading: offline mode now splits into per-page JS files that load on demand via script injection, working directly from file:// URLs without a server. Vendor JS is inlined as data URIs to avoid CORS restrictions. Hash-based navigation handles file:// with History API fallback, and delegated click handlers support links inside web components. SEO-only artifacts are skipped in offline mode. See Offline builds. Parallel builds and caching: page builds now run in parallel, Shiki syntax highlighting results are cached, and languages load lazily on demand. The dev server caches build artifacts for faster reloads. Build timing is reported so you can see where time is spent. Reduced layout shift and faster loading: docslit-app.js is now deferred and Google Fonts CSS loads asynchronously with metric-matched fallback fonts. Layout space is reserved for wc-columns, wc-tiles, wc-tabs, and wc-accordion before component upgrade to eliminate cumulative layout shift. Dynamic meta descriptions: the SPA shell now includes a <meta name="description"> tag that updates dynamically during navigation across all three modes. Falls back to config.description when pages lack a frontmatter description. Reusable content includes: DocsLit now supports compile-time includes with <wc-include src="..."/>. Includes are intentionally strict: targets must be Markdown files under docs/_reusables/**, include tags must be self-closing, and unsafe paths are blocked. Variable precedence for compile-time rendering: {{VAR}} placeholders in prose now resolve with clear precedence: global attributes in docslit.json, then page frontmatter attributes, then page-local <wc-var name="X" value="Y" /> declarations. Pass-through escape syntax: use pass:[...] to render syntax literally when you are documenting templates or components. Example: {{TOKEN}} or <wc-include src="..." />. Expanded Markdown for AI consumers: markdown output now uses preprocessed content (includes and compile-time variables resolved), improving quality for llms-full.txt, search indexing, and markdown-based AI ingestion. Version-aware global variables: two built-in globals are now available on every page: {{DOCSLIT_VERSION}} and {{DOCSLIT_BRANCH}}. Offline build security hardening: offline builds are now hardened for secure, air-gapped environments. All inline event handlers (onclick, oninput, etc.) are replaced with event delegation. User-facing values are HTML-escaped to prevent DOM-based XSS. Google Fonts and all external requests are removed. WCAG contrast improvements: light-mode text and accent colors are darkened for WCAG AA compliance. Theme toggle and copy buttons get proper aria-label attributes, and the menu button meets minimum touch target size requirements. Nested include checks no longer fail when reusable files contain include syntax only inside fenced code examples. Inline literal rendering now uses explicit ... behavior, avoiding accidental formatting regressions while keeping variable syntax usable in normal prose. Validator now resolves relative internal links correctly and excludes reusable files under docs/_reusables/ from validation. Versioned offline builds no longer write null shared files to disk. Mobile sidebar now extends to the full viewport height instead of stopping short on pages with little content.

0.1.7

Syntax highlighting with Shiki: code blocks now use Shiki for build-time highlighting with dual-theme support. Blocks automatically match your page's light or dark theme, and a kebab menu on every code block lets readers switch code between light and dark mode independently of the page theme. The preference is saved for future visits. See Code blocks. Copy button on code groups: tabbed code groups now include a copy button matching individual code blocks, so readers can copy the active tab's code without selecting text. Opt-in line numbers: add linenumbers="true" to any code block to display a non-selectable line number gutter. Line numbers are off by default and only appear when explicitly requested. Save as PDF: a "Save as PDF" button now appears in the page toolbar alongside "Copy as Markdown" and "View as Markdown". It produces clean print output with all accordions and tabs expanded, page chrome hidden, and page breaks prevented inside code blocks and tables. Generate API docs from OpenAPI specs: point DocsLit at your OpenAPI 3.x spec and run docslit openapi scaffold to generate a complete API reference site. Every endpoint gets its own page with parameters, request bodies, response fields, and examples pulled directly from the spec. See OpenAPI integration. API reference layout: API pages now use a dedicated three-column layout with your endpoint documentation on the left and code examples on the right, similar to Stripe and Twilio docs. Organized API sidebar: the sidebar automatically mirrors your spec's tag structure with nested groups and color-coded HTTP method badges (GET, POST, PUT, DELETE) next to each endpoint. Rich parameter documentation: request parameters and body fields display their type, format, constraints (min/max length, allowed values, patterns), defaults, and examples. Nested objects and arrays are rendered as collapsible sections. Response schema documentation: response body fields are extracted from the spec and displayed with the same rich formatting as request parameters, including nested structures. Redesigned parameter fields: the wc-field component now uses a single-column Stripe-style layout with inline expand/collapse for nested fields and a dedicated box for enum values. New attributes let you display parameter location, format, constraints, and inline Markdown descriptions. Hybrid sidebar: sites with both regular documentation and an OpenAPI spec now get separate "API Reference" and "Documentation" sidebars with toggle links in the nav bar. Mobile API examples: on smaller screens (1280px and below), API examples now appear below the main content instead of being hidden. AI-readable API docs: when AI agents request your API pages, they get clean Markdown with parameter tables, field descriptions, and JSON examples instead of raw component tags. Works with any agent that reads Markdown. MCP server for AI tools: every build generates an MCP server that AI tools like Claude Desktop and Cursor can connect to. Agents can list pages, read full content, and search your docs without leaving their workflow. Content negotiation: AI agents can request any page URL with Accept: text/markdown to get raw Markdown instead of HTML. Works out of the box on Cloudflare Pages, Vercel, and Netlify. AI authoring and migration skills: install skill files into Claude Code, Cursor, or Windsurf so your AI assistant knows how to write correct DocsLit pages and convert existing MDX docs. See AI Skills. Sidebar search no longer breaks method badges -- filtering and clearing the search input keeps badges intact. Switching between API pages no longer shows leftover request and response examples from the previous page. Code group theme toggle dropdown no longer gets clipped by the tab bar. OpenAPI scaffold now properly escapes frontmatter values containing special YAML characters.

0.1.6

Drop-in MDX support: PascalCase component names like <Tip>, <Card>, and <Steps> now work directly in Markdown files. DocsLit recognizes roughly 25 Mintlify and MDX component names and rewrites them to their DocsLit equivalents at parse time. Most Mintlify projects can be moved over without changing source files. See Markdown basics. Full-text search: press Cmd+K (or Ctrl+K) to open a search dialog that searches across all pages with instant results as you type. Results are grouped by sidebar section with highlighted matches and full keyboard navigation. Multi-version documentation: host multiple versions of your documentation on a single site with a version selector. Versions map to git branches, so teams can maintain separate branches for each product release and build them into a unified site with versioned URLs. See Versioning. Active section tracking: the table of contents on the right now shows a colored guide line that follows you as you scroll. The active section updates smoothly, and clicking a heading highlights it instantly. Fenced code block variables: {{VAR}} placeholders in fenced code blocks now update in real time when readers edit a variable on the page. All fenced code blocks also get copy buttons automatically. Inline variable references: {{VAR}} patterns in regular Markdown text are automatically converted to live variable displays that update when the variable is changed elsewhere on the page. Copy as Markdown and View as Markdown: every page now shows buttons to copy the raw Markdown source to your clipboard or open it in a new tab. Per-route HTML pages: static builds now generate a full HTML file for every page route instead of a single SPA shell. Your site works on any static host without rewrite rules or fallback configuration. SEO improvements: static builds now generate robots.txt, sitemap.xml, Open Graph and Twitter Card meta tags, canonical URLs, and JSON-LD structured data automatically. See Search and SEO. Accordion group component: a new wc-accordion-group component visually connects adjacent accordions into a unified group with shared borders. Custom 404 page: navigating to a non-existent page now shows a styled error page with a search button and a link back to your docs. Sidebar keyboard navigation: arrow keys, Home, End, Enter, and Escape now work in the sidebar filter for fast navigation without a mouse. Expanded import detection: the import tool now recognizes 11 documentation frameworks including Docusaurus, MkDocs, Sphinx, ReadMe, VuePress, VitePress, Starlight, and Nextra, in addition to Mintlify, Fern, and GitBook. Import versioning: importing a Mintlify project with multiple versions now offers four strategies: branch-based versioning, keep only latest, merge all versions, or skip for manual setup. Icon support: built-in Lucide icons are available via wc-icon, and Font Awesome icons from imported projects are fetched from CDN and rendered inline. Nested page IDs: page slugs in docslit.json now support folder paths (e.g., getting-started/introduction) for organizing pages in subdirectories. Accessibility improvements: skip-to-content link, focus traps in search, prefers-reduced-motion and prefers-contrast support, ARIA tab patterns with arrow key navigation, visible focus indicators, and semantic landmarks across all components. Search result navigation no longer stacks path segments on nested page IDs. Web components are no longer stripped during client-side navigation. Tiles grid layout no longer overlaps when using auto-fill columns.

0.1.5

Client-side Markdown rendering: published sites now fetch and render Markdown in the browser, so pages load without a server-side rendering step. llms.txt improvements: generated llms.txt files now include clearer instructions showing where to fetch raw Markdown for each page. Import resilience: the import tool now handles malformed frontmatter, invalid YAML, and inline JSX expressions without crashing.

Earlier releases

  • Fixed padding in tabbed panels, file tree lines, highlighted filenames in light mode, and inline anchor layout
  • Shareable anchor links — clicking any heading in the "On this page" sidebar updates the URL so you can copy and share a direct link to any section
  • Security hardening for the dev server and auth token storage
  • DocsLit is now open source under the AGPL-3.0 license
  • Free for personal and open source projects — the docs you generate are always yours
  • Cards and tiles now support icons via the iconName attribute
  • Dark and light mode works across all components — switching themes updates everything instantly
  • Mobile sidebar with hamburger menu, slide-in overlay, and tap-outside-to-close
  • Browser back/forward button works correctly when navigating between pages
  • Lit vendor bundles ship locally — no CDN requests, fully offline capable
  • Code blocks display source text correctly — no more disappearing angle brackets
  • New components: file trees, visual trees, download buttons, copy-to-clipboard, anchor links, and version badges
  • Built-in preview server for browsing component examples locally

The first public release of DocsLit with:

  • Markdown rendering with web component preservation
  • 39 built-in Lit web components
  • Dev server with hot reload
  • Static site builder
  • Offline single-file builds
  • Mintlify, Fern, and GitBook migration
  • Project validation
  • DocsLit Cloud deployment