Node.jsでMarkdownをplain textに変換する
このサイトに機能追加をする過程で、Markdownのマークアップを削除してplain textにしたい所がありました。 このサイトはNext.jsで出来ているので、Node.js/JavaScriptでの開発になります。
やりたいこと
やりたいのは、以下のようなMarkdownのデータがあったとして、
# タイトルとか
**強調**とか[リンク](https://blanktar.jp)とか。
これを、以下のようなプレーンテキストに変換する作業です。
タイトルとか
強調とかリンクとか。
やりかた
軽く調べてみたところ、remove-markdownというnpmパッケージを使うのが楽そうです。
$ npm i -s markdown-remove
使い方は、最小限だと以下のような感じです。
import removeMd from 'remove-markdown';
const markdown = `
# タイトルとか
**強調**とか[リンク](https://blanktar.jp)とか。
`;
const plain = removeMd(markdown);
console.log(plain);
// output:
// タイトルとか
// 強調とかリンクとか。
こんな感じ。 かなりシンプルに実装出来ます。
第二引数のオプションで、gfm対応を無効にしたり画像のaltを表示しないようにしたりの指定が出来るようです。
const plain = removeMd(markdown, {
stripListLeaders: true, // リストの先頭の - とか * とかを消すかどうか。
listUnicodeChar: '', // リストの頭に使う文字。その名の通りunicodeが使える。
gfm: true, // GitHub-Flavored Markdownに対応させるかどうか。
useImgAltText: true, // 画像のalt部分を出力に含めるかどうか。
});
随分更新が無いのが気になるといえばなりますが、お手軽で良い感じです。