course-renderer
Version:
Manages CA School Courses file system storage and HTML conversion
40 lines (29 loc) • 1.27 kB
text/typescript
import Token from '../Token'
import Reader from '../reader'
import { question, series, section, HandlerOptionInterface } from '../handlers'
export function text(reader: Reader, tokens: Token[], silent: boolean, options: HandlerOptionInterface): boolean {
const start = reader.currentLine
while(!reader.isEnd()) {
if (question(reader, tokens, true, options) || series(reader, tokens, true, options) || section(reader, tokens, true, options)) break
reader.nextLine()
}
reader.currentLine--
const label = reader.getLines(start, reader.currentLine)
if (label) {
const token = new Token('text')
token.setContent(label)
token.setChapter(options.chapter)
const lastToken = tokens[tokens.length - 1]
if (options.sectionMode && options.replMode) {
const sectionTokChildren = tokens[tokens.length - 1].children
const replTok = sectionTokChildren[sectionTokChildren.length - 1]
replTok.addChild(token)
} else if (options.sectionMode && !options.replMode) {
tokens[tokens.length - 1].addChild(token)
} else {
tokens.push(token)
}
}
reader.nextNonEmptyLines()
return true
}