md_php
Markdownによる記事作成
Markdownを使用してページを出力するプログラムmd.phpについて説明いたします。
使用しているツール、CSS
次のツールとCSSを使用しました。
-
PHP Markdown Lib 1.8.0 - 14 Jan 2018
by Michel Fortin
https://michelf.ca/ -
generate-github-markdown-css
by Sindre Sorhus
https://github.com/sindresorhus/generate-github-markdown-css
PHPのプログラムを作成しました。
このプログラムは、PHP Markdown Libを使用して、指定されたMarkdownファイルの内容をHTMLに変換して、ベースとなるHTMLファイルの本文部分へ出力します。
準備
PHP Markdown Libとgenerate-github-markdown-cssが必要です。 それぞれダウンロードして、md.phpと同じディレクトリに置いて起きます。
css/github-markdown.css
Michelf/・・・
自分のサーバー環境に合わせて、.htaccessを編集して設置します。 多くのレンタルサーバーの場合は、オリジナルのままで良いと思います。
HTMLを出力するテンプレートファイルを用意します。 template.htmlを参考に作成してください。 このファイルは、md.phpと同じディレクトリに置いておきます。
また、出力のディレクトリ階層が異なる場合、そのディレクトリに存在するtemplate.htmlが優先して使用されます。 これにより、記事グループごとにHTMLのデザインを変えることが可能です。
出力する方法
一般的なレンタルサーバーでは、マークダウンファイルを直接扱えるようにはなっていません。 今回使用したものは、PHPで作成されているので、PHPが使えるレンタルサーバーであれば使用することができます。
マークダウンファイルを表示するには、出力するマークダウンファイルをPHPのプログラムに渡す必要があります。 一番簡単なのは、URLに直接PHPプログラムとマークダウンファイルを指定する方法です。
http://crytus.info/md.php?f=readme.md
もう少しスマートにしたかったので、WEBサーバーの設定を変えてマークダウンファイルを直接指定する方法を取りました。 使用しているサーバーはApache系のWEBサーバーなので、.htaccessが使えますので、この設定で対応しました。(サーバーによっては管理ツールからの設定など、方法が異なりますので、ご利用のサーバーに合わせた方法にする必要があります。)
いくつか方法があるのですが、ローカルの開発環境では、次の方法が使えました。
AddType text/markdown md
Action text/markdown /md.php
拡張子がmdの場合にmd.phpを起動するという指定です。
使用しているレンタルサーバーでは、この方法が使えなかったので、次のようにしています。
RewriteEngine on
RewriteRule ^(.+\.md)$ /md.php?f=$1 [L]
WEBサイト関連の仕事をしている人にはおなじみのRewriteです。 この場合は、拡張子部分がmdのURLを指定されると、最初に示したURLに自動的に書き換えてくれます。
どちらの方法でも、次のようなURLでマークダウンファイルを表示することができます。
http://crytus.info/readme.md
md.phpの機能
このPHPプログラムは、指定されたマークダウンファイルを読み込んで、HTMLへ変換して出力します。
その際に、いくつか工夫をしています。
- HTMLファイルの指定
- マークダウン出録を行うベースとなるHTMLファイルの指定を可能としました。
これにより、ページごとに別のHTMLを使用することが可能になります。 - ページタイトルやキーワード、ヘッダーなどの指定
- ページごとにタイトルなどを変えられるように、マークダウンファイルの先頭に特定の記述をすると、その内容が反映されます。
現在は、タイトル、キーワード、ディスクリプションを指定できるようにしています。