mrpunyapal/docsmith
Docsmith builds static documentation sites from Markdown with zero frontend setup. It offers searchable sidebar navigation, syntax-highlighted code with copy buttons, an optional table of contents, and generated search index, sitemap, and .nojekyll files for GitHub Pages.
index.html when one exists, otherwise to the first page inside that directory (respecting frontmatter order / navigation sort) instead of linking to a page that was never generated.navigationOrder(array $order) — configure the sidebar page sequence. Entries match a page title, sidebar_label, relative Markdown path, or output path (case-insensitive); unlisted pages keep their existing order. Wired through Builder → SiteMetadata → SiteBuilder (incl. versioned builds).showDocsmithBadge()) with aria-label="Built with DocSmith"..doc-body table { display: block; overflow-x: auto }; tables scroll internally instead of breaking the layout.overflow-wrap: anywhere on .doc-body, .doc-head, .hero; mobile .shell uses minmax(0, 1fr). Zero horizontal overflow verified at 320/390/768 px (<pre> still scrolls internally).:focus-visible ring, press scale, icon-only everywhere..table-scroll containers server-side (CommonMarkRenderer::wrapTables()).#0f172a base / #1e293b accents / #94a3b8 muted / #334155 divider).sortNavigationDocuments() (docblock formatting, typed casts); Rector cleanup.showDocsmithBadge() builder option).og:image handling for subpath base URLs.ogGeneratedPerPage(), ogTemplate(), captureOg() support..gitattributes / .gitignore updated for /docs and /node_modules.laravel/pao added to require-dev.bin/docsmith CLI command.llms.txt / llms-full.txt export for versioned builds.composer.lock added to .gitignore.baseUrl and preserve the current page; default (no versions) builds to root without duplication.⌘K) with live results, "1 character" minimum, and fixed reopen/close loop bugs.llmsExport() generates llms.txt, llms-full.txt, and a plain-Markdown export page.hidden support — pages marked hidden are excluded from the site/nav.->hub(). Each entry gets a single dropdown option mounted at /{slug}/; the root forwards to the first entry. A hub entry may embed its own versions list: it stays one dropdown item while its pages carry v1/v2 pills.docsmith.sources.php manifest and docsmith sync / build --sync. Implemented on top of mrpunyapal/git-reader, a standalone read-only Git smart-HTTP client (protocol v0, shallow deepen 1 fetches, streaming packfile parser with ofs/ref delta support): no provider APIs, no system git binary, no clones, works with GitHub/GitLab/Bitbucket/Gitea/self-hosted over plain HTTPS. Includes ref resolution (branch/tag/annotated-tag peel/tip SHA), SHA-keyed incremental sync via docsmith.sources.lock.json, atomic staging materialization with path-traversal/symlink/device-name guards, size & file-count budgets, typed error taxonomy, and a deterministic offline wire-protocol test suite.navigation key with fallback to global ->navigationOrder(); versioned builds are fully decoupled from hub builds internally..hub-switcher / .hub-select (data-docsmith-hub-*) so hub and version markup are named after their own features.assets/app.css / assets/app.js consistently across single-site, versioned, and hub builds.app.js / app.css forever because assets were only copied when the output assets/ directory did not exist. Root assets now refresh on every build.How can I help you explore Laravel packages today?