Статическая вики по архитектуре личного сайта фактов: статьи пишутся в админке, а затем собираются в готовые HTML-файлы и раздаются без PHP на продуктиве.
Проект основан на форке LibArea/Sugata, переработан под энциклопедическую модель: история версий, авто-ссылки между статьями, обратные ссылки и проверка битых ссылок.
- Статическая сборка каждой статьи в
{категория}/{slug}.html+ категории вindex.html/page-N.html,sitemap.xml, общий подвалfooter.shtml. - Инкрементальная пересборка — обновляются только изменённые факты и зависящие от них категории/главная.
- История версий — снимок состояния до каждой правки (контент, slug, метаданные), просмотр версии и откат на любую из них.
- Авто-ссылки
[[Термин]]— вики-разметка: резолвится в синюю ссылку при однозначном совпадении, в красную на создание — если статьи нет (в админке/превью). - Обратные ссылки «Сюда ссылаются» — список статей, ссылающихся на текущую.
- Проверка битых ссылок — отчёт о битых
[текст](/url)и несозданных[[Термин]]. - Поиск с морфологией русского/английского (S2\Rose, стеммер Porter).
- Разметка CommonMark (+ GFM-расширения: таблицы, сноски, чекбоксы, зачёркивание) с экранированием опасного HTML.
- PHP 8.2+
- MySQL 8 / MariaDB 10.2.2+
- Фреймворк HLEB (2.x)
- Парсер league/commonmark (CommonMark/GFM)
- Поиск S2\Rose
config/ настройки (general, database, main, meta...)
routes/map.php маршруты (админка + предпросмотр)
app/
Controllers/ контроллеры (сборка, статьи, история, откаты...)
Models/ работа с БД (ItemModel, VersionModel, BacklinkModel...)
Content/ Parser (CommonMark + вики-ссылки), Html, Meta, Img, Validator
helpers.php глобальные функции
resources/views/ шаблоны (админка, сайт, общие компоненты)
public/ точка входа, ассеты (собираются в статику)
scripts/dev.sql схема БД и тестовые данные
wiki-view.local/ РЕЗУЛЬТАТ сборки (статический сайт)
composer install- Создайте базу и импортируйте схему:
scripts/dev.sql(включает структуру и тестовые данные). - Задайте подключение в
config/database.php(илиconfig/database-local.php). - Настройте
config/general.php:url(админка),url_html(публичный адрес статики),path_html(папка сборки). - Запустите веб-сервер на папку
public/.
- Администратор:
ss@sdf.ru/qwer14qwer14 - Пользователь:
test@test.ru/test@test.ru
Админка: https://<url>/mod/admin/
В админке (меню Инструменты / Tools) последовательно:
- Перестроить ресурсы — собрать CSS/JS (Minify) из исходников.
- Пути категорий — пересчитать
facet_path. - Создать каталог — папки категорий.
- Собрать HTML-страницы категорий —
index.html/page-N.htmlкаждой категории. - Собрать HTML-страницы фактов — каждая статья в свой
.html. - Обновить индекс поиска — пересоздать морфологический индекс.
- Sitemap — сгенерировать
sitemap.xml. - Проверить источники/битые ссылки — HEAD-проверка источников и сканирование битых/несозданных ссылок.
Инкрементальная сборка — пересобирает только изменённые факты и зависимые категории/главную; полезно после правок, когда полная пересборка не нужна.
Внутри статей поддерживаются оба способа связывания:
| Синтаксис | Результат |
|---|---|
[[Дзогчен]] |
Авто-ссылка. Однозначное совпадение → синяя; нет/неоднозначно → красная (в админке) |
[[Текст|Дзогчен]] |
То же, но с произвольным текстом ссылки |
[[Текст|/путь/slug.html]] |
Явная точная ссылка на конкретный URL |
[текст](/путь/slug.html) |
Обычная markdown-ссылка (не проверяется движком) |
:::{.foto} … ::: |
Блок-контейнер с классом (фото с подписью, примечания) |
[^1] и [^1]: текст |
Сноски (собираются в блок «Примечания») |
Красные и битые ссылки собираются в отчёте Битые ссылки (/mod/admin/broken-links).
items— факты/статьи/страницы.facets,facets_items_relation— дерево категорий и связь статей с категориями.item_history— история версий (снимок до каждой правки; откаты и просмотр).item_relations— ручная связь «похожие статьи» (в обе стороны).sources,article_sources— источники фактов и их привязка.broken_links— отчёт о битых/несозданных ссылках.item_faq— блоки «вопрос–ответ».users— пользователи и права.
MIT. См. LICENSE.

