Froggy-BLCКнижная Система Сайта


Froggy-BLC (Book-Like CMS)

 λ++
λ λ 

Froggy-BLC — это уникальная система управления сайтом, ориентированная на строгую и логичную древовидную структуру как статей, так и комментариев. Её философия близка к устройству книги по C++, но с гибкостью, позволяющей использовать систему как для технической документации, так и для персонального блога или домашнего сайта. Froggy-BLC — Академическая разработка.

 

 

Структура и подход

Вид послеустановочного мастера.
Вид послеустановочного мастера.

Главная особенность Froggy-BLC — организация контента по иерархической древовидной модели. Статьи представляют собой узлы, структурированные как главы и параграфы в книге. Эта модель легко адаптируется под любые нужды:

  • 📚 Книга по C++ — статьи становятся главами, подразделами и параграфами.
  • 🧭 Гайды и статьи — древовидная структура служит навигацией.
  • 📸 Личный сайт — каждая категория может быть разделом: рецепты, котик, заметки и т.д.
  • 🕓 Блог — каждый день — это статья; год, месяц, неделя — уровни структуры (С возможностью публикации вступлений и предисловий).

 

🔧 Используемые компоненты

Вид Админ-Панели.
Вид Админ-Панели.

Система Froggy-BLC построена на принципе лёгкости и автономности, но при этом использует несколько тщательно отобранных сторонних компонентов, чтобы усилить функциональность без излишней зависимости от фреймворков. Все компоненты интегрированы с учётом производительности и безопасности.

  • 🔍 Simple HTML DOM — лёгкая библиотека для парсинга и модификации HTML-фрагментов с возможностью поиска элементов по CSS-селекторам. Используется в Шаблонах и Сниппетах.
  • 📱 PHP Mobile Detect — определяет тип устройства (мобильное/планшет/десктоп) по заголовкам User-Agent. Служит для адаптации шаблонов и CSS без использования JavaScript.
  • 🧼 HTMLPurifier — библиотека для глубокой фильтрации и нормализации HTML. Гарантирует соответствие XHTML 1.1 и защищает от XSS-атак, обрезая опасные теги и атрибуты.
  • ✍️ CKEditor 4 — визуальный редактор, интегрированный в систему с жёсткой настройкой допустимого HTML. Обеспечивает удобное редактирование контента с учётом пользовательских прав.
  • 🌈 Highlight.js — библиотека JavaScript для подсветки синтаксиса в блоках кода. Работает на клиентской стороне и поддерживает десятки языков программирования, конфигурации и разметки.
  • 📝 RevisionMe — встраиваемая форма обратной связи для отправки замечаний, предложений или исправлений. Позволяет читателям мгновенно сообщать об опечатках, фактических неточностях и других мелочах, не покидая страницы. Упрощает редакторский процесс и повышает качество контента.
  • 🖼️ Lightbox — лёгкий JavaScript-плагин для увеличенного просмотра изображений. Позволяет удобно открывать картинки в модальном окне с затемнением фона. Используется в статьях и галерее, автоматически активируется для всех элементов изображений.

Эти компоненты выбраны за их стабильность, открытый исходный код и возможность тонкой настройки. Каждый из них выполняет строго ограниченную задачу, соответствуя философии минимализма и контроля, лежащей в основе Froggy-BLC.

 

Характеристики

  • Файловая архитектура — не требует базы данных. Это делает систему переносимой.
  • Поддержка до 10 000 статей — благодаря оптимизациям и кешированию промежуточных данных.
  • Комментарии в виде дерева — как в LiveJournal, что даёт живость и логическую связность обсуждениям.
  • Экономия ресурсов — продуманные решения по минимизации потребления оперативной памяти и CPU.
  • Fail-safe поведение — защита от потери данных при авариях, особенно в файловых операциях.
  • Поддержка мобильных устройств — автоматическая адаптация шаблонов под смартфоны.

 

Кеширование и производительность

Система активно использует промежуточное кеширование HTML и метаданных. Это снижает нагрузку при чтении, особенно при больших объёмах. Обновление кеша происходит при действиях администратора (добавление, редактирование, удаление), что делает повседневный просмотр быстрым и надёжным.

 

Безопасность и надёжность

Froggy-BLC демонстрирует нестандартно вдумчивый подход к безопасности, особенно в области работы с сессиями, хэшированием и защитой от сбоев.

🔐 Сессии, привязанные к IP

Система использует жёсткую привязку сессии к IP-адресу, что снижает вероятность сессионных атак типа session hijacking. Пользовательская сессия становится недействительной при смене IP, что повышает надёжность на уровне авторизации. Такая мера особенно уместна в среде с фиксированными или доверенными IP.

🧂 Уникальное хэширование с динамической солью

В системе реализован кастомный механизм солёного хэширования паролей, построенный на SHA-512 с XOR-добавкой, зависящей от имени пользователя. Это усложняет перебор, исключает возможность повторного хэша для одинаковых паролей и защищает от предсказуемых rainbow-таблиц.

📛 Защита от утечек и XSS в случае сбоев

Даже при возникновении DeadLock-ситуаций или аварийных остановках, Froggy-BLC умеет корректно завершать операции и не теряет промежуточные данные. Более того, при выводе HTML-сообщений об ошибках (интерфейс восстановления данных) исключается внедрение вредоносного кода — благодаря экранированию.

📂 Fail-Safe файловые операции

Работа с файлами сопровождается Сегментированными Чтением/Записью в Копию Базы Данных, блокировками, тайм-аутами, контролем прерываний (через ignore_user_abort(true)), что сводит к минимуму риск повреждения данных при сбоях, обрывах соединения и конфликтном доступе. Это особенно важно для CMS, построенной без СУБД. Даже если запись завершится с ошибкой — БД не пострадает, так-как запись шла в новый файл, а все файловые операции в системеснабжены исключениями и безопасной остановкой при ошибках открытия/чтения/записи.

🔒 Защита от Повторов Капчи и Её Обхода

Система Froggy-BLC реализует защиту от отключения и повторного прохождения CAPTCHA, исключая возможность многократной отправки одной и той же капчи или её обхода. Проверка выполняется строго один раз — при успешном вводе, капча сохраняется в список повторов и становится недействительной.

Сессионный код капчи жёстко привязывается к IP-адресу пользователя, что значительно снижает риск автоматического обхода с использованием внешних сервисов или прокси-сетей.

Кроме того, при авторизации зарегистрированных пользователей капча автоматически отключается, чтобы не мешать удобной отправке Комментариев. Это делает систему более дружелюбной для постоянных посетителей, не снижая уровень безопасности для анонимного комментирования.

 

 

🌐 Человекопонятные URL'ы (Human-Readable URLs)

🔧 Froggy-BLC использует эмуляцию Apache mod_rewrite путём разбора QUERY_STRING, что позволяет формировать чистые, читаемые адреса без необходимости использования .htaccess или специальных серверных модулей. Такой подход обеспечивает совместимость даже с нестандартными или ограниченными хостингами.

  • 🔒 Стабильность: работает независимо от веб-сервера и его настроек.
  • 🛡️ Безопасность: не требует серверных переадресаций или уязвимых конфигураций.
  • 👁️‍🗨️ Удобство: адреса легко читаются, копируются и передаются.

🗺️ Генерация sitemap.txt и sitemap.xml

Система Froggy-BLC автоматически создаёт два вида карт сайта, которые помогают поисковым системам быстрее и точнее индексировать ваш контент:

  • 📄 sitemap.txt — простой текстовый список всех ссылок на статьи. Этот формат поддерживается такими поисковиками, как Bing, и легко читается человеком. Каждая строка содержит отдельный URL. Генерация происходит при обновлении кэша структуры сайта.
  • 🧩 sitemap.xml — расширенная XML-версия карты сайта, совместимая с Google и другими поисковыми системами. Помимо ссылок, содержит дату последнего изменения. Эта карта создаётся динамически и содержит XSLT-стиль для человекопонятного отображения.

Карты сайта обновляются автоматически при изменении или добавлении статей, обеспечивая актуальность информации для поисковых ботов. Это улучшает SEO и снижает вероятность пропуска страниц при индексации.

🔗 Постоянные ссылки (Permalinks)

Все статьи в системе Froggy-BLC снабжаются уникальными постоянными ссылками (permalinks), которые остаются неизменными даже при изменении заголовков или структуры контента.

Эти ссылки автоматически включаются в страницы, как закладки (Bookmarks).

Благодаря такой структуре URL, Froggy-BLC обеспечивает устойчивость адресов для копирования.

Эти ссылки так же легко копируются нажатием 🔗 в верхней части страницы, в текстовом пути, над статьёй.

 

 

🛠️ Панель Инструментов

Панель инструментов в Froggy-BLC — это удобный набор функций, размещённый в виде наглядных иконок в верхней части страницы. Она обеспечивает быстрый доступ к ряду полезных возможностей:

  • 🖨️ Версия для печати: ссылка с иконкой открывает оптимизированный для печати вариант статьи, без навигации и отвлекающих элементов.
  • 📁 Список Файлов: позволяет просматривать загруженные на сайт документы. Каждый файл сопровождается кнопкой 🔗 для автоматического копирования ссылки, которую можно вставить в текст статьи или комментарий.
  • 🖼️ Галерея: аналогично списку файлов, здесь отображаются изображения. Их ссылки также легко копируются одним нажатием.

🔐 Редакторы и Администраторы имеют возможность загружать небольшие безопасные файлы (например, PDF, TXT) и изображения (JPG, PNG, GIF, WEBP) через встроенный интерфейс. Все загруженные материалы проходят проверку расширения и фильтрацию, исключающую потенциально опасные форматы.

📎 Эти инструменты делают публикацию материалов в системе максимально удобной, а ссылки — стабильными и безопасными для использования на страницах сайта.

 

Гибкость применения

Froggy-BLC — это не просто CMS. Это конструктор смысловых структур. Она идеально подойдёт:

  • для технических энциклопедий и документации,
  • для ведения дневника или блога,
  • для небольших порталов с гайдами и советами,
  • для проектов, которым важна автономность и предсказуемость поведения без серверных СУБД.

 

🎨 Поддержка шаблонов оформления и 🧩 модулей (Addons)

Froggy-BLC предоставляет мощную и при этом простую систему оформления и расширения возможностей:

  • 🎨 Шаблоны (Templates)
    Шаблоны представляют собой полноценные макеты сайта, определяющие структуру и стили всех страниц. Они расположены в папке /TEMPLATES/ и могут включать шапку, подвал, навигацию и динамические блоки. Это позволяет быстро сменить дизайн без изменения содержимого статей или логики системы.
  • 🧩 Модули (Addons)
    Система поддерживает независимые расширения (дополнения), которые размещаются в папке /ADDONS/. Каждый модуль может подключаться к определённым хукам.

Такой подход разделяет оформление, функциональность и контент, упрощая поддержку, настройку и расширение сайта.

 

⚙️ Управление кэшем ресурсов

В системе реализован автоматический сброс кэша для JavaScript и CSS файлов при их обновлении. Это позволяет гарантировать, что пользователи всегда загружают актуальные версии скриптов и стилей без необходимости вручную очищать браузерный кэш.

 

Формат данных и безопасность HTML-контента

Froggy-BLC использует особый подход к обработке и хранению данных, опирающийся на фильтрованный XHTML 1.1 как внутренний формат представления контента.

📄 XHTML без обёртки

Система сохраняет только внутреннее содержимое HTML-документа, отбрасывая внешние теги вроде <html>, <head>, <body>. В результате данные представляют собой чистый структурированный фрагмент контента, пригодный для встраивания в шаблоны. (Без корневых тегов структуры страницы.)

🚫 Защита от XSS

Перед сохранением контент проходит жёсткую фильтрацию HTML:

  • Удаляются потенциально опасные теги, такие как <script>, <iframe>, <style>, <object> и др.
  • Удаляются атрибуты, содержащие JavaScript (например onclick, onerror, onmouseover и пр.)
  • Оставляются только безопасные элементы контента: заголовки, абзацы, списки, таблицы, изображения, цитаты, ссылки, разделители и блоки кода.
  • Все теги приводятся к строгому XHTML-1.1 с самозакрывающимися элементами, где это применимо.

Это гарантирует, что даже при публикации HTML от пользователей система остаётся устойчивой к XSS-атакам.

👥 Разграничение доступа к HTML

Права на публикацию HTML-контента тонко разделены:

  • Гости могут писать только текстовые комментарии.
  • Зарегистрированные пользователи и Админы могут использовать расширенный набор тегов для оформления комментариев: вставка таблиц, изображений, разделителей, а также публикация блоков кода с подсветкой синтаксиса.

🎥 Видео, цитаты и спойлеры

Система поддерживает встраиваемые шаблоны для популярных видеосервисов (YouTube, Dailymotion, Vimeo), которые автоматически преобразуются в безопасные фреймы. Также доступны:

  • Цитаты — с визуальным оформлением и указанием источника или автора;
  • "Фоторамки" — рамка изображения с подписью, при наличии описания в alt=" "
  • Спойлеры — сворачиваемые блоки для скрытия длинного текста или ответов;
  • Инфобоксы — семантически правильные цветные блоки для выделения дополнительной информации, например:
    • 🔵 Инфо — для кратких пояснений и дополнений;
    • 🟢 Нотация — для примечаний к содержимому или особенностям использования;
    • 🟡 Предупреждение — мягкая пометка об осторожности;
    • 🔴 Риск — подчёркивает, что действия выполняются на ваш страх и риск.
  • HTML-вставки — изображения, ссылки, таблицы, горизонтальные линии, списки и т.д.

🧠 Поддержка кода с подсветкой

Система поддерживает сниппеты различных типов кодов для подсветки синтаксиса (HTML, CSS, JavaScript, C++, Python, Bash, конфиги, markdown и т.д.). Это делает Froggy-BLC особенно удобной для технических блогов, гайдов и книг.

 

 

✍️ Интеграция с настроенным CKEditor 4

Froggy-BLC включает в себя тонко настроенную версию CKEditor 4 — визуального редактора, адаптированного под требования гибкости движка. Редактор ограничен только безопасными элементами и атрибутами, совместимыми с внутренним XHTML-подформатом системы.

Ключевые особенности настройки:

  • Удалены кнопки вставки Форм и экспорта в PDF.
  • Встроены кастомные пресеты вставки цитат и блоков спойлеров.
  • Добавлена кнопка вставки кода с выбором языка для подсветки синтаксиса.
  • Интегрированы стили элементов форматирования и разметки.
  • Размер Шрифта указывается в em.
  • Уникальный конфиг редактора, расширяющий возможности, нацеленный на простоту и исключающий ошибки работы.

Таким образом, CKEditor в Froggy-BLC не просто редактор, а интегрированная часть системы с соблюдением её философии чистоты разметки и семантики.

 

Вывод

Froggy-BLC — это пример минималистичного и в то же время мощного подхода к управлению знаниями и контентом. Она объединяет философию KISS, надёжность файловых структур и логичную древовидную модель представления данных.

Если вы ищете систему, в которой всё под контролем, где структура данных наглядна — Froggy-BLC станет вашим надёжным выбором.

 

Лицензии используемых Компонентов

  • Simple HTML DOM
    Лицензия: MIT License
    Автор: S.C. Chen
    Свободное использование, модификация и распространение при сохранении уведомления об авторских правах.
  • PHP Mobile Detect
    Лицензия: MIT License
    Авторы: Victor Stanciu и Serban Ghita
    Можно использовать в любых проектах, включая коммерческие, без ограничений.
  • HTMLPurifier
    Лицензия: LGPL v2.1 или новее
    Автор: Edward Z. Yang
    Разрешено коммерческое использование. Изменения в библиотеке должны быть доступны при распространении.
  • CKEditor 4
    Лицензия: GPL, LGPL или MPL (на выбор)
    Разработка: CKSource
    Для использования в закрытых проектах рекомендуется LGPL или коммерческая лицензия.
  • Highlight.js
    Лицензия: BSD 3-Clause License
    Автор: Ivan Sagalaev и сообщество
    Можно использовать в любых проектах, включая проприетарные. Требуется сохранить уведомление об авторстве.
  • Материалы из Stack Overflow и учебников
    Лицензия: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
    Разрешено копирование и перераспространение при условии указания авторства и распространения на тех же условиях.
  • RevisionMe (форма обратной связи)
    Сервис: revisionme.com
    Назначение: виджет для отправки замечаний и предложений по содержимому сайта (исправление ошибок, опечаток и пр.)
    Лицензия: используется как SaaS-сервис, согласно Terms of Service
  • Лицензия самой Системы Froggy-BLC
    Лицензия: MIT License
    Автор: Святослав Тимофеев (Trust / Set440 / Paulter Gates)
    Свободное использование, модификация и распространение при сохранении уведомления об авторских правах.

КОММЕНТАРИИ



Ваш комментарий:

Интервал отправки = 3 Минуты.

2500 Осталось.
CAPTCHA🔄