LightStaticSite
Мощный, модульный и быстрый генератор статических сайтов на Python, разработанный специально для этого блога. Поддерживает инкрементальную сборку, оптимизацию изображений и SEO из коробки.
Основные возможности
🚀 Инкрементальная сборка
Генератор отслеживает изменения в файлах с помощью алгоритма SHA-256. Если контент статьи или шаблоны не менялись, страница не пересобирается. Имеется поддержка версионирования кэша и автоматической очистки устаревших записей.
🖼️ Автоматическая оптимизация изображений
- Конвертация в WebP: Автоматический перевод в современный формат для экономии трафика.
- Умный ресайз: Ограничение ширины до 1600px для ускорения загрузки.
- Lazy Loading: Автоматическое добавление
loading="lazy"ко всем картинкам.
📝 Поддержка черновиков (Drafts)
Просто добавьте draft: true в метаданные (front-matter) статьи, и она будет
проигнорирована при
сборке сайта.
🔍 Встроенное SEO и Локализация
- Sitemap / RSS / Robots: Автоматическая генерация всех необходимых для поисковиков файлов.
- Мультиязычность: Поддержка поля
langдля автоматического переключения интерфейса (навбара, футера). - Stuctured Logging: Замена обычных принтов на модуль
loggingс временными метками.
📤 Умный шейринг (Sharing)
- Native Share API: Использование системного меню «Поделиться» на мобильных устройствах.
- Улучшенное копирование: Кнопка «Копировать ссылку» на базе Clipboard API с надежным фолбэком.
- Чистые заголовки: Устранение HTML-сущностей (вроде
&) при репосте в соцсети.
Архитектура проекта
Код разделен на специализированные модули: build.py, build_config.py,
build_cache.py,
build_parser.py, build_image.py, build_seo.py и
build_utils.py.
Схема работы
Как пользоваться
Требования: Python 3.x, зависимости (markdown, Pillow, beautifulsoup4, transliterate).
Сборка сайта: ./gen.sh или python3 build.py
Метаданные (Front-matter):
---
title: Заголовок статьи
date: 2026-01-09
tags: AI, Python, Web
description: Краткое описание для SEO
image: cover.png # конвертируется в .webp
slug: custom-path
lang: ru # или en
aliases: old-post-name, test-path
draft: false
---
Решение проблем (Troubleshooting)
| Проблема | Решение |
|---|---|
| Не обновляются шаблоны | Удалите
.build_cache.json.
|
| Ошибка оптимизации | Нужен
Pillow иначе будет
просто копирование. |
| Слаги не на том языке | Нужен интернет для API или будет транслит. |