Квизы (Markdown-плагин)
::: quiz — кастомный контейнер для вопросов с вариантами ответов.
| Опция | Значение по умолчанию | Описание |
|---|---|---|
randomize-questions | false | Перемешать порядок вопросов. |
randomize-answers | false | Перемешать ответы внутри каждого вопроса. |
hide-correct-answers | false | Не подсвечивать правильные варианты после проверки. |
disable-reset | false | Скрыть кнопку сброса (повторное прохождение будет недоступно). |
questions-limit=<n> | (все вопросы) | Ограничить число вопросов, выбранных из базы. |
source=<path> | (не задано) | Загрузить вопросы из внешнего JSON/YAML файла. Можно указать несколько source. |
lectures=01,02 | (все) | Для файлов с блоками lectures позволяет выбрать нужные разделы. |
show-question-codes | false | Показывать идентификатор вопроса рядом с заголовком. |
exam | false | Включить «боевой» режим (ФИО, таймер, экспорт результата). |
time-limit=<min> | 60 | Лимит времени в минутах для режима exam. |
require-name | true | Требовать ввод ФИО перед стартом в режиме exam. |
reset-after=<min> | (не задано) | Показать кнопку сброса через N минут в режиме exam. |
Если используется source, путь считается относительно текущего Markdown-файла (можно также указывать абсолютные или @/ пути). В файле достаточно перечислить массив объектов с полями question (или prompt), type (single / multiple) и answers (строка или объект с text/content и correct/isCorrect). Вместо массива можно передать объект { "questions": [...] } или развернутую структуру вида:
lectures:
- lecture_id: '01'
questions:
- id: IT03-01-Q01
question: ...
answers:
- text: Вариант
correct: true
В этом случае можно использовать опцию lectures=..., чтобы собрать квиз только из нужных лекций.
Служебные директивы внутри контейнера:
@question— начало формулировки вопроса;@answer— дальше идёт список с радиокнопками (один правильный вариант);@answers— список с чекбоксами (несколько правильных вариантов).
Встроенный (Markdown) вариант
Классический случай: все вопросы задаём прямо в Markdown, в нужных местах оставляем @question, @answer или @answers. Для демонстрации добавлен лимит в три вопроса, чтобы показать, что даже при большой «базе» можно отдать пользователю только часть.
::: quiz randomize-questions randomize-answers hide-correct-answers questions-limit=3
@question
Это вопрос на который есть один верный вариант.
@answer
- [ ] неверный
- [x] верный
- [ ] еще неверный
- [ ] и еще неверный
@question
На этот вопрос есть несколько верных вариантов.
@answers
- [ ] неверный
- [x] верный
- [ ] еще неверный
- [x] и еще верный
@question
Здесь дополнительный одиночный вопрос без перемешивания внутри текста.
@answer
- [x] Единственный верный вариант
- [ ] Вариант без галочки считается неверным
@question
Выберите лишнее число.
@answer
- [ ] 1
- [x] 0
- [ ] 2
- [ ] 4
@question
Вопрос с множественными вариантами без описания.
@answers
- [x] Первый ответ
- [ ] Второй ответ
- [x] Третий ответ
:::
Квиз из JSON-файла (внешний источник)
Банк вопросов хранится в JSON (./includes/quiz-bank.json). Плагин сам подгружает его и перемешивает вопросы/ответы:
::: quiz source=./includes/quiz-bank.json randomize-questions randomize-answers hide-correct-answers questions-limit=3
:::
Квиз из YAML-файла (внешний источник)
Пример с YAML (./includes/quiz-bank.yaml) ничем не отличается от JSON — достаточно указать путь в source=:
::: quiz source=./includes/quiz-bank.yaml randomize-questions randomize-answers hide-correct-answers questions-limit=3
:::
Квиз из лекционных файлов
Комбинация нескольких source
- Для каждой лекции есть собственный файл
disciplines/it03/lectures/includes/quiz-XX.yaml. Именно их редактируем, если нужно обновить вопросы. - Если нужно использовать сразу несколько лекций, достаточно перечислить несколько
source:
::: quiz source=./includes/quiz-01.yaml source=./includes/quiz-02.yaml randomize-questions randomize-answers show-question-codes hide-correct-answers questions-limit=3
:::
- Вариант с агрегированным файлом тоже возможен: можно собрать общий YAML вручную (см.
./includes/it03-midterm.yaml, где объединены лекции 01 и 02) и затем указатьsourceна него, добавивlectures=..., если требуется.
Агрегированный банк (промежуточный тест)
::: quiz source=./includes/it03-midterm.yaml lectures=01,02 randomize-questions randomize-answers show-question-codes hide-correct-answers questions-limit=3
:::
Экзаменационный режим (боевой)
Для контрольного теста можно включить режим exam. В нём студент вводит ФИО, запускает таймер, получает вопросы и после завершения скачивает результаты. Правильные ответы не подсвечиваются, а вопросы без ответа по истечении времени считаются неверными.
Что происходит в exam:
- перед стартом требуется ФИО;
- запускается таймер и отображается в фиксированной панели при прокрутке;
- при завершении времени все неотвеченные вопросы считаются неверными;
- после завершения появляется кнопка «Скачать результаты» (ФИО, время начала/окончания, длительность, ответы и статус).
- при использовании
reset-afterкнопка «Сбросить» появляется через указанное число минут.
::: quiz exam require-name time-limit=3 reset-after=1 randomize-questions randomize-answers show-question-codes hide-correct-answers questions-limit=3 source=./includes/quiz-01.yaml source=./includes/quiz-02.yaml
:::