Sabo - minimal Python site builder framework
Project description
Sabo — Static Site Composer
Sabo — это локальный Python-framework для декларативной сборки статических фронтенд-проектов на основе JSON-описания.
Он позволяет описывать структуру сайта как модель данных, после чего автоматически генерировать готовую HTML-структуру через встроенный механизм сборки.
Проект ориентирован на:
разработчиков, которым нужен лёгкий статический генератор
прототипирование UI-структур
автоматизированную сборку шаблонных проектов
расширяемую архитектуру на Python
Архитектура проекта Sabo/ ├── sabo/ # основной пакет фреймворка │ ├── init.py │ ├── core/ # ядро системы │ │ └── init.py │ ├── models/ # модели данных проекта │ │ ├── init.py │ │ ├── component.py │ │ ├── page.py │ │ └── project.py │ ├── builder/ # логика сборки сайта │ │ ├── init.py │ │ └── site_builder.py │ └── utils/ # вспомогательные утилиты │ └── init.py │ ├── sabo.py # CLI-интерфейс (точка входа) ├── pyproject.toml # конфигурация пакета и entry point ├── primer.json # пример конфигурации проекта └── templates/ # директория шаблонов (если используется) Основные компоненты
- CLI (sabo.py)
CLI отвечает за:
обработку команд (например, build)
загрузку JSON-конфигурации проекта
инициализацию моделей
вызов билдера
При установке через pip install sabo создаётся системная команда:
sabo
Пример использования:
sabo build primer.json 2. Модели (models/)
Модели представляют внутреннюю структуру проекта:
Project — корневой объект проекта
Page — страница сайта
Component — переиспользуемый UI-элемент
JSON-файл описывает структуру проекта, которая затем преобразуется в Python-модели.
- Builder (builder/site_builder.py)
SiteBuilder отвечает за:
обход структуры проекта
генерацию HTML
организацию выходной директории
управление процессом сборки
Это основной исполнительный слой фреймворка.
- Core
Ядро содержит базовые механизмы и абстракции, на которых строится архитектура.
- Utils
Вспомогательные функции, не относящиеся напрямую к доменной логике.
Принцип работы
Разработчик создаёт JSON-описание проекта.
CLI загружает конфигурацию.
JSON преобразуется в модель Project.
SiteBuilder генерирует структуру сайта.
На выходе получается готовая статическая сборка.
Установка Через pip (рекомендуется) pip install sabo
После установки доступна глобальная команда:
sabo Локальный запуск (без установки) git clone cd Sabo .\sabo.bat build primer.json
или:
python sabo.py build primer.json Пример использования sabo build primer.json
Где primer.json — описание проекта:
{ "name": "My Project", "pages": [ { "name": "index", "components": [] } ] } Ключевые особенности
Минималистичная архитектура
Декларативное описание проекта
Расширяемая модель компонентов
Чёткое разделение:
моделей
логики сборки
CLI
Простая интеграция в Python-экосистему
Поддержка установки как полноценного CLI-инструмента
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sabo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sabo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0636de98c7d7fde61e75cc78df00f8b0f2ec3b6daca635e4a6f60d76443621aa
|
|
| MD5 |
3be0c02568dcea92f9c1bea6ba09f2f6
|
|
| BLAKE2b-256 |
f73f081f926c7e2f6dfefb80ef5f012bd2b9807bef6f3cad3a3b87dc7a096524
|