「HTML コメント」「テーブル」対応として部分的な Markdown の利用。
===md
とすると Markdown として扱う===md
ここは Markdown として扱われます。
エスケープに注意は必要ですが(リッチエディタでは文字参照の扱いが特殊)、基本的には思ったように記述可能。
入力時の画面。
実際のテーブル表示。
項目 1 | 項目 2 | 項目 3 |
---|---|---|
あいうえお | 1000 | ABCD |
かきくけこ | 900 | efghijk |
いろはにほへと | 10 | ABCD - efghijk |
その他のコンテンツでも Markdown へ変換することで以下のような利点が生まれます。
たとえば highlight.js の利用は、Markdown を HTML へ戻す処理に remark-highlight.js プラグインを追加するだけでほぼ完了します。
スライド以外でも試してみたサンプル。
export function processorMarkdownToHtml() {
return unified()
.use(markdown)
.use(highlight)
.use(gfm)
.use(remark2rehype, { allowDangerousHtml: true })
.use(raw);
}
残念ながら Markdown を混在させることで問題点も出てきます。 その 1 つとして、リッチエディタで制限されていた操作が編集者へ開放されることが挙げられます。
今回は hast-util-sanitize によるサニタイズを行ってはいますが、 利用したい機能に合わせて制限を解除しているので、ほとんど意味がない状態となっています。
現状では自分だけが編集するので許容できますが、本来であれば何等かの制限を考える必要が出てきます。
mardock では「unified」「cheerio」「Markdown-it(Marpit)」が混在しているので、もう少し整理したいところです。