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() |