CLI for hexlet.io
Project description
Установка
pip install hexlet
Создание урока
Пример готового урока, который можно пройти на hexlet.io: * урок на сайте – http://hexlet.io/lessons/example/ * исходник – https://github.com/Hexlet/example_lesson
Сгенерируем скелет нового урока:
hexlet-lesson init
Урок состоит из юнитов (theory, quiz, terminal, codex, code)
lesson.yml
name – название урока
language – язык(и) программирования, используемый в уроке. Например, python, java, go
description – описание урока в произвольном формате, без описания цели и аудитории. Опционально.
mission - цель урока/курса в ответа нв вопрос “что это даст”. Пример – “После этого урока вы сможете балансировать двоичные деревья”
audience – для кого этот урок/курс. Пример – “Урок рассчитан на людей, знакомых с базовыми принципами программирования”
units – список юнитов, которые будут содержаться в этом уроке. Перечислите только юниты, которые вы реализовали (см. пример в файле lesson.yml)
Теория (theory unit)
В main.yml указывается id ролика на youtube (например, eXI_TFW5Cdo). Опционально (если вы решили использовать видео для урока).
main.md - текст урока. Опционально.
transcription.md - расшифровка видео урока. Опционально.
Тесты (quiz unit)
Поддерживаются два вида вопросов: выбор ответа (quiz) и заполнение бланков (fill in). Для каждого вопроса необходимо прописывать уникальный slug (ключ верхнего уровня). В main.yml есть примеры вопросов.
type: answers
В блоке correct_answers можно перечислять несколько допустимых правильных ответов. См. пример в quiz/main.yml
type: filling
В блоке text помещаются блоки %{something}, в блоке correct_answers помешаются допустимые ответы для something. См. пример в quiz/main.yml
Терминал (terminal unit)
# FIXME
Код в браузере (codex unit)
# FIXME
Код (code unit)
Для унификации и простоты работы мы составили следующую схему: В папке code должен лежать файл Makefile который имеет три команды: * install - если необходимо делать установку дополнительных библиотек, создавать файлы, менять права и т.п. * run - если нужно запускать, например, сервер. * stop - для остановки (если run демонизирует) * test - основная команда, которая запускает тесты и по которой мы определяем выполненность задания.
Описание задания обязатально и должно находиться в файле README.md. Оно будет отображаться на сайте в соответствующем юните.
Отправка урока
Сначала нужно авторизоваться, используя свой логин и API_KEY со страницы http://hexlet.io/account/profile:
hexlet-lesson login <LOGIN> <API_KEY>
Теперь можно отправить урок на модерацию:
hexlet-lesson submit <ПУТЬ_ДО_УРОКА>