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.

 

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

  • Файловая архитектура — не требует базы данных. Это делает систему переносимой.
  • Поддержка до 8 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, построенной без СУБД. Даже если запись завершится с ошибкой — БД не пострадает, так-как запись шла в новый файл, а все файловые операции в системе — снабжены исключениями и безопасной остановкой при ошибках открытия/чтения/записи.

Плюс к тому, запись каждого «Писателя» ведётся в свой собственный уникальный $PID, и при проигранном конфликте конкурентной кооперативной записи — проигравшему «Писателю» выводится форма восстановления данных, из которой  можно скопировать контент чтобы его не потерять.

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

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

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

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

 

 

🅰️ Типографика и «Кавычкер»

Типографика “как в книге” + кавычкер: система автоматически приводит текст к аккуратному виду (кавычки «ёлочки», корректные тире, неразрывные пробелы). Кавычкер конвертирует " и &quot;«…» с учётом вложенности HTML-тегов (стек), корректно обрабатывая void/self-closing теги (<br />, <hr />). При этом содержимое <code> заранее защищается плейсхолдерами (например " -- " и кавычки) и восстанавливается после типографирования — примеры кода не ломаются.

🌐 Человекопонятные 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 и другими поисковыми системами. Помимо ссылок, содержит дату последнего изменения. Эта карта создаётся динамически и содержит CSS-стиль для человекопонятного отображения.

Карты сайта обновляются автоматически при изменении или добавлении статей, обеспечивая актуальность информации для поисковых ботов. Это улучшает 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)
    Свободное использование, модификация и распространение при сохранении уведомления об авторских правах.

 

DOWNLOAD / СКАЧАТЬ / Github

https://github.com/t14462/Froggy-BLC

 

КОММЕНТАРИИ



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

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

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