• 拡張子rstに対してWebAssemblyで作ったレンダラーを呼び出しているだけ
◦ レンダラーはHTMLを返す
• エンジンとして登録する部分のみ少し工夫が必要(実装は雑)
◦ lume側のEngineをimplementsする必要がある。とはいえこちらもレンダラー関数をラップするクラスを作るだけ
export class RstEngine implements Engine { constructor() { } deleteCache() {} render( content: string, _data?: Data, _filename?: string, ): Promise<string> { return instantiate().then(({ render_rst }) => render_rst(content, true)); } renderInline(content: string): Promise<string> { return instantiate().then(({ render_rst }) => render_rst(content, false)); } renderSync( _content: unknown, _data?: Data, _filename?: string, ): string { throw new Error("Not Emplements"); } addHelper() {} }