Это старая версия документа!


Скрипт проверки (формат)

Скрипт проверки можно скачать на странице диктанта.

Скрипт с другими служебными файлами запакован в zip-архив.

В архиве содержится четыре файла:

  1. js-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.js) — сам скрипт проверки диктанта;
  2. css-файл (checkDictantScript_5f4404764b32fa3c9bd23dc0.css) — содержит, соответственно, стили для показа отчёта о проверке.
  3. txt-файл (checkDictantInfo_5f4404764b32fa3c9bd23dc0.txt) — общая информация о диктанте: название, путь в Учительской, дата выгрузки;
  4. 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-файл в браузере;
  • вставить в поле ввода текст диктанта с умышленно сделанными ошибками;
  • нажать кнопку «Проверить»;
  • оценить результат проверки.

Для демонстрации работы можно взять пример скрипта тестового диктанта с «черновой» разметкой checkdictant_5ed9d6caefb14f76c3f47e5e.zip

Текст диктанта для проверки:

Белка
В тёмном еловом лесу с утра до позднего вечера хлопочут проворные белки. Поднимутся белки на вершину высокой ели, перемахнут с ветки на ветку, а потом спускаются на землю за орехами. В развилке елового сучка белочка развесила сушить подосиновик, маленькие опенки. В лесных кладовых спрятала отборные орехи.
Поздней осенью переменит белка свое красное платье на серую зимнюю шубку. В вершине густой ели устроила белочка тёплое гнездо. Там она воспитывает бельчат, зимой спасается от лютых морозов и холодных ветров. Самый весёлый зверек в наших лесах – это шустрая белка.
  • /opt/bitnami/dokuwiki/data/attic/tech/checkscript.1629451355.txt.gz
  • Последнее изменение: 2021/08/20 09:22
  • dmitry_kalashnikov