API документация
Документация по классам и методам движка.
Класс DocsEngine
Основной класс для работы с документацией.
Методы
__construct()
Инициализирует движок документации.
`php
$engine = new DocsEngine();
`
render($page)
Рендерит страницу документации.
Параметры:
$page (string) - имя страницы или путь к файлу
Пример:
`php
$engine->render('installation');
// Отобразит docs/installation.md
`
getAllDocs()
Возвращает список всех документов.
Возвращает: array - массив путей к документам
Пример:
`php
$docs = $engine->getAllDocs();
print_r($docs);
`
Защищенные методы
sanitizePath($path)
Очищает путь от опасных символов.
findDocFile($page)
Ищет файл документации.
Извлекает метаданные из Front Matter.
renderTemplate($content, $meta, $currentPage)
Рендерит HTML шаблон.
buildNavigation($currentPage)
Строит навигационное меню.
Класс MarkdownParser
Парсер Markdown в HTML.
Методы
parse($markdown)
Конвертирует Markdown в HTML.
Параметры:
$markdown (string) - текст в формате Markdown
Возвращает: string - HTML код
Пример:
`php
$parser = new MarkdownParser();
$html = $parser->parse('# Hello World');
// Вернет: Hello World
`
Поддерживаемые элементы
- Заголовки (H1-H6)
- Параграфы
- Жирный и курсивный текст
- Ссылки и изображения
- Списки (упорядоченные и неупорядоченные)
- Блоки кода
- Inline код
- Цитаты
- Горизонтальные линии
Конфигурация
Файл config.php содержит настройки:
`php
return [
// Название сайта
'site_name' => 'Документация',
// Описание для SEO
'site_description' => 'Описание',
// Тема оформления
'theme' => 'default',
// Язык
'language' => 'ru',
// Навигация
'navigation' => [
'Название' => 'page-slug',
],
// Показывать ссылку на редактирование
'showeditlink' => true,
// Показывать дату изменения
'showlastmodified' => true,
// Подсветка синтаксиса
'syntax_highlight' => true,
];
`
Константы
Определены в index.php:
`php
// Корневая директория
define('BASE_PATH', DIR);
// Папка с документацией
define('DOCSPATH', BASEPATH . '/docs');
// Папка для кэша
define('CACHEPATH', BASEPATH . '/cache');
`
Расширение функционала
Добавление своего парсера
Создайте класс, наследующий MarkdownParser:
`php
class CustomParser extends MarkdownParser
{
public function parse($markdown)
{
$html = parent::parse($markdown);
// Ваша дополнительная обработка
return $html;
}
}
`
Создание своей темы
- Создайте CSS файл в
assets/css/
- Скопируйте
templates/layout.php
- Настройте в
config.php:
`php
'theme' => 'my-theme',
`
Добавление плагинов
Можно добавить хуки в DocsEngine.php:
`php
// После парсинга
if (functionexists('afterparse_hook')) {
$html = afterparsehook($html);
}
`
Примеры использования
Программный рендеринг
`php
require_once 'src/DocsEngine.php';
require_once 'src/MarkdownParser.php';
$engine = new DocsEngine();
$engine->render('api');
`
Получение списка документов
`php
$engine = new DocsEngine();
$docs = $engine->getAllDocs();
foreach ($docs as $doc) {
echo "- $doc\n";
}
`
Парсинг Markdown
`php
$parser = new MarkdownParser();
$markdown = <<Заголовок
Это пример текста.
MD;
echo $parser->parse($markdown);
`
---
Следующий раздел: FAQ