- Python 99.6%
- Makefile 0.4%
|
|
||
|---|---|---|
| docs | ||
| egesoll | ||
| .gitignore | ||
| .python-version | ||
| LICENSE | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
| uv.lock | ||
EGEsoll
ЕГЭсоль
Сайт для публикации решений ЕГЭ. или же замудренный файловый сервер
Использование ИИ
Дисклеймер:
- Во время написания проекта были использованы большие языковые модели (LLM).
- Код от LLM был проверен человеком.
- Ответственность за использование LLM лежит на использующих их соавторах.
Где использовались LLM:
FRONT_PAGE_HTMLиз файлаtemplates.pyбыл написан Deepseek`ом, а позже вручную изменён.- Для дискуссий по поводу качества кода и как его можно улучшить.
- Для поиска оптимального решения по внедрению редактора Python в стандартный шаблон.
В проекте разрешается использование больших языковых моделей (LLM) при условии проверки кода человеком, принятии на себя ответственности и явном указании, где они использовались.
Основные возможности
- Отсутствие баз данных
- Решения, объяснения можно писать в удобном Markdown или HTML!
- Легкий и быстрый aiohttp сервер
- Кэширование страниц для снижения нагрузки на процессор
- Возможность полностью поменять внешний вид
- Гибкая конфигурация
- Автоматический каталог
- Публикация картинок
- Интеграция с гит репозиторием (если сервер запущен на GNU/Linux)
Как использовать?
Установка и первоначальная настройка
Для запуска сервера лучше всего использовать компьютер на базе ОС GNU/Linux. Однако запустить сервер возможно на любой платформе, где есть интерпретатор Python3.11 Приведённая инструкция является общей для всех платформ.
- Скачать доступную стабильную версию и Python3.11
- Установить egesoll командой
python3 -m pip install egesoll-*.whl - После установки будет доступна команда
egesoll-serve. Вызовем её. - В текущей рабочей директории появится файл
config.tomlи папкаdata. - Ознакомтесь с параметрами по умолчанию в
config.toml - Вы успешно запустили сервер.
Повседневное использование
- Сервер индексирует указанную в
config.tomlпапку по путиroot_path. - Сервер может работать с любым количеством вложенных папок.
Сервер принимает 6 видов расширений:
*.md- Язык разметки Markdown*.txt- Текстовые файлы (обрабатываются как.md)*.html- Язык гипертекстовой разметки*.png- Формат для картинок*.jpg,.jpeg- Формат для картинок
Сервер принимает 3 вида файлов, они должны иметь определённое название:
- Файл для публикации, содержащий задачу, решение и объяснение:
puzzle(можно сменить название в настройках). -
- Файл читается сверху вниз, первым идёт задача, потом решение, потом объяснение.
-
- Блоки должны быть разделены тремя символами собачки: @@@ .
- Вложенные файлы:
embed(может быть несколько штук и любого расширения) - Вложенные картинки (могут быть с любым названием, главное с поддерживаемым расширением.)
Для папки, содержащей хотя бы один из приведённых сверху файлов, создаётся веб-страница.
К ней можно получить доступ в браузере по относительному к root_path пути. Например, localhost:8100/data/infa/n1 - покажет веб-страницу для пути data/infa/n1 (по умолчанию)
Автоматический каталог создаётся для тех папок, в которых присутствует файл .catalog-this.
Например, по пути localhost:8100/data/infa пользователь увидит каталог всех вложенных в data/infa папок.
За примером повседневной работы можно обратиться к этому репозиторию.
Конфигурация/Настройка
- Для изменений параметров сервера используйте файл
config.toml - Для изменения шаблонов перейдите по пути
root_pathизconfig_toml. Там вы обнаружите 3 html файла, они и есть шаблоны, используемые для создания страниц.
ВНИМАНИЕ! Если вы поменяли шаблон и не заметили изменений - не пугайтесь! Сервер кеширует страницы. Когда кеш будет обновлен, ваши изменения будут использованы. Вы можете ускорить этот процесс, удалив папку .cache (будет произведена переиндексация всей базы).
Локальная сборка из исходников
Python кросс-платформенный язык, но если у вас есть острая необходимость сборки статичного исполняемого файла, то:
- Клонируйте репозиторий.
- Запустите
make buildв терминале.
Планы на будущее
- Улучшение внешнего вида сайта
- Улучшение документации
- Распутывание кода :)
- Настройка через бразуер
- MOTD для администраторов инстанций
Как помочь в разработке?
Помочь разработке может каждый! Вы можете ознакомиться с подробной документацией, как работает код в папке docs/
Если вы чувствуете себя неуверенно при использовании гита, то ознакомьтесь с кратким курсом.
- Определитесь с проблемой, которую вы хотите решить, или с новой функцией.
- Создайте ветку в этом репозитории по типу
feature/new-featureилиfix/bug.git checkout -b fix/bug - Клонируйте репозиторий.
git pull https://codeberg.org/dixevskiy/egesoll.git - Внесите изменения.
- Cоздайте коммит
git add . | git commit -m "fixed annoying bug" - Создайте пул реквест.
После этого пул реквест будет проверен основными мейнтейнерами и добавлен в основную ветку.
Благодарности
Благодарю IdealniyAriets за создание и ведение первоначального банка решений. Хоть мы и обособились, твой репозиторий вдохновил меня.
Благодарю анонимного спонсора, который ежемесячно проплачивал мне VPN.