Laradocs — це пакет Laravel, який дозволяє розгортати сайт документації безпосередньо з markdown-файлів вашого проєкту. Ви пишете документацію поруч із кодом, комітите їх разом, а Laradocs рендерить результат за адресою /docs зі зручною навігацією, метаданими для SEO та адаптивним інтерфейсом.
- Багаторівнева структура — вкладені папки автоматично перетворюються на розділи навігації.
- Гнучкий роутинг — шлях до сторінки визначається назвою файлу або полем slug у front-matter.
- Markdown → HTML — на базі CommonMark (підтримка GFM, таблиць, виносок тощо).
- Розширені метадані — підтримка полів title, description, order, hidden, group, badge, redirect, tags та інших.
- Сучасний UI — адаптивний дизайн, темна тема, бічна панель, breadcrumbs, автоматичний зміст сторінки та кнопки навігації. Усе можна налаштувати під себе.
- Розумне кешування — відрендерений HTML кешується та автоматично оновлюється під час зміни файлів.
# Структура папок як основа навігації
Laradocs будує бічну панель на основі вашої структури директорій. Вкладені папки стають розділами, а файл _index.md слугує головною сторінкою розділу. Роутинг за замовчуванням відповідає назвам файлів, проте ви можете змінити URL-адресу за допомогою поля slug у front-matter.
Створити нову сторінку можна за допомогою Artisan-команди:
php artisan make:doc guide/getting-started --title="Getting Started" --order=1
# Метадані Front-Matter
Кожна сторінка містить метадані у форматі YAML front-matter, що керують її відображенням у навігації та результатах пошуку:
---
title: Getting Started
description: Install and configure the app.
order: 1
group: Basics
---
Пакет підтримує поля title, description, order, hidden, group, badge, redirect, tags та slug. Тексти обробляються через CommonMark з підтримкою GitHub-flavored markdown, таблиць, виносок та callout-блоків у стилі GitHub:
> [!TIP]
> Папки стають розділами бічної панелі, а `_index.md` — головною сторінкою розділу.
# Змінні та макроси для повторного використання
Щоб уникнути дублювання значень, Laradocs дозволяє реєструвати спільні змінні та макроси через service provider. Змінні вставляються в markdown через синтаксис {{ value }}, а макроси рендеряться за допомогою блоку @docs():
use PeteBishwhip\Laradocs\Facades\Laradocs;
Laradocs::variables(fn () => ['version' => '1.0.0']);
Laradocs::share('app_name', config('app.name'));
Laradocs::macro('tweet', fn (array $args) => "<a href=\"...\">@{$args['user']}</a>");
# SEO, кешування та вивід
Сторінки автоматично отримують meta-теги, Open Graph, Twitter card та JSON-LD. Також генерується sitemap за адресою {prefix}/sitemap.xml. Laradocs кешує готові сторінки та оновлює кеш, якщо вихідні файли змінилися. Ви також можете прогріти кеш заздалегідь або очистити його вручну:
php artisan laradocs:cache
php artisan laradocs:clear
Пакет потребує PHP 8.2+ та підтримує Laravel 11, 12 і 13. Дізнатися більше можна на сайті Laradocs або в репозиторії на GitHub.