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