Skip to content

tatyderb/stepik_deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StepKit

Deploy a course to stepik.org, markdown and GIFT format.

Онлайн-курс по работе со StepKit, форматам шагов и примерами: https://stepik.org/course/253149

Загрузка урока или шага на Stepik

Загрузить все шаги урока. Урок написан в файле first_lesson.md. ID урока должно быть описано в файле.

python deploy.py first_lesson.md

Загрузить второй шаг урока, первый шаг имеет номер 1. Урок написан в файле first_lesson.md.

python deploy.py first_lesson.md -s 2

Загрузить последний шаг урока, последний шаг имеет номер -1 (предпоследний -2 и т.д.). Урок написан в файле first_lesson.md.

python deploy.py first_lesson.md -s -1

Дополнительные опции:

  • -s N или --step N - номер шага N, начинается с 1, допускаются отрицательные числа (-1 - последний шаг).

Проверка корректности работы

Можно проверить работу программы, запустив скрипт snapshops_manager для уроков в examples:

python src/verification/snapshops_manager.py examples/step_first.md 

Для подробной информации вызовите

python src/verification/snapshops_manager.py -h

Формат данных

Файл с уроком

Шаги урока хранятся в отдельном файле в формате markdown с дополнительной разметкой.

  • Файл начинается с заголовка 1 уровня - это заголовок урока.
  • Далее идет секция переменных урока:
    • lesson - ID урока, берется из URL урока, в https://stepik.org/lesson/1945910/step/1?unit=1973035 ID урока 1945910.
    • lang - язык для решений всех задач урока, если не указать, доступны все языки.
  • Далее, начиная с заголовка 2 уровня описывается очередной шаг урока.
    • В заголовке 2 уровня в начале пишем тип шага. По умолчанию тип TEXT.
    • SKIP - идет до или после типа, означает, что данный шаг не будет ни разобран, ни загружен на Stepik.
    • Далее идет текст заголовка, который будет написан в начале шага.

Примеры шагов: https://github.com/tatyderb/stepik_deploy/tree/main/examples

Секции

В шагах определяются секции. Название секции пишется большими буквами с начала строки. Кроме названия секции на строке ничего не пишется.

Опции

Опции задаются как опция разделитель значение.

  • Опции урока смотрите выше в разделе "Файл с уроком".
  • Общие опции шагов определены в секции CONFIG. Эта секция может быть в любом шаге:
    • score - баллы за данный шаг (пока не реализовано)
  • Разделитель - : или =. Старайтесь придерживаться одного стиля разделителей во всех уроках вашего курса.
  • Значение - текст до конца строки.

Тип TEXT - шаг Текст

В формате markdown. Пример

Тип QUIZ - шаг Тест

Шаг описывается по шаблону:

## QUIZ Заголовок

Текст условия

A. вариант 1
B. вариант 2
C. вариант 3

ANSWER: A, C

CONFIG
shuffle: false
  • Варианты
    • начинаются с латинской буквы и точки, далее пробельный символ
    • латинские буквы должны быть разными
    • вариант может быть на нескольких строках
    • может содержать математические формулы, код и картинки
  • Ответ может быть один или несколько через запятую
    • одиночный ответ - radio button
      • множество вариантов ответа - checkbox
  • CONFIG без : в конце названия секции!!!
    • shuffle - перемешивать варианты или нет

Тип SORT - шаг Задача на сортировку

## SORT Заголовок

Текст условия

SORT
Первый вариант
====
Второй вариант
====
И следующие варианты аналогично
====

CONFIG
html: true

Тип MATCH - шаг Задача на сопоставление

## MATCH Заголовок

Текст условия

MATCH
Пункт 1
----
Значение, соответствующее пункту 1
====
Пункт 2
----
Значение, соответствующее пункту 2
====
Пункт 3
----
Значение, соответствующее пункту 3
====

CONFIG
shuffle: false
html: true

shuffle - перемешивать ли варианты в первом столбце, по умолчанию нет (во втором всегда перемешиваются) html - допускается ли html, по умолчанию да

Тип TABLE - шаг Табличная задача

## TABLE Заголовок

Текст условия

TABLE
| Ряды:      | Первая колонка | Вторая колонка |
|------------|----------------|----------------|
| Первый ряд | +              |                |
| Второй ряд |                | +              |

CONFIG
shuffle_rows: true
shuffle_columns: true
accept_any_answer: false
allow_multiple: false

shuffle_rows - перемешивать ли ряды, по умолчанию да shuffle_columns - перемешивать ли колонки, по умолчанию да accept_any_answer - считается ли любой ответ верным, по умолчанию нет allow_multiple - да, если в каждой строке можно выбирать несколько вариантов; по умолчанию нет

Ячейки можно несколькими способами: верный ответ: +, 1, да, true, yes, y неверный ответ: либо пустая ячейка, либо -, 0, нет, false, no, n (Регистр любой)

Между строками таблицы можно использовать декоративные разделители

Тип NUMBER - шаг Численная задача

## NUMBER Заголовок

Текст условия

ANSWER: число +- точность

Допускается один или более ответов, пишем один ответ на одной строке. Часть +- точность не обязательна.

Тип STRING - шаг Текстовая задача

Текстовая задача

## STRING Заголовок

Текст условия

ANSWER: строка, несколько строк или регулярное выражение 
CONFIG
use_re: false 
match_substring: false
case_sensitive: false
is_text_disabled: false
is_file_disabled: true
  • match_substring - Сверка по фрагменту
  • use_re - Проверка по регулярному выражению
  • case_sensitive - Учитывать регистр и различать заглавные и строчные буквы
  • is_text_disabled - Запретить ввод ответа в текстовое поле
  • is_file_disabled - Запретить посылку файла с ответом

Тип ESSAY - шаг Свободный ответ

Задача на свободный ответ

## ESSAY Заголовок

Текст условия

Тип TASKINLINE - шаг Задача на программирование

## TASKINLINE Заголовок

Текст условия

TEST
input1
----
output1
====
input2
----
output2
====

HEADER
код до кода ученика
FOOTER
код после кода ученика
CODE
шаблон для ученика

CONFIG
lang: python
visible_tests: 3
checker: std_float_seq
additional_params: "EPS=0.01"
  • Секции идут в произвольном порядке
    • ключевые слова пишутся с начала строки
  • Секции
    • HEADER - код, который пристыковывается до кода ученика
    • FOOTER - код, который пристыковывается после кода ученика
    • CODE - шаблон, появляется в онлайн-редакторе для ученика
    • TEMPLATE - вместо разделов HEADER, FOOTER, CODE вы можете написать весь код вкладки "Языки и Шаблоны" в одном месте. Пригодится, если у вас задача для нескольких языков программирования и каждому из них нужны свои разделы.
    • GENCHECKSOLVE - содержимое вкладки "Расширенный редактор" (приоритетней выбора чекера).
  • TEST - тесты, входные данные и ожидаемые выходные данные
    • линия из 4+ - отделяет входные данные от эталонных выходных
    • линия из 4+ = заканчивает эталонные выходные данные
    • входные и выходные данные могут быть на нескольких строках, могут не быть вообще.
  • CONFIG - опции задачи
    • lang - язык программирования, перечислены через запятую, смотри поддерживаемые языки
      • all - нет ограничения на языки программирования
    • visible_tests - количество открытых входных и выходных данных, только по указанным тестам показываются данные в разделе "Тестовые данные" и в диагностике об ошибочном решении (в разработке).
    • checker - название стандартных проверяющих программ
      • std_float_seq - последовательность нецелых чисел, с точностью до EPS, по умолчанию EPS=0.001
    • additional_params - дополнительные параметры для чекеров и тп.

About

Deploy a course to stepik.org, markdown and GIFT format.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages