最近、Markdownで文章を書く機会が増えました。
最初はメモ程度だったのですが、一度Markdownに慣れてしまうと便利なもので、ちょっとした構成案や、記事の下書きなどもMarkdownで書くようになってしまいました。
Markdownはシンプルな記法で文章を構造化できるので、とても扱いやすいです。
そんな中で、「MarkdownファイルをそのままWebページとして公開できないだろうか?」と思い、調べてみたところ、PHPライブラリの『Parsedown』を使うことで簡単に実現できましたので、その手順をメモメモ。
なぜMarkdownを使うのか
HTMLで記事を書くこともできますが、タグをひとつひとつ記述するのは意外と大変です。
その点、Markdownなら必要最低限の記法だけで文章を記述できます。
ソースコードもスッキリするので見やすく、後から修正もしやすくなります。
また、最近ではAIとの相性も良く、Markdown形式で出力してもらう機会も増えているため、そのまま管理しやすいというメリットもあります。
必要なもの
今回使用するのは「Parsedown」というPHPライブラリです。
以下のページにあります。「Parsedown.php」をダウンロードしましょう。
ダウンロードした「Parsedown.php」を、FTPなどを利用してサーバへアップロードしてください。
Composerなどを使わなくても、このファイルひとつを配置するだけで利用できます。
使用手順
実際のコードは以下の4行だけです。
include_once('Parsedown.php');
$parser = new Parsedown();
$md = file_get_contents('sample.md');
echo $parser->text($md);
それぞれの処理内容を見ていきましょう。
1行目:Parsedownを読み込む
FTPでアップロードしたParsedown.phpを読み込みます。ディレクトリ構成などは環境に合わせてください。
2行目:インスタンスを生成する
Parsedownクラスをインスタンス化します。
3行目:Markdownファイルを読み込む
file_get_contents()を使用してMarkdownファイルを読み込みます。ここでは「sample.md」というファイルを読み込んでいます。
実際に運用する場合は、ファイルの存在チェックなどをしておきましょう。
4行目:HTMLとして出力する
読み込んだMarkdownをHTMLへ変換し、そのまま出力します。
これだけでMarkdownファイルの内容がHTMLとして表示されます。
さいごに
今回はParsedownを利用して、MarkdownファイルをHTMLとして表示する方法を紹介しました。
例えばURLパラメータでファイル名を受け取り、そのMarkdownファイルを読み込む仕組みにすれば、この4行の処理だけで複数のMarkdownファイルを管理することもできます。
ただし、ユーザーから受け取ったファイル名をそのまま使用すると、意図しないファイルを読み込まれてしまう可能性がありますので、実装する際は、ファイル名の検証やアクセス制限など、セキュリティ面にも十分注意してください。
今日の作業は以上です。お疲れ様でした!
コメント