Учебный проект онлайн-библиотеки — статический сайт с книгами, разбитый на страницы, с удобной навигацией и автоперезагрузкой при разработке.
Проект создан в рамках обучения на курсе Devman.
Это статический сайт онлайн-библиотеки, где можно просматривать книги, читать их онлайн и переходить между страницами.
👉 Открыть опубликованную версию
- 📖 Каталог книг — 92 книги с обложками, авторами и жанрами
- 📄 Пагинация — разбивка по страницам (20 книг на страницу)
- 🔗 Чтение онлайн — каждая книга открывается по ссылке
- 🎨 Двухколоночная сетка на Bootstrap 5
- 🏷️ Жанры в виде бейджей
- 📱 Адаптивная вёрстка — 2 колонки на десктопе, 1 на мобильных
- 🔌 Автоперезагрузка при разработке через livereload
- 📡 Работает офлайн — Bootstrap и фавикон загружаются локально
- ⚙️ Гибкая настройка — путь к данным, хост и порт через argparse
| Технология | Назначение |
|---|---|
| Python 3 | Генерация страниц |
| Jinja2 | Шаблонизация HTML |
| Bootstrap 5.3 | Стили и сетка |
| livereload | Автоперезагрузка в браузере |
| more-itertools | Разбивка списков на chunks |
| argparse | Аргументы командной строки |
| GitHub Pages | Хостинг статики |
# Клонировать репозиторий
git clone https://github.com/skislyakow/online_library.git
cd online_library
# Создать и активировать виртуальное окружение
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows (PowerShell)
# Установить зависимости
pip install -r requirements.txt
# Запустить сервер (автоматически сгенерирует страницы)
python server.pyОткрыть в браузере: http://127.0.0.1:5500
# Свой файл с данными
python server.py --data /path/to/meta_data.json
# Другой порт
python server.py --port 8080
# Все опции
python server.py --data /path/to/meta_data.json --host 0.0.0.0 --port 8080| Опция | По умолчанию | Описание |
|---|---|---|
--data |
media/meta_data.json |
Путь к метаданным книг |
--host |
127.0.0.1 |
Адрес сервера |
--port |
5500 |
Порт сервера |
online_library/
├── index.html # Редирект на первую страницу
├── pages/
│ ├── index1.html # Книги 1–20
│ ├── index2.html # Книги 21–40
│ ├── index3.html # Книги 41–60
│ ├── index4.html # Книги 61–80
│ └── index5.html # Книги 81–92
├── static/
│ ├── bootstrap.min.css # Bootstrap CSS (локально)
│ ├── bootstrap.bundle.min.js # Bootstrap JS (локально)
│ └── favicon.svg # Фавикон
├── media/
│ ├── meta_data.json # Метаданные книг
│ ├── img/ # Обложки книг
│ └── books/ # Тексты книг
├── templates/
│ └── index.html # Jinja2-шаблон
├── server.py # Сервер с livereload
└── screenshot.png # Скриншот сайта
jinja2
livereload
more-itertools
Сайт уже опубликован по адресу:
👉 https://skislyakow.github.io/online_library/
Для публикации своей версии:
- Сделайте форк репозитория
- В настройках репозитория (Settings → Pages) выберите ветку
mainи папку/ (root) - Сохраните — через минуту сайт будет доступен по адресу
https://<username>.github.io/<repository>/
Проект выполнен в рамках курса по веб-разработке Devman.
Проект распространяется под лицензией MIT.
