🔥

Chatworkのメッセージ記法のunifiedプラグインを書いた

2021/12/05に公開

チャットワークのメッセージ記法パーサーを書きました。unifiedプラグインになっていて、元々はmdastに変換するつもりで書いたので、React上で使うときはremark-hype+ハンドラ、rehype-reactを使って変換します。

例として、次のメッセージ記法の変換結果を載せておきます。

[picon:{account_id}]
[piconname:{account_id}]
[hr]
[To:{account_id}]
[返信 aid={account_id} to={room_id}-{message_id}]
[info]
[title]タイトル[/title]
情報
[/info]
[qt][qtmeta aid={account_id} time=1638694801]
引用開始
[info]
引用の中のinfo[/info]
引用終わり[/qt]
URL http://example.com


変換結果

ただし生成するHTMLとそれにあてるCSSはパーサーには含まれないので、そこは利用者それぞれで実装する必用があります。このパーサーはメッセージ記法のページに載っている記法は対応できているのですが、どうやら[code]というタグもあるようなので、あとで対応する予定です。あぁ、絵文字の対応も出来てないですね。

リポジトリなど

github
https://github.com/nnabeyang/unofficial-chatwork-parser
npm
https://www.npmjs.com/package/unofficial-chatwork-parser

Discussion