RustでMarkdownのHTML変換を試してみる
はじめに
この記事では、「RustでMarkdownをHTMLへ変換する方法と実際に試してみた記録」について書いています。
Rustの勉強の一環として色々なcrateを触ってみようと思い、今回はMarkdownをHTMLへ変換するということをテーマに調べてみました。
自分に向けた備忘録の意味もありますが、「RustでMarkdownをHTMLに変換する処理を行いたい」な人の一助になれば嬉しいです。
要点だけ
- MarkdownのHTML変換では
pulldown-cmark
というcrateを使うのが良さそう&簡単
前提(環境)
私の環境のバージョン情報は以下の通りです。
- OS: Windows 10
- Rust: 1.64.0
手順
MarkdownのHTML変換について、何か良いcrateが無いか調べていましたが、どうやらpulldown-cmark
というcrateが一番ダウンロード数が多かくて良さそうなのでそれを使うことにしました。
この記事を作成した時点のpulldown-cmark
の最新は0.9.2のようなので、そちらを使ってMarkdownをHTMLに変換を試みてみたいと思います。
コマンドプロンプトからcargo new md2html
で新しいプロジェクトを作成し、main.rs
は以下のように記述しました。
use pulldown_cmark::{html, Parser}; fn main() { let markdown_input = "\ # Title Hello **world!!**"; println!("--- markdown_input ---\n{}\n------\n", markdown_input); let parser = Parser::new(markdown_input); let mut html_output = String::new(); html::push_html(&mut html_output, parser); println!("--- html_output ---\n{}\n------\n", html_output); }
markdownで記述されてる文字列の変数を用意し、それをhtmlに変換してます。
さて、(Cargo.toml
にpulldown-cmarkの記述を追加して、)
cargo run`をしてみると、結果は以下のようになります。
--- markdown_input --- # Title Hello **world!!** ------ --- html_output --- <h1>Title</h1> <p>Hello <strong>world!!</strong></p> ------
ちゃんとmarkdownの記述がhtmlに変換されているようです。
おわりに
「RustでMarkdownをHTMLへ変換する方法と実際に試してみた記録」について解説しました。
このcrateを活用して、オレオレmarkdwon2HTMLツールを作ってみるのも良いかもしれませんね。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。