MarkdownをSlackのBlock Kit UIへ変換する
Github上でMarkdownの文章を管理していると、その内容をSlackへポストしたくなるときがあります。
単純にコピペしてしまうとリンクなどが維持されないため、何らかの方法でMarkdownをSlackのメッセージ形式へ変換する必要があります。
世の中のソリューション
もちろん、この問題は世界共通の悩みなのですでにいろいろなソリューションがあります。
今のところ、この実装が一番イケてる気がしますが、Node環境が必要なのでちょっと面倒……
Block Kit UIになっているのもイケてますね。
Githubも実のところ、Slack通知を送る際にこの問題を解決する必要があり、これはその実装のようです。
Markdown -> HTML -> Mrkdwn
にしているようです。こちらはBlock Kit UIでなく、mrkdwnテキストにゴリゴリ変換しているようです。
わたしのソリューション
Goのソリューションが欲しかったので、作りました。
https://github.com/nabeken/blackfriday-slack-block-kit
GoのMarkdownパーサであるblackfriday v2がAST (Abstract Syntax Tree)を吐くので、それを元にSlack Block Kit UIのJSONへ変換するライブラリと簡単なツールを書きました。
詳しいことはリポジトリ内のREADMEをどうぞ。
このコードは https://github.com/karriereat/blackfriday-slack をBlock Kitに対応させたものになります。ありがとうございました。