Ветка gh-pages
формируется автоматически после добавления изменений в master
.
- создать в директории
source/docs
новый .md файл (и, по необходимости, соответствующую директорию для картинок) - в корневой директории запустить билд-скрипт:
sh build.sh
- Должны появиться .html-файлы (
source/index.html
и в директории docs). Их можно открывать в браузере - в них будут лекции. Если будут проблемы с отображением в хроме - в сафари должно работать (проблемы локальные, в итоге всё будет нормально и в хроме тоже) - чтобы добавить лекцию в список на главной странице, нужно добавить соответствующую строчку в
source/docs/index.md
(путь до лекции должен быть относительно корня)
Чтобы отредактировать уже существующую лекцию, нужно редактировать соответствующий .md
файл. Кроме него и, возможно, картинок, в папке не должно быть других изменений.
Важно! Не нужно редактировать .html
-файлы с лекциями (кроме шаблонных) - все изменения будут потеряны при перегенерации. Эти файлы добавлены в .gitignore
Лекции нужно писать в формате Markdown, для примера синтаксиса можно посмотреть в уже созданные лекции в папке source/docs
. В интернете множество страниц с описанием синтаксиса, например
Разделение слайдов происходит по символам ----
.
Можно делать слайды, перелистывающиеся по вертикали - например, для более подробного уточнения некоторых особенностей (Как в lecture_4.md
). Разделитель вертикальных слайдов - --
Полезные сочетания клавиш здесь. В частности, стоит обратить внимание на speaker's mode - он позволяет вынести лекцию в отдельное окно некоторую метаинформацию.
Кроме того, можно воспользоваться заметками. Для этого можно в md-файлах добавить поля ^Note:
в каждом слайде. Эти заметки будут не видны в презентации, но видны в speaker's режиме.
Важно! Поскольку лекции публичные, по завершению лекции заметки будут доступны всем желающим (и видны в репозитории), нужно относиться к ним так же внимательно, как и к самим лекциям.
- Открыть лекцию, добавить к адресу
?print-pdf
, например:...university-ios/docs/lecture_4.html?print-pdf
- распечатать в pdf (нажать ctrl+P и следовать инструкции)
Чтобы не обновлять страницу руками после каждого изменения файла, можно воспользоваться grunt. Эта система поднимает локальный сервер, и следит за изменениями файлов, обновляя страницу.
Установить node.js (https://nodejs.org)
Установка необходимых компонентов:
sudo npm install -g grunt-cli
npm install
Запуск локального сервера:
grunt serve
Компиляция css-тем после изменения:
grunt css-themes
Лекции построены на базе движка 'reveal.js'.
Есть html-страница, на ней запускается reveal-скрипт, в качестве источника данных которого указываются markdown-файлы. Кроме того, можно подкладывать css-темы (например, тут использована тема engine/scc/theme/noveo.css
).
Проблемной стороной данного подхода является то, что для каждой лекции нужен свой html-файл. Поэтому, было решено добавить файл-шаблон, и генерировать html-файлы на лету.
TODO:
В дальнейшем планируется перенести генерацию в GitLab CI. Для этого нужно переписать CreateLecture.py
в ruby (т.к. shared runner в gitlab.com не позволяют использовать python), либо создать специального runner-a (желательно, с соответствующим docker-контейнером). Для этого уже заготовлен .gitlab-ci.yml
- но возможно, придётся что-то еще обновить.
GitHub+Travis плохо подходят для этих целей, т.к. GitHub требует, чтобы все исходники сайта с лекциями были закоммичены в репозиторий. Соответственно, нужно настраивать Travis для сборки и пушей в соответствующую ветку (и только в неё). Результат сборки неотделим от кода, это неправильно идеологически. Сейчас это настроено для ветки gh-pages