Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Онлайн библиотека

Учебный проект онлайн-библиотеки — статический сайт с книгами, разбитый на страницы, с удобной навигацией и автоперезагрузкой при разработке.

GitHub Pages Bootstrap Python Jinja livereload License

Скриншот сайта


🧐 О проекте

Проект создан в рамках обучения на курсе 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

🌐 Публикация на GitHub Pages

Сайт уже опубликован по адресу:
👉 https://skislyakow.github.io/online_library/

Для публикации своей версии:

  1. Сделайте форк репозитория
  2. В настройках репозитория (Settings → Pages) выберите ветку main и папку / (root)
  3. Сохраните — через минуту сайт будет доступен по адресу https://<username>.github.io/<repository>/

🎓 Обучение

Проект выполнен в рамках курса по веб-разработке Devman.

📄 Лицензия

Проект распространяется под лицензией MIT.

About

Статический сайт онлайн-библиотеки с пагинацией и чтением книг

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages