Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 4x 4x 12x 2x 8x 8x 2x 4x 8x 2x 4x 1x 1x | import { Question, createChoice, createQuestion } from '../question' import { QuestionFormat } from './format' const parseQuestion = (text: string) => { const [question, ...answers] = text.split('\n').filter((line) => !line.startsWith('//')) const choices = answers.map((answer) => { const isCorrect = answer.startsWith('*') return createChoice({ answer: (isCorrect ? answer.slice(1) : answer).trim(), isCorrect, }) }) return createQuestion({ question: question.trim(), choices, }) } const formatQuestion = (question: Question, idx: number) => { const answers = question.choices.map((answer) => (answer.isCorrect ? `*${answer.answer}` : ` ${answer.answer}`)) return `// question ${idx + 1}\n${question.question}\n${answers.join('\n')}` } /** * QuestionAnswerLine format */ export const qal: QuestionFormat = { fileType: 'text/plain', fileExtension: 'txt', import: (text: string): Question[] => { return text.split('\n\n').map(parseQuestion) }, export: (questions: Question[]) => { return questions.map(formatQuestion).join('\n\n') }, } |