WordPressにはてな記法を導入するプラグインを作った
はてなダイアリーでおなじみのはてな記法ですが、慣れるとさくさく記事が書けて良いので、是非WordPressでも使いたいと思い、HatenaSyntax - openpearを利用して作ってみました。
手軽に導入出来るので、はてな記法が大好きなWordPressユーザーは是非使ってみて下さい。
目次
ダウンロード
WP HatenaNotation - v1.0.2
対応している記法
| 記法名 | 書式 | 備考 |
|---|---|---|
| 見出し記法 | *~~ | 設定で指定した見出しレベル |
| 小見出し記法 | **~~ | 見出しレベルをアスタリスクで指定 |
| リスト記法 | -~~, --~~, +~~, ++~~ | 順序無し、順序付きリスト |
| 定義リスト記法 | :~~:~~ | |
| 表組み記法 | | ~~ | ~~ |, |*~~ | ~~ | | |
| 引用記法 | >> ~~ << | blockquoteでマークアップ |
| pre記法 | >| ~~ |< | preでマークアップ |
| スーパーpre記法 | >|| ~~ ||< | 設定で指定したマークアップ HTMLエスケープ付き |
| 脚注記法 | (( ~~ )) | |
| http記法 | [http://~~] [http://~~:title=hoge] [http://~~:title] |
キャッシュ用DBテーブル作成 |
| キーワード記法 | [[ ~~ ]] | キーワードにはタグが使用される |
| 下書き記法 | <!-- ~~ --> | 記事を公開しつつ部分的に下書き |
| 目次 | [:contents] | 見出し(記法)のインデックス |
はてな記法の設定
| 項目名 | 説明 | 初期値 |
|---|---|---|
| 無効日指定 | 指定日以前でははてな記法が無効になる | 現在の最終投稿日 |
| 見出し記法の基準値 | *見出し のHeading level | h3 |
| 包含要素を使用する | はてな記法を包含する要素 | 使用する |
| 包含要素のclass | 記事全体を囲むdivのclass | section |
| 脚注部分のclass | 脚注記法で下部に挿入されるdivのclass | footnote |
| スーパーpre記法のマークアップ | %type%を指定言語に置換 %content%を内容に置換 |
syntaxhighlighter2 |
| タイトルのキャッシュを保持する日数 | [http://~~~:title]のキャッシュ | 90 |
特殊なケース
以下のような特殊なケースにも対応しています。
HatenaSyntaxをOpenpearで管理する
パスが通っているディレクトリのHatenaSyntax.phpを優先的に読み込むので、HatenaSyntaxをOpenpearで管理する事も可能です。
Openpearの使用方法は、openpear :: Open PEAR Repository Channel 及び HatenaSyntax - openpearを参照して下さい。
※Openpearで管理する場合の動作はサポート対象外となります。
the_content()を使っていない場合
圧倒的少数だと思いますが、the_content()を使わずに記事を出力している場合は、wphn_render()関数に、はてな記法文字列を渡して利用することが出来ます。
<?php echo wphn_render($content);
応用すればコメントではてな記法を使ったりも出来ますね。
謝辞
PHPではてな記法を扱う素敵なライブラリを提供して下さったanatooさん、何となく動作チェックを手伝って下さったnoriさん、お二人にはこの場を借りてお礼申し上げます。
バグ報告・機能追加要望は、この記事のコメントやメールなどで頂ければ幸いです。
更新履歴
- 2010-02-02 - v1.0.2
- スーパーpre記法の二重エスケープを防止。
- 2010-02-02 - v1.0.1
wphn_render()関数内のtypoを修正。- 2010-01-29 - v1.0.0
- 大幅な更新。詳しくはWP HatenaNotation v1.0.0を公開しましたを参照。
- 2009-11-16 - v0.5.1
- v0.5の途中から誤って開発版がリリースされていたのを修正
- 2009-11-06 - v0.5
- 目次記法 [:contents]、キーワード記法(タグを使用)、下書き記法に対応
- 2009-06-17 - v0.4
- 公開
投稿されたコメント
すばらしいプラグインですね。ひとつ質問ですが無効日指定などの設定はどこで行うのですか?
無効日指定などの各種設定は、投稿メニューの辺りに出てくると思います。
投稿メニューだとちょっと解りづらいですかね。
設定メニューに移すか検討してみます。
すばらしいプラグイン、ありがとうございます!
もし可能でしたら、最新バージョンの”HatenaSyntax”に対応頂ければ、と存じます。
# 色々と、対応記法が増えているようです
よろしくお願い申し上げます。
ご報告ありがとうございます。
時間が空き次第対応したいと思います :)
はじめまして。
プラグインを導入すると、改行タグが段落に変わってしまうのですが、サーバーの問題でしょうか?
がになってしまいます。
哲やんさん、初めまして。
恐らく入力されたタグが、投稿時に消えてしまっているのですが、
文面から察するに、<br>が<p></p>になってしまう件でしょうか。
この挙動については、使用しているライブラリに依存しています。
はてなダイアリーとはやや異なる挙動のため、混乱されるかもしれませんね><
どうしても<br>を利用したい場合は、
「テキスト<br>テキスト」のように一行で入力することで利用可能となります。
※こちらについてははてなダイアリーと同じです。
最後に、
利用されているサーバーが悪いわけではありませんので、ご安心下さい :)
早々にご回答いただき、ありがとうございました。
通常、ビジュアルエディタを使用していたためにソースコードがHTMLエディタで見えなかったため、ちょっと驚きました。
を使用したい時にはご指導いただいたように入力しようと考えています。
ありがとうございました。
初めまして。
プラグインを導入したのですが、
スーパーpre記法のみ変換されません。
サーバー側の問題でしょうか?
よろしくお願い致します。
inventさん、初めまして。
現在のバージョン(v1.0.0)でのスーパーpre記法は、
「スーパーpre記法のマークアップ」の設定でマークアップを指定し、
JavaScriptなどでハイライトしていただくことになります。
今後、シンタックスハイライトも含めて変換するかどうかは検討中です。
お手数おかけしますが、よろしくお願いします。
早々にご回答いただき、ありがとうございました。
非常に便利なプラグインなので、シンタックスハイライトが付くといいですね。
これからも使わせていただきます。
ありがとうございました。