Filament Documentation
A Filament plugin to add markdown-based documentation to your admin panel.
#Filament Documentation Plugin
A Filament plugin to add markdown-based documentation directly inside your admin panel. Inspired by nova-documentation.
#Features
- Read
.mdfiles from a configurable directory (resources/docs/) - Parse YAML frontmatter for title, order, and custom path
- Render Markdown with GitHub Flavored Markdown support
- Syntax highlighting via highlight.js with copy-to-clipboard
- Dynamic sidebar with nested directory support (collapsible groups)
- Heading permalinks for deep linking
- Relative
.mdlinks auto-converted to panel routes - Light and dark mode support
- Authorization control via policies
- Configurable cache for parsed content
- Artisan install command (
php artisan docs:install)
#Version Compatibility
| Branch | Filament | Laravel | PHP | Livewire |
|---|---|---|---|---|
| 1.x | 3.x | 10+ | 8.1+ | 3.x |
| 2.x | 4.x | 11+ | 8.2+ | 3.x |
| 3.x | 5.x | 12+ | 8.2+ | 4.x |
#Screenshots
| Screenshot | Light | Dark |
|---|---|---|
| Docs home | ||
| Docs installation | ||
| Docs configuration | ||
| Docs advanced |
#Installation
You can install the package via composer:
composer require jeffersongoncalves/filament-documentation
Optionally, publish the config and example docs:
php artisan docs:install
Or publish individually:
php artisan vendor:publish --tag=filament-documentation-config php artisan vendor:publish --tag=filament-documentation-docs
#Setup
Register the plugin in your PanelProvider:
use JeffersonGoncalves\FilamentDocumentation\FilamentDocumentationPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ FilamentDocumentationPlugin::make() ->slug('docs') ->navigationLabel('Documentation') ->navigationIcon('heroicon-o-book-open') ->navigationGroup('Help') ->navigationSort(99) ->withAuthorization(false), ]); }
#Writing Documentation
Place your .md files in resources/docs/ (configurable via config/filament-documentation.php).
#Frontmatter
Each file supports optional YAML frontmatter:
--- title: "Getting Started" path: home order: 1 ---
| Key | Description |
|---|---|
title |
Page title (overrides first H1) |
path |
Custom URL slug |
order |
Sort order in sidebar |
#Nested Directories
Subdirectories become collapsible groups in the sidebar:
resources/docs/
├── home.md
├── installation.md
├── configuration.md
└── advanced/
├── overview.md
├── authorization.md
└── customization.md
#Relative Links
Link between docs using relative .md paths — they are automatically converted to panel routes:
- [Installation](installation.md) - [Advanced](advanced/overview.md)
#Configuration
// config/filament-documentation.php return [ 'title' => env('DOCS_TITLE', 'Documentation'), 'docs_path' => resource_path('docs'), 'home' => 'home.md', 'cache_minutes' => env('DOCS_CACHE', 10), // 0 to disable 'login_route' => null, ];
#Plugin Options
| Method | Default | Description |
|---|---|---|
slug() |
'docs' |
URL path: /admin/docs |
navigationLabel() |
'Documentation' |
Sidebar label |
navigationIcon() |
heroicon-o-book-open |
Sidebar icon |
navigationGroup() |
null |
Sidebar group |
navigationSort() |
99 |
Sort order |
withAuthorization() |
false |
Require viewDocumentation gate |
#Authorization
Enable authorization to restrict access:
FilamentDocumentationPlugin::make() ->withAuthorization(true)
Then define a gate:
Gate::define('viewDocumentation', function ($user) { return $user->hasRole('admin'); });
#Testing
composer test
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#Contributing
Please see CONTRIBUTING for details.
#Security Vulnerabilities
Please see SECURITY for details.
#Credits
#License
The MIT License (MIT). Please see License File for more information.