Сайт с лекциями: https://radilov-spsu.github.io/materials/
Читать удобнее на сайте — там поиск по всему тексту лекций, оглавление и диаграммы. Репозиторий нужен, чтобы материалы правились как код.
Один предмет — одна папка в корне. Новый предмет добавляется такой же папкой.
OOP/ объектно-ориентированный анализ и проектирование
├── index.md о курсе и программа
├── lectures/ 8 лекций
├── self-study/ 9 материалов для самостоятельной работы
└── labs.md
Parallel/ технологии параллельного программирования
TechProg/ технология программирования
index.md главная сайта
site/ инфраструктура сайта
├── mkdocs.yml конфигурация и меню
├── requirements.txt версии зафиксированы намеренно
└── stylesheets/
Кнопка-карандаш на любой странице сайта открывает её исходник здесь.
После push в main сайт пересобирается сам за минуту-две.
Локальный предпросмотр с автообновлением:
python3 -m venv .venv && . .venv/bin/activate
pip install -r site/requirements.txt
mkdocs serve --config-file site/mkdocs.yml # http://127.0.0.1:8000Проверка так же, как в CI:
mkdocs build --strict --config-file site/mkdocs.yml --site-dir /tmp/site!!! Обратите внимание: --site-dir обязателен. Материалы лежат в корне
репозитория, корень же является docs_dir, поэтому результат сборки нужно
складывать вне репозитория — иначе MkDocs попытается положить его внутрь
собственного источника.
- Создать папку в корне:
index.md,labs.md, при необходимостиlectures/. - Добавить раздел в
navвsite/mkdocs.yml. - Добавить карточку на главную
index.md.
Положить файл в <Курс>/lectures/ и добавить строку в nav. Без второго
страница соберётся, но в меню не появится.
Диаграммы пишутся блоком ```mermaid и рендерятся на сайте сами.
Pull Request приветствуется — в том числе от студентов.