HTML を Markdown へ変換するときに知っておきたいライブラリ 11選 + α
この記事は長らく表示できない状態でした。データベースから復旧しています。
HTML を Markdown 記法に変換するライブラリいくつかとツール少しを調べました。
※ 少し試したものもありますが、きちんと不具合なく変換できるかは未検証です。拡張記法はいろいろあるので少し対応している感じであれば「○」にしました。
変換動作で注意したいのは、WordPress の本文のように Markdown + HTML 混在可能なものは、script タグなども変換後そのまま HTML として出力されないと情報が消えてしまいます。きちんとした(?)ライブラリは、文書として意味のない script タグなどは削除する動作が含まれていたり、逆にシンプルな変換のライブラリは、HTML タグを置換しているだけで対応できないタグはそのまま出力されたりします。
以下、初期の Markdown と表現しているのは、拡張を含まない Markdown 1.0.1 のことです。実際にライブラリが 100% 準拠しているかはわかりません。
<h2>Foo</h2> → ## Fooきっかけはアプリに組み込みたいというわけではなく、単に WordPress で Markdown に移行する前の記事を再編集したいときや、何かの不具合で投稿の本文が Markdown から変換後の HTML だけになってしまったときに戻したいという要望です。調べていたらいろいろ見つけてしまいました。
ライブラリ 11 + ツール & エディタ 比較
ライブラリ特徴一覧です。| 名前 | 言語 | ライセンス | 拡張記法 |
|---|---|---|---|
| reMarked.js | JavaScript | MIT | ○ |
| to-markdown | JavaScript | MIT | × |
| HTML2Markdown | JavaScript | 不明 | × |
| Simple HTML to Markdown Extra converter with regex | JavaScrpt | GPLv3 | ○ |
| Markdownify | PHP | LGPL | ○ |
| HTML To Markdown for PHP | PHP | MIT | × |
| html2text | Python | GPLv3 | × |
| url2markdown (html2text 利用) | Python | GPLv3 | × |
| reverse_markdown | Ruby | WTFPL | ○ |
| html2markdown | Ruby | MIT | × |
| Html2Markdown | C# | 不明 | × |
| Pandoc (多様な形式に対応した変換ツール) | - | - | ○ |
| Markable (オンラインエディタ) | - | - | × |
reMarked.js
[capture url="https://github.com/leeoniya/reMarked.js" title="leeoniya/reMarked.js · GitHub"]- JavaScript, MIT
- デモ
to-markdown
[capture url="https://github.com/domchristie/to-markdown" title="domchristie/to-markdown · GitHub"]- JavaScript, MIT
- デモ
HTML2Markdown
[capture url="https://github.com/hgilani/html2markdown" title="hgilani/html2markdown · GitHub"]- JavaScript, ライセンス不明
- デモサイトなし
HTML to Markdown converter using regex
[capture url="http://scito.ch/content/html-markdown-converter-using-regex" title="HTML to Markdown converter using regex | Scito"]- JavaScript, GPLv3
- デモ
Markdownify
[capture url="https://github.com/Pixel418/Markdownify" title="Pixel418/Markdownify · GitHub"]- PHP, LGPL
- デモサイトなし
- http://markdownrules.com/ が Markdownify を利用した変換サービスのようです
HTML To Markdown for PHP
[capture url="https://github.com/nickcernis/html-to-markdown" title="nickcernis/html-to-markdown · GitHub"]- PHP, MIT
- デモサイトなし
html2text
[capture url="https://github.com/aaronsw/html2text" title="aaronsw/html2text · GitHub"]- Python, GPLv3
- デモ
url2markdown
[capture url="https://github.com/kennethreitz/url2markdown" title="kennethreitz/url2markdown · GitHub"]- Python, GPLv3
- デモ
reverse_markdown
[capture url="https://github.com/xijo/reverse_markdown" title="xijo/reverse_markdown · GitHub"]- Ruby, WTFPL
- デモサイトなし
html2markdown
[capture url="https://github.com/29decibel/html2markdown" title="29decibel/html2markdown · GitHub"]- Ruby, MIT
- デモサイトなし
Html2Markdown
[capture url="https://github.com/baynezy/Html2Markdown" title="baynezy/Html2Markdown · GitHub"]- C#, ライセンス不明
- デモサイトなし




