Skip to content
No description, website, or topics provided.
PHP HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.htaccess
README.md
md.php
template.html

README.md

md_php

Markdownによる記事作成

Markdownを使用してページを出力するプログラムmd.phpについて説明いたします。

使用しているツール、CSS

次のツールと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を使用することが可能になります。
ページタイトルやキーワード、ヘッダーなどの指定
ページごとにタイトルなどを変えられるように、マークダウンファイルの先頭に特定の記述をすると、その内容が反映されます。
現在は、タイトル、キーワード、ディスクリプションを指定できるようにしています。
You can’t perform that action at this time.