Это старая версия документа!
Скрипт проверки (формат)
Скрипт проверки можно скачать на странице диктанта.
Скрипт с другими служебными файлами запакован в zip-архив.
В архиве содержится четыре файла:
js-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.js)
— сам скрипт проверки диктанта;css-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.css)
— содержит, соответственно, стили для показа отчёта о проверке.txt-файл (checkDictantInfo_5f4404764b32fa3c9bd23dc0.txt)
— общая информация о диктанте: название, путь в Учительской, дата выгрузки;HTML-файл (checkDictantExample_5f4404764b32fa3c9bd23dc0.html)
— тестовая страница для проверки скрипта.
Каждый файл имеет в своём названии уникальный идентификатор диктанта dictID (например: 5f4404764b32fa3c9bd23dc0
), который следует сохранять для передачи написанных диктантов в систему для импорта.
Программный интерфейс скрипта проверки
В js-файле содержатся две главные функции проверки:
Проверка текста с отрисовкой отчёта и возвратом модели проверки
function checkTextWithResultModelAndShowReport(text, reportContainerDomElement, onResultModelCallback)
Параметры вызова:
text
— текст диктанта.reportContainerDomElement
— DOM-элемент, где нужно нарисовать отчёт.onResultModelCallback = function(fullCheckResultModel: Model)
— функция, в которую будет переданаfullCheckResultModel
— полная модель результата проверки.
Модель fullCheckResultModel
имеет следующий вид:
// Полная модель результата проверки interface Model { checkId: string, // Уникальный id проверки, генерится при каждом вызове алгоритма проверки titles: Text[][], // Результат проверки заголовка в виде двумерного массива (первая размерность делит текст на абзацы, вторая делит параграф по ошибкам ) text: Text[][], // Результат проверки текста в виде двумерного массива (первая размерность делит текст на абзацы, вторая делит параграф по ошибкам ) errors: Errors, // Контейнер информации об ошибках summary: Summary, // Итоговое количество ошибок isDictantText: boolean, // Похож ли проверяемый текст на текст диктанта errorList: LexemeError[] // список ошибок с данными, помогающими построить карту ошибок } // Модель проверенного куска текста interface Text { id?: string, text: string, // кусок текста counts?: ErrorCounts, // количество ошибок в куске текста error?: string, // ссылка на идентификатор ошибок в контейнере ошибок position?: string | number // Позиция куска текста } // Контейнер информации об ошибках в виде KeyValue на массив ошибок export type Errors = { [key: string]: Error[]; } // Подробное описание ошибки export interface Error { id?: string, kind: string, // Тип ошибки () title: string, // Html текст из диктанта (правильное написание) с выделением части, в которой пользователь сделал ошибку тэгами <i></i> (например <i>в т</i>ечение) description: string // Html текст для пояснения правила, которое было нарушено } // Итоговое количество ошибок export interface Summary { counts: ErrorCounts, // Модель разных типов ошибок score: number, // оценка за диктант (5-балльная для русского, 100-балльная для английского). wrongWordCount: number // число неверно написанных слов в диктанте } // Модель для подсчёта разных типов ошибок export interface ErrorCounts { ORFO?: number, // количество орфографических ошибок PUNCT?: number, // количество пунктуационных ошибок TYPO?: number // количество опечаток }
Проверка текста без отрисовки отчёта с получением подробной модели результата проверки
function checkTextWithoutShowReport(text: string, onResult: function(fullCheckResultModel: Model))
Параметры вызова:
text
— текст диктантаonResult
— функция, в которую будет передана модельfullCheckResultModel
с подробными данными о результате проверки (см. описание выше).
Тестирование проверки
Содержащийся в архиве HTML-файл можно использовать для проверки текста диктанта и, соответственно, для проверки актуальности выгруженного скрипта. Для этого нужно:
- открыть HTML-файл в браузере;
- вставить в поле ввода текст диктанта с умышленно сделанными ошибками;
- нажать кнопку «Проверить»;
- оценить результат проверки.
Тестовый скрипт для отладки
Для демонстрации работы можно взять пример скрипта тестового диктанта с «черновой» разметкой dictant_belka_5ed9d6caefb14f76c3f47e5e.zip
Текст диктанта для проверки:
Белка В тёмном еловом лесу с утра до позднего вечера хлопочут проворные белки. Поднимутся белки на вершину высокой ели, перемахнут с ветки на ветку, а потом спускаются на землю за орехами. В развилке елового сучка белочка развесила сушить подосиновик, маленькие опенки. В лесных кладовых спрятала отборные орехи. Поздней осенью переменит белка свое красное платье на серую зимнюю шубку. В вершине густой ели устроила белочка тёплое гнездо. Там она воспитывает бельчат, зимой спасается от лютых морозов и холодных ветров. Самый весёлый зверек в наших лесах – это шустрая белка.