Skip to main content

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/ # директория шаблонов (если используется) Основные компоненты

  1. CLI (sabo.py)

CLI отвечает за:

обработку команд (например, build)

загрузку JSON-конфигурации проекта

инициализацию моделей

вызов билдера

При установке через pip install sabo создаётся системная команда:

sabo

Пример использования:

sabo build primer.json 2. Модели (models/)

Модели представляют внутреннюю структуру проекта:

Project — корневой объект проекта

Page — страница сайта

Component — переиспользуемый UI-элемент

JSON-файл описывает структуру проекта, которая затем преобразуется в Python-модели.

  1. Builder (builder/site_builder.py)

SiteBuilder отвечает за:

обход структуры проекта

генерацию HTML

организацию выходной директории

управление процессом сборки

Это основной исполнительный слой фреймворка.

  1. Core

Ядро содержит базовые механизмы и абстракции, на которых строится архитектура.

  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sabo-0.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

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

Hashes for sabo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0636de98c7d7fde61e75cc78df00f8b0f2ec3b6daca635e4a6f60d76443621aa
MD5 3be0c02568dcea92f9c1bea6ba09f2f6
BLAKE2b-256 f73f081f926c7e2f6dfefb80ef5f012bd2b9807bef6f3cad3a3b87dc7a096524

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page