2006/7/14 金曜日

Markdown を使って見た

Filed under: Wiki — y2sunlight @ 8:37:17

前回「Markdown を使ってみよう」の続きです。今日は、実際にMarkdownを使ってみました。

自分のプログラムでMarkdownを使う

Marckdownの使い方は簡単です。

include_once “markdown.php”;

して、例えば、$html にWiki風テキスト(Marckdown書式)が入っているとすると、

$html = Markdown($html);

として、後は出力するだけです。以下はサンプルプログラムです。

サンプルプログラム:sample.php

<?php
include_once “markdown.php”;

$html = <<<HTML
#H1
これはH1

##H2
これはH2

<div class=”mytable” markdown=”1″>
項目|内容
—-|—-
Cell|Cell
</div>
HTML;

$html = Markdown($html);
?>
<html>
<head><title>MarkDown</title></head>
<body>
<?php echo $html ?>
</body>
</html>

Markdown Extraでは、Markdown で出来なかったテーブルが使える他、上例のように divブロック の中でMarkdown書式が使えます。

divブロックでMarkdown書式 を使うには上のように カスタム属性 markdown=”1″ を使います。この機能により、CSSを使ってMarkdown書式のスタイルを完全に制御することが可能になります。 

上のサンプルプログラムは以下のhtmlを生成します。

<html>
<head><title>MarkDown</title></head>
<body>
<h1>H1</h1>

<p>これはH1</p>

<h2>H2</h2>

<p>これはH2</p>

<div class=”mytable”>

<table>
<thead>
<tr>
  <th>項目</th>
  <th>内容</th>
</tr>
</thead>
<tbody>
<tr>
  <td>Cell</td>
  <td>Cell</td>
</tr>
</tbody>
</table>

</div>
</body>
</html>

smartyでMarckdownを使う

Marckdown.phpの中にはSmartyの修正子プラグインが入っています。ですから、名前を変えて所定の場所に設置するだけでSmartyからmarckdownが使えます。 (うーん。いい方法だ。これは使える。) 

設置方法:

  1. markdown.php の名前を modifier.markdown.php に変える
    ※これはsmartyプラグインの命名規則に従うためです
  2. modifier.markdown.php を所定のsmartyプラグインディレクトリに設定する

Smartyの修正子プラグインを使った例を示します。この例は先の「自分のプログラムでMarkdownを使う」と同じhtmlを生成します。

サンプルプログラム:sample.php

<?php
require_once(’MySmarty.class.php’);
$objSmarty =& new MySmarty;

$html = <<<HTML
#H1
これはH1

##H2
これはH2

<div class=”mytable” markdown=”1″>
項目|内容
—-|—-
Cell|Cell
</div>
HTML;

$objSmarty->assign(’contents’,$html);
$objSmarty->display(’template.html’);
?>

テンプレートファイル:template.html

<html>
<head><title>MarkDown</title></head>
<body>
{$contents|markdown}
</body>
</html>

この方法は、上のテンプレートを見て分かるように 本当にスマーティにmarchdownが使えます。自作のCMSを作る場合は是非とも取り入れたい手法です。

2日にわたって駆け足で、marchdownを説明しました。marchdownは研究の余地ありです。marckdown書式について早々にまとめたく思っています。結果は、「水の巻」でご覧下さい。では。

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URI

コメントをどうぞ

HTML convert time: 0.788 sec. Powered by WordPress ME