# ETPGRF Site — Онлайн-типограф ![Version](https://img.shields.io/badge/version-0.2.4-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Python](https://img.shields.io/badge/python-3.13-yellow) ![Django](https://img.shields.io/badge/django-6.0-green) Официальный сайт проекта **etpgrf** — единой типографики для веба. Сайт предоставляет удобный интерфейс для типографирования текстов, а также содержит документацию, блог и новости проекта. 🌐 **Живое демо:** [typograph.cube2.ru](https://typograph.cube2.ru) Зеркала репозитория: * [GitHub](https://github.com/erjemin/etpgrf-site) * [GitVerse](https://gitverse.ru/erjemin/etpgrf-site) * [Cube2](https://git.cube2.ru/erjemin/2026-etpgrf-site) Gitea ## Особенности ### Онлайн-типограф * Построен на базе библиотеки etpgrf (см.: [GitHub](https://github.com/erjemin/etpgrf), [GitVerse](https://gitverse.ru/erjemin/etpgrf), [Сube2](https://git.cube2.ru/erjemin/2025-etpgrf) и [PyPI](https://pypi.org/project/etpgrf/)). * Поддержка русского и английского языков. * Гибкие настройки (кавычки, тире, неразрывные пробелы, висячая пунктуация). * Мгновенное копирование результата. * Подсветка спецсимволов (неразрывные пробелы, мягкие переносы и тому подобное) в редакторе. ### Блог и контент * Встроенный движок блога и статических страниц. * Поддержка HTML в контенте. * Автоматическая генерация `sitemap.xml`. * Полноценная SEO-оптимизация (Open Graph, Twitter Cards, Schema.org JSON-LD). * RSS-лента (в планах). ### Технический стек * **Backend:** Python 3.13, Django 6.0. * **Frontend:** Bootstrap 5, Alpine.js, HTMX, CodeMirror 6. * **Infrastructure:** Docker, Docker Compose, Nginx, Gunicorn. * **CI/CD:** Gitea Actions (сборка и деплой). ## Установка и запуск ### Предварительные требования * Docker и Docker Compose * Git ### Быстрый старт (Docker) 1. **Клонируйте репозиторий:** ```bash git clone https://github.com/erjemin/etpgrf-site.git cd etpgrf-site ``` 2. **Создайте файл `.env`:** Скопируйте пример и отредактируйте его: ```bash cp .env.example .env ``` Обязательно задайте `SECRET_KEY` и `ADMIN_URL`. 3. **Запустите контейнеры:** ```bash docker compose up -d --build ``` 4. **Откройте сайт:** Перейдите по адресу [http://localhost:8000](http://localhost:8000). ### Локальная разработка (без Docker) 1. **Установите зависимости (через Poetry):** ```bash poetry install ``` 2. **Создайте файл `.env`:** Скопируйте пример и отредактируйте его (если еще не сделали): ```bash cp .env.example .env ``` *Примечание: Убедитесь, что ваш способ запуска (IDE или терминал) подхватывает переменные из `.env`.* 3. **Активируйте виртуальное окружение:** ```bash poetry shell ``` 4. **Примените миграции:** ```bash python etpgrf_site/manage.py migrate ``` 5. **Запустите сервер разработки:** ```bash python etpgrf_site/manage.py runserver 8008 ``` 6. **Откройте сайт:** Перейдите по адресу [http://localhost:8008](http://localhost:8008). ## Структура проекта * `etpgrf_site/` — Основной код Django-проекта. * `typograph/` — Приложение типографа (главная страница, обработка текста). * `blog/` — Приложение блога (посты, страницы, sitemap). * `data/` — Директория для хранения данных (SQLite) будет создан автоматически при запуске. * `config/` — Конфигурационные файлы (Nginx). * `public/static/` — Статические файлы (стили, скрипты, изображения), которые отдаются напрямую Nginx внутри Docker-контейнера. * `media/` — Медиа-файлы (загружаемые пользователем), которые отдаются напрямую внешним Nginx (или внутренним в dev-режиме). * `docker-compose.yml` — Конфигурация для разработки (по умолчанию). * `docker-compose.prod.yml` — Конфигурация для продакшена (переименуйте в `docker-compose.yml` для использования). * `.env` — Файл с переменными окружения (не хранится в репозитории, нужно создать самостоятельно на основе `.env.example`). ## Лицензия Этот проект распространяется под лицензией MIT. Подробнее см. в файле [LICENSE](LICENSE). ## Автор **Sergei Erjemin** * GitHub: [@erjemin](https://github.com/erjemin) * Gitea: [git.cube2.ru](https://git.cube2.ru)