この記事は、Zennにも投稿しています。
概要
この記事はブログとZennに同時投稿しているのですが、その際にZen独自のmarkdown記法を使いたいときがあります。ブログ側ではmarkdownの表示に
remarkを使っているのでremarkでそれらを表示したいという趣旨です。Directive
まずはディレクティブ記法です。
このようなコードで
メッセージ
が表示されるというものです。これはどうやら一般にdirectiveと呼ばれる記法のようです。
これはなんかメジャーっぽいしお目当てのプラグインで既にあるのではと思い探すとありました。これです。
これはなんかメジャーっぽいしお目当てのプラグインで既にあるのではと思い探すとありました。これです。
これでdirective記法はクリア…かと思いきや実はこのプラグインではZennの記法を再現することはできません。これはZennでは
のようにディレクティブ名の後にタイトルなどを記述するのですがこれはremark-directiveではサポートされていないからです。
なのでしょうがないので
remark-directiveにパッチを当てることにしました。パッチの内容は以下です。このパッチでは、英字か数字のみがdirectiveのラベルで有効だったものを全ての文字で有効になるように変えています。これによって
:::directive{.class}のような記法は使えなくなりますが今回は問題ないのでよしとします。remark-directiveはこのプラグインを読み込んだ後に独自のプラグインで実際にディレクティブを有効なhtmlデータなどに変換します。messageディレクティブとdetailsディレクティブを実装したものがこちらです。detailsの方は無理くりmdxの内部形式に変換しています。これを使うには
remark-directiveと上のremarkCustomDirectiveの両方のプラグインを読み込みます。