Skip to main content

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 <ПУТЬ_ДО_УРОКА>

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page