Участник:Edward Chernenko/parsetest.js

Материал из Абсурдопедии
Перейти к навигацииПерейти к поиску

Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.

  • Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
  • Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
  • Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
  • Opera: Перейдите в Menu → Настройки (Opera → Настройки на Mac), а затем Безопасность → Очистить историю посещений → Кэшированные изображения и файлы
var options = {},
	questions = {},
	currentQuestion;

$( '.zmquiz-src' ).text().trim().split( /[\n\r]+/ ).forEach( function( line ) {
	switch( line.substr( 0, 1 ) ) {
		case '|': // Parameter of the quiz, e.g. type=
			var keyval = line.replace( /^\|\s*/, '' ).split( '=' );
			options[ keyval[0] ] = keyval[1];
			break;

		case '*': // Question, e.g. 'Who ate the Kolobok?'
			currentQuestion = line.replace( /^\*\s*/, '' );
			questions[currentQuestion] = {}; /* Answers */
			break;

		default: // Possible answer to the current question, e.g. 'Fox|points=2'
			var rawParams = line.split( /\s*\|\s*/ ),
				answerText = rawParams.shift(),
				params = {}; /* E.g. { points: 2 } */

			rawParams.forEach( function( pair ) {
				var keyval = pair.split( '=' );
				params[ keyval[0] ] = keyval[1];
			} );

			questions[currentQuestion][answerText] = params;
	}
} );

console.log( JSON.stringify( options ) );
console.log( JSON.stringify( questions ) );