31 lines
912 B
JavaScript
31 lines
912 B
JavaScript
import { document } from '../../../implementations/js/packages/core/src/terrace.js'
|
|
import fs from 'node:fs'
|
|
import readline from 'node:readline/promises'
|
|
import markdown from '../../../packages/js/block-markdown/index.js'
|
|
|
|
async function main() {
|
|
const mdHandler = markdown({})
|
|
|
|
const it = readline.createInterface({
|
|
input: fs.createReadStream('./test.tce', 'utf-8'),
|
|
})[Symbol.asyncIterator]()
|
|
|
|
const doc = document(async () => (await it.next()).value)
|
|
|
|
async function mainHandler({ line, lineData, ended, next, current }, page) {
|
|
if (ended) return page
|
|
|
|
if (line.startsWith('markdown')) {
|
|
lineData.offset = 'markdown'.length
|
|
page.body += await mdHandler(current(), mainHandler)
|
|
lineData.offset = 0
|
|
return mainHandler(current(), page)
|
|
}
|
|
|
|
return mainHandler(await next(), page)
|
|
}
|
|
|
|
console.log(await mainHandler(await doc.next(), { body: '' }))
|
|
}
|
|
|
|
main() |