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.
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/v0.5.1...v0.5.2
First stable release of the 0.3.0 line.
Build several independent documentation sets into one site:
Docsmith::make()->output('docs')->hub([
'package-a' => ['label' => 'Package A', 'source' => 'md/package-a'],
'auth-jobs' => [
'label' => 'Auth Jobs',
'source' => 'md/auth-jobs',
'versions' => [ // optional: one dropdown item, pills inside
['slug' => 'v2', 'label' => 'v2', 'default' => true],
['slug' => 'v1', 'label' => 'v1', 'source' => 'md/auth-jobs-1x'],
],
],
])->build();
Each entry mounts at /{slug}/ with one sidebar dropdown option; the root forwards to the first entry.
The existing versions() feature keeps its contract and gains a pill switcher on every page (replacing the header dropdown) plus per-version sidebar order through a navigation key.
docsmith sync pulls Markdown from any Git host over smart HTTPS: no git binary, no clones, incremental sync via docsmith.sources.lock.json, atomic materialization with safety guards. Private repositories are supported through mrpunyapal/git-reader 0.2: set token => ${ENV_VAR} in docsmith.sources.php, or rely on DOCSMITH_TOKEN / GITHUB_TOKEN fallbacks, or place values in a .env file next to your manifest (real environment variables always win; the .env is loaded automatically during sync and build --sync).
Pre-release of the 0.3.0 feature set.
All three features are independent - each works alone, none depends on another.
index.html when it 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() — configure the sidebar page sequence by matching page title, sidebar_label, relative Markdown path, or output path. Unlisted pages keep their existing order.aria-label on the DocSmith attribution badge.->showDocsmithBadge(false), the showDocsmithBadge: false static API arg, or --no-docsmith-badge on the CLI.Docsmith::editPrefix('md')->build();
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.7...0.1.8
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.6...0.1.7
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.5...0.1.6
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.4...0.1.5
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.3...0.1.4
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.2...0.1.3
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.1...0.1.2
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.1.0...0.1.1
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.0.3...0.1.0
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.0.2...0.0.3
Full Changelog: https://github.com/MrPunyapal/docsmith/compare/0.0.1...0.0.2
Full Changelog: https://github.com/MrPunyapal/docsmith/commits/0.0.1
How can I help you explore Laravel packages today?