Streamdown
Stream markdown to HTML using marked that later can be piped to response.
WARNING!!! Markdown wasn't intended to be streamable so this library has a lot of limitations. Splitting markdown in chunks might break code markup, folded lists and link references. Use this library only for very basic markdown. The better approach would be using a string instead. A detailed explanation of why Streamdown is not the best approach is written here.
Install
pnpm i streamdown
Usage
import { createServer } from 'http'
import { streamdown } from 'streamdown'
import { createReadStream } from 'fs'
createServer((_, res) => {
createReadStream('page.md').pipe(streamdown()).pipe(res)
}).listen(3000)
API
import { streamdown, Streamdown } from 'streamdown'
new Streamdown(opts)
Create a new Streamdown
transform stream with options for transform and MarkedOptions
from marked
const md = new Streamdown({
markedOptions: {
headerIds: false
},
transformOptions: {
encoding: 'utf8'
}
})
streamdown(opts)
Create a new Streamdown
transform stream and return it.