course-renderer
Version:
Manages CA School Courses file system storage and HTML conversion
40 lines (39 loc) • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Token_1 = require("../Token");
const handlers_1 = require("../handlers");
const SECTION_MARKER = 0x2B; /* + */
function section(reader, tokens, silent = false, options) {
let pos = reader.getCurrentLineStartPos();
if (reader.getCharCode(pos++) !== SECTION_MARKER
|| reader.getCharCode(pos++) !== SECTION_MARKER
|| reader.getCharCode(pos++) !== SECTION_MARKER) {
return false;
}
if (silent)
return true;
if (options.sectionMode) {
options.sectionMode = false;
reader.nextNonEmptyLines();
return true;
}
else {
reader.nextNonEmptyLines();
options.sectionMode = true;
const start = reader.currentLine;
while (!reader.isEnd()) {
if (handlers_1.question(reader, tokens, true, options) || handlers_1.series(reader, tokens, true, options))
break;
reader.nextLine();
}
reader.currentLine--;
const label = reader.getLines(start, reader.currentLine);
const token = new Token_1.default('SECTION');
token.setContent(label);
token.setChapter(options.chapter);
tokens.push(token);
reader.nextNonEmptyLines();
return true;
}
}
exports.section = section;