PHPのはてな記法パーサーをver0.0.3にアップグレード

ダウンロード

HatenaSyntax ver0.0.3
過去のバージョンや詳しい仕様はこちら:やったーphpではてな記法のパーサーできたよー - id:anatooのブログ

変更点

  • オプションを設定できるようになった
    • HTMLをエスケープするかどうかの指定
    • 記事のIDの指定(同一ページに複数の記事を置いても脚注のためのアンカーがかぶらないようにできる)
  • 定義リスト記法の改良
  • 記事と脚注をdivタグでくくるようにした

サンプル

<?php
include 'HatenaSyntax.php';

// コンストラクタに渡す配列でオプション設定
$hs = new HatenaSyntax( array(
  'htmlescape' => true,    // htmlタグをエスケープするかどうか。デフォルトはfalse。
  'id' => 'some_article'   // 記事のid。脚注のアンカーに使われる。
));

echo $hs->parse('
*見出し
適当な文字列
<a href="javascript:alert(\'hoge\');">click!</a>

**hoge

:定義:説明
::説明2

-リスト
--リスト
--リスト
-リスト

本文です((脚注))

+順序付きリスト
++順序付きリスト
+++順序付きリスト

|*項目1|*項目2|
|りんご|1     |
|みかん|2     |

>>
***引用
ですよー
<<
');

サンプルの実行結果

<div class="section">

<h3>見出し</h3>
<p>適当な文字列</p>
<p>&lt;a href=&quot;javascript:alert(&#039;hoge&#039;);&quot;&gt;click!&lt;/a&gt;</p>

<h4>hoge</h4>

<dl>
<dt>定義</dt>
<dd>説明</dd>
<dd>説明2</dd>
</dl>

<ul>
<li>リスト</li>
<ul>
<li>リスト</li>
<li>リスト</li>
</ul>
<li>リスト</li>
</ul>

<p>本文です(<a href="#f1_some_article" name ="#b1_some_article" title="脚注">*1</a>)
</p>

<ol>
<li>順序付きリスト</li>
<ol>
<li>順序付きリスト</li>
<ol>
<li>順序付きリスト</li>
</ol>
</ol>
</ol>

<table>
<tr><th>項目1</th><th>項目2</th></tr>
<tr><td>りんご</td><td>1     </td></tr>
<tr><td>みかん</td><td>2     </td></tr>
</table>

<blockquote>
<h5>引用</h5>
<p>ですよー</p>
</blockquote>

</div>

<div class="footnote">
<p><a href="#b1_some_article" name="#f1_some_article">*1</a>: 脚注</p>
</div>