Эти сведения несколько устарели. Мы работаем над их обновлением.

Файловая структура

"Час ЕГЭ" - это, вообще говоря, программа, предназначенная для выполнения в браузере. Поэтому её можно, например, скачать в виде архива, распаковать и использовать с жёсткого диска ЭВМ. Программа эта состоит из файлов, разложенных по папкам. Ниже представлены папки с описанием их назначения.
Папка Типы файлов Пояснение
/css *.css Стили оформления выносятся в отдельную папку, так как могут быть общими, например, для оболочек и документации.
/dev * Черновики всевозможных "запчастей" от системы. Для разработчиков там может что-то быть и интересно, а на рабочий сервер её вовсе заливать необязательно.
/doc *.html Документация к системе "Час ЕГЭ": лицензия, справка...
/ext * Внешние библиотеки и подключаемые модули. На 22 июля 2013 года таких шесть: MathJax, JQuery, Greyvyvern's Keyboard, AnythingSlider, jqPlot и шрифты семейства Liberation.
/lib *.js
*.html
Внутренние библиотеки и подключаемые модули. "Главный" файл - init.js , он подключает и готовит всё остальное. Особо отметим файлы, расширяющие существующие типы данных в Javascript - например, array.js , number.js и им подобные.
/sh *.html
*.js
Оболочки - странички, запускающие задания. Рядом - скрипты, в которые все алгоритмы выбора и запуска заданий и вынесены. По состоянию на 22 июля 2013 года оболочек три: случайное задание, режим отладки и создание теста на печать. Запланирована разработка оболочки в виде интерактивного теста.
/zdn */*/*.js Здесь файловая структура является вложенной. Первый подуровень - название предмета или комплекта заданий. По состоянию на 22 июля 2013 года такой предмет только один - математика mat/ . Второй подуровень - название задания, его формат согласуется с оболочкой. В папке каждого задания находятся файлы main.js , отвечающий за равновероятный вызов шаблона, и шаблоны заданий 1.js , 2.js ... *.js.

Понятие шаблона

Шаблон - это ровно один файл *.js, который составляет задание, пользуясь библиотеками. Составленное задание записывается в глобальный объект window.vopr . Возможно, имеет смысл оборачивать каждый шаблон в замыкание. Особенно после отладки. Шаблон может составлять задание как генеративного типа - подбирать каждый раз новые цифры, так и коллекционного., т. е. содержать неизменяемый текст. В случае совмещения этих двух типов следует с помощью main.js отрегулировать частоты их появления. Если в шаблоне требуется использовать картинку, задавайте её с помощью base64.

Принцип модульности

Такая архитектура, хоть и требует постоянной подгрузки скриптов, обеспечивает:

Глобальный объект window.vopr

Объект window.vopr предназначен для хранения составленного задания и имеет ряд свойств:
Свойство Тип Значение по умолчанию Пояснение
txt Строка '' Формулировка вопроса - html-текст.
rsh Строка 'Разбор решения этой задачи ещё не подготовлен.' Строка с разбором решения. По состоянию на 22 июля 2013 года не используется.
ver Массив нумерованный [] Массив со всеми возможными верными ответами. В большинстве случаев состоит из одного элемента.
nev Массив нумерованный [] Массив с несколькими неверными ответами. Заложен на будущее, если потребуется составлять задания А-части.
dey Функция function(){} Функция, выполняемая после отображения текста задания. По состоянию на 22 июля 2013 года используется только для отрисовки canvas.
kat Массив именованный [] Содержит отметки о теме задания, например, если отмечено, что window.vopr.kat["log"]=1, значит, задание требует умения обращаться с логарифмами. Используется для исключения заданий на темы, ещё не освоенные учащимися.
vrn Функция function(kand){
for(var i2=0;i2<this.ver.length;i2++)
if(this.ver[i2].ts()==kand.ts())
return 1;
return 0;
};
Функция, определяющая, является ли ответ верным. Нужна, например, в тех случаях, когда верных ответов бесконечно много. По умолчанию проверяет, находится ли ответ в массиве верных ответов.

Для установки всех свойств в значение по умолчанию используется функция window.vopr.podg() .