Aller au contenu
← Retour aux projets

Filament Documentation

Version : v3 v4 v5 · branch: 3.x

Filament Documentation

#Filament Documentation Plugin

Buy Me A Coffee

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status

A Filament plugin to add markdown-based documentation directly inside your admin panel. Inspired by nova-documentation.

#Features

  • Read .md files 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 .md links 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-home docs-home
Docs installation docs-installation docs-installation
Docs configuration docs-configuration docs-configuration
Docs advanced docs-advanced 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.

Nouvelle version disponible.