Найти в Дзене

Как создать статический сайт без базы данных: простой и элегантный подход с Lua и GTK

Хотите запустить собственный сайт, но не хотите возиться с WordPress, базами данных или хостингом? Есть отличное решение — статический генератор сайтов, который работает только с XML-файлами и HTML-шаблонами. В этой статье расскажу, как легко создавать и управлять контентом сайта с помощью двух бесплатных инструментов: luassg (генератор на Lua) и entity_xml_crud_app (графический редактор на Python + GTK). Видео запуска программы entity_xml_crud_app Что такое статический сайт? Статический сайт — это набор обычных HTML-файлов, которые отдаются браузеру «как есть». Никаких скриптов на сервере, никаких баз данных. Такие сайты: - Быстро загружаются - Безопасны (нет уязвимостей PHP/SQL) - Легко размещаются бесплатно (GitHub Pages, Netlify, Vercel и др.) Но как удобно управлять контентом, если всё вручную править HTML — неудобно? Ответ — генератор статических сайтов. 🧩 Знакомьтесь: luassg — ваш генератор на Lua luassg — это легковесный генератор статических сайтов, написанный на языке Lu

Хотите запустить собственный сайт, но не хотите возиться с WordPress, базами данных или хостингом? Есть отличное решение — статический генератор сайтов, который работает только с XML-файлами и HTML-шаблонами.

В этой статье расскажу, как легко создавать и управлять контентом сайта с помощью двух бесплатных инструментов: luassg (генератор на Lua) и entity_xml_crud_app (графический редактор на Python + GTK).

Видео запуска программы entity_xml_crud_app

Что такое статический сайт?

Статический сайт — это набор обычных HTML-файлов, которые отдаются браузеру «как есть». Никаких скриптов на сервере, никаких баз данных. Такие сайты:

- Быстро загружаются

- Безопасны (нет уязвимостей PHP/SQL)

- Легко размещаются бесплатно (GitHub Pages, Netlify, Vercel и др.)

Но как удобно управлять контентом, если всё вручную править HTML — неудобно? Ответ — генератор статических сайтов.

🧩 Знакомьтесь: luassg — ваш генератор на Lua

luassg — это легковесный генератор статических сайтов, написанный на языке Lua. Он превращает XML-файлы с контентом в готовые HTML-страницы по заданным шаблонам.

Как это работает?

1. Вы создаёте XML-файлы с данными (например, `gallery-uuid.xml`).

2. Пишете HTML-шаблоны (`gallery.html`), в которых используете плейсхолдеры вида `{gallery.title}`.

3. Запускаете `luassg.lua` — и получаете готовый сайт в папке `output/`.

Пример XML-контента:

```xml

<gallery id="123">

<title>Мой котёнок</title>

<description>Очень милый кот</description>

<src>./images/kitten.jpg</src>

</gallery>

```

Пример шаблона:

```html

<h1>{gallery.title}</h1>

<img src="{gallery.src}" alt="{gallery.description}">

```

Результат — готовая HTML-страница с подставленными данными!

Параллельная обработка

Особенно круто, что luassg умеет обрабатывать файлы параллельно! Это ускоряет генерацию даже на слабых компьютерах. Настройка — одна строка в коде: `BATCH_SIZE = 4`.

✏️ Удобное управление контентом: entity_xml_crud_app

Писать XML вручную — не всем по душе. Здесь на помощь приходит Entity XML CRUD Application — десктопная программа с графическим интерфейсом.

Это приложение на Python + GTK3 позволяет:

- Создавать сущности (например, «галерея», «новости», «товары»)

- Добавлять, редактировать и удалять записи через удобные формы

- Автоматически сохранять всё в нужном формате XML, совместимом с luassg

Основные возможности:

- Поддержка однострочных (`oneline`) и многострочных (`multiline`) полей

- Автоматическое создание UUID и правильных имён файлов: `gallery-37158403-...xml`

- Вкладка управления сущностями: можно менять структуру сайта «на лету»

- Полная совместимость с форматом luassg

- Программируемость

Можно использовать фрагменты вида [lua] код [/lua] , чтобы выполнить код и заменить выводом в стандартный поток вхождение фрагмента

Пример:
a[lua]print("b")[/lua]с превращается в abc

Теперь вы можете работать с контентом как в CMS, но без сервера!

🔗 Как всё вместе работает?

1. Запускаете entity_xml_crud_app → создаёте сущность «товары» → добавляете 10 товаров через GUI.

2. Программа сохраняет всё в `./data/products/product-*.xml`.

3. Пишете шаблон `./templates/product.html` с плейсхолдерами `{product.name}`, `{product.price}` и т.д.

4. Запускаете luassg → получаете 10 HTML-файлов в `./output/`.

5. Заливаете папку `output` на любой хостинг — и сайт готов!

🛠️ Технические детали

- luassg: требует только интерпретатор Lua (есть почти везде).

- entity_xml_crud_app: работает на Linux/macOS/Windows (через PyGObject/GTK3).

- Оба проекта open source, MIT-лицензия — можно свободно использовать и модифицировать.

- Идеально подходит для портфолио, блогов, каталогов, лендингов.

💎 Заключение

Сочетание luassg и entity_xml_crud_app даёт мощный, но простой стек для создания статических сайтов:

- Без баз данных

- Без сложных зависимостей

- С удобным GUI для контента

- С высокой скоростью и безопасностью

Если вы устали от перегруженных CMS и хотите вернуть контроль над своим сайтом — попробуйте этот подход. Всё, что нужно — текстовый редактор, Lua и немного любви к порядку в файлах.

🔗 Исходники:

- luassg на https://github.com/ArtNazarov/luassg

- entity_xml_crud_app на https://github.com/ArtNazarov/entity_xml_crud_app

Понравилась статья?

Ставьте лайк, подписывайтесь — будет больше про open-source и минималистичные технологии!