WordPressにはてな記法を導入するプラグインを作った
はてなダイアリーでおなじみのはてな記法ですが、慣れるとさくさく記事が書けて良いので、是非WordPressでも使いたいと思い、HatenaSyntax - openpearを利用して作ってみました。
手軽に導入出来るので、はてな記法が大好きなWordPressユーザーは是非使ってみて下さい。
目次
ダウンロード
WP HatenaNotation - v1.4.1
対応している記法
| 記法名 | 書式 | 備考 |
|---|---|---|
| 見出し記法 | *~~ | 設定で指定した見出しレベル |
| 小見出し記法 | **~~ | 見出しレベルをアスタリスクで指定 |
| リスト記法 | -~~, --~~, +~~, ++~~ | 順序無し、順序付きリスト |
| 定義リスト記法 | :~~:~~ | |
| 表組み記法 | | ~~ | ~~ |, |*~~ | ~~ | | |
| 引用記法 | >> ~~ << | blockquoteでマークアップ |
| pre記法 | >| ~~ |< | preでマークアップ |
| スーパーpre記法 | >|| ~~ ||< | 設定で指定したマークアップ HTMLエスケープ付き |
| 脚注記法 | (( ~~ )) | |
| http記法 | [http://~~] [http://~~:title=hoge] [http://~~:title] |
キャッシュ用DBテーブル作成 |
| キーワード記法 | [[ ~~ ]] | キーワードにはタグが使用される |
| 下書き記法 | <!-- ~~ --> | 記事を公開しつつ部分的に下書き |
| 目次 | [:contents] | 見出し(記法)のインデックス |
| 続きを読む | ==== | 記事を表示する際<!--more-->に置換 |
はてな記法の設定
| 項目名 | 説明 | 初期値 |
|---|---|---|
| 無効日指定 | 指定日以前でははてな記法が無効になる | 現在の最終投稿日 |
| 見出し記法の基準値 | *見出し のHeading level | h3 |
| 包含要素を使用する | はてな記法を包含する要素 | 使用する |
| 包含要素のclass | 記事全体を囲むdivのclass | section |
| 脚注部分のclass | 脚注記法で下部に挿入されるdivのclass | footnote |
| スーパーpre記法のマークアップ | %type%を指定言語に置換 %content%を内容に置換 |
syntaxhighlighter2 |
| タイトルのキャッシュを保持する日数 | [http://~~~:title]のキャッシュ | 90 |
特殊なケース
以下のような特殊なケースにも対応しています。
HatenaSyntaxをOpenpearで管理する
2010年6月8日の更新時にOpenpearで個別に管理出来る機能を廃止しました。
the_content()を使っていない場合
圧倒的少数だと思いますが、the_content()を使わずに記事を出力している場合は、wphn_render()関数に、はてな記法文字列を渡して利用することが出来ます。
<?php echo wphn_render($content);
応用すればコメントではてな記法を使ったりも出来ますね。
謝辞
PHPではてな記法を扱う素敵なライブラリを提供して下さったanatooさん、何となく動作チェックを手伝って下さったnoriさん、お二人にはこの場を借りてお礼申し上げます。
バグ報告・機能追加要望は、この記事のコメントやメールなどで頂ければ幸いです。
更新履歴
- 2011-05-26 - v1.4.1
- <!--more-->が指定されている記事が分割されない問題を修正
- 2011-05-25 - v1.4.0
-
- アーカイブページで実行するタイミングを変更
- 「続きを読む」記法に対応
- 2011-02-04 - v1.3.1
-
- HatenaSyntaxをバージョンアップ。
- Title自動読み込みをSSLに対応。
- 細かいバグ修正。
- 2010-08-21 - v1.3.0
- <p>や<br>をWordPressで解釈するオプションを追加。
- 2010-06-30 - v1.2.1
-
- HatenaSyntaxをバージョンアップ。
- JSONの構文エラーを修正。
- 2010-06-08 - v1.2.0
-
- OpenpearのHatenaSyntaxを読み込まないようにした。
- タイトル取得を少し頑張るようにした。
- 2010-06-01 - v1.1.4
- 見出しや注釈のIDがユニークで無い問題を修正。
- 2010-06-01 - v1.1.3
- 見出しや注釈のIDがinvalidになる問題を修正。
- 2010-05-21 - v1.1.2
- リスト記法のネスト時に</p>が挿入される不具合を修正(wpautop()の誤作動)。
- 2010-05-15 - v1.1.1
- 取得したタイトルのHTMLエンティティをデコード。
- 2010-05-14 - v1.1.0
-
- UTF-8のタイトルが文字化けする不具合を修正
- 設定画面に「キャッシュを空にする」ボタンを設置
- 2010-05-11 - v1.0.4
- HatenaSyntaxをバージョンアップ。
- 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などでハイライトしていただくことになります。
今後、シンタックスハイライトも含めて変換するかどうかは検討中です。
お手数おかけしますが、よろしくお願いします。
早々にご回答いただき、ありがとうございました。
非常に便利なプラグインなので、シンタックスハイライトが付くといいですね。
これからも使わせていただきます。
ありがとうございました。
初めまして。
使用させていただいておりますが、厚かましくも要望があります。
>がになってしまう件
これですとAAの表示や投稿が困難です。
できれば、お暇なときにでもaa記法を追加してくれたら嬉しいです。
つなさん、初めまして。
> >がになってしまう件
投稿時に削除されてしまったようですね。
どういった件でしょうか?
> aa記法を追加してくれたら嬉しいです
中々まとまった時間がとれませんが、検討してみます。
返事が遅れて申し訳ないです。
削除された部分は、「brタグがpタグになってしまう件」でした。
また、aa記法についてですが、厚かましい要望ですみません。
すごくお暇なときにでも、検討していただければ、幸いです。
はじめまして。
プラグインを使わせていただいています。
http記法を用いて、[http://~~:title]と記述した際に表示されるタイトルが一部、文字化けしてしまうようです。
実際に文字化けしたものとして、「—」や「’」がありました。
可能であれば改善して頂ければと思います。
よろしくお願いします。
しまじろうさん、初めまして。
ご報告ありがとうございます。
関係あるかは不明ですが、UTF-8のページタイトルが文字化けする致命的なバグがあったため修正しました。
プラグインをアップデートした後「はてな記法の設定」から「キャッシュを空にする」をクリックしてから再度確認をお願いします。
アップデート後も文字化けが発生するようでしたら、該当URLをお教え頂ければ助かります。
ver1.3.0を使用していますが、引用記法、pre記法、スーパーpre記法が有効になりません。
何かオプションなどあるのでしょうか。
poekさん、初めまして。
使用できない記法をみた感じですと、不等号を使うモノに限定されているようです。
エディタのモードがビジュアルになっている場合は、HTMLに変更して試してみて下さい。
変更を行っても使えない場合は、WordPressのバージョンやサーバーの環境等をご提示下さい。
お世話になっております。
返事が遅れてすいません。
以下のバージョンになっています。
wordpress 3.0.1
Apache 2.2.3
PHP 5.3.3
エディタはビジュアルモードにはなっていませんでした。
どうぞ、よろしくお願い致します。
poekさん
こちらこそ返事が遅れてしまい申し訳ないです。
サーバーはどちらをお使いでしょうか。
また、差し支えなければ、実際に不具合の出ているURLをご提示いただけるとありがたいです。
お返事ありがとうございます。
サーバーはVirtualBox上の仮想サーバで試していました。
そのため公開しているURLはまだないのです。。
ご期待に添えずすいません。。
個人的にはPHP5.3にしているからかなぁと思ったりします。
なるほどです。
僕も開発時はまず5.3系で確認していますので、5.3自体は直接関係ないかと思います。
エラーログは何か出ていたりしますか?
うーん、特に何もでてないようです。
原因が分からないと修正のしようがないですね。。
力不足で申し訳ないです。
そしてすいません。明日も会社があるので寝ます。
失礼します。
こちらこそ、すみません><
# コメントは承認後に公開されるようになっています。
このコメントを見るかたも居るので、ここで報告しておきます。
私の勘違いで(タグで囲うと背景色が変わると思っていた)、rewさんのプラグインが原因ではありませんでした。
skypeでのやりとりや、virtualboxのイメージからわざわざ原因をつきとめて下さいましてありがとうございました。m(__)m
こんにちは。
- WordPress 3.0.3
- PHP 5.1.6
今回WPを新規インストールした上でこちらのプラグインを入れてみたのですが、プラグインを有効にすると本文が全て表示されなくなってしまいます。
別のプラグインを全て無効にした上で、テーマを色々変更しつつ試してみたのですが、やはり同様の状況です。
PHPのバージョンが低いかなとは思うのですが、こちらのプラグインはバージョンいくつ以上で動作可能なのでしょうか?
ごめんなさい、readmeに書いてありましたね。
残念ですが諦めることにします。失礼しました。
初めまして。
当プラグインを使用しているものです。
はてな記法に「続きを読む」を対応させるのは難しいでしょうか?
stryhさん初めまして。
当プラグインをご利用いただきありがとうございます。
続きを読む記法への対応についてですが、
今のところWordPress側のフィルターが不足しているため、
記事の保存時に====を<!–more–>に置き換える程度のことしか出来ません。
何かスマートに対応する方法があれば実装したいのですが、
現状は<!–more–>をご利用いただければと思います。
本日当プラグインを更新しました。
「続きを読む」の記法に対応し「続きを読む」の書き方が楽になりました。
しかし、1点問題があります。
すでにWordPressの記法に対応した書き方「<!–more–>」を使用し記事を登録している場合、記事全文が表示されてしまい折角続きを読むを設定しているのに意味が無くなってしまうと思います。
仕様が変わったということではありますが、この辺りどうお考えでしょうか?
コメントありがとうございます。
ご報告いただいた問題についてですが、確かに<!–more–>が指定されている場合を考慮していませんでした。
先ほどプラグインを修正し、<!–more–>が指定されている記事も分割するようしました。
お手数ですが、もう一度プラグインを更新していただき、状況をご確認いただければと思います。
ご報告ありがとうございました :)
はじめまして。
便利なプラグインを作って頂いてありがとうございます!
見出しのIDを削除したいと思っているのですが、どの部分を変更すればいいのかわかりません。
ご教示頂けないでしょうか。
宜しくお願い致します。
先日は「続きを読む」の対応有り難う御座いました。それと返事が遅くなり申し訳ありませんでした。
更に1点確認が御座います。
現在、自分のBlogでソースコードをハイライトするため「WP SyntaxHighlighter」というプラグインを使用しています。
先日、「WP HatenaNotation」、「WP SyntaxHighlighter」を有効にした状態でハイライトを行った際、2重改行で表示されてしまう事象が起きました。
具体的には下記の様な形です。
–
public class HelloWorld {
public static void main (String[] args) {
System.out.println(“Hello World !!”);
}
}
–
↓
–
public class HelloWorld {
public static void main (String[] args) {
System.out.println(“Hello World !!”);
}
}
–
今現在は2重改行されてしまうので、WP HatenaNotationを停止しております。
・WP HatenaNotation
・WP SyntaxHighlighter
この2つのプラグインを共に有効にでき、且つ2重改行を起きなくする対策等ありますでしょうか?
もし無いのであれば他の方法を模索するしかないと考えています。
WP HatenaNotationを使用しはてな記法のエントリーが多いため出来れば2つとも有効状態にできる方法があると助かります。
宜しくお願いします。
runさん、はじめまして。
現在このプラグインには見出しのIDを削除する機能はありません。
プラグインの内部で使用しているライブラリの挙動に依存しているため、
今後対応するかどうかは不明です。
stryhさん
ご報告いただいた件ですが、「WordPressの改行を使用する」設定が「使用しない」かつpre要素を直接入力した場合に再現することを確認しました。
2重改行の回避策は二通りあります。
1. 「WordPressの改行を使用する」設定を「使用する」にする
2. スーパーpre記法を使う
WP HatenaNotationのスーパーpre記法はデフォルトでSyntaxHighlighterに対応しています(WP SyntaxHighlighterはSyntaxHighlighterをWordPressで手軽に使えるようにするプラグインです)。
上記のいずれかを一度お試し下さい。
Hoakiさん。
返答有り難うございます。
ご提示して頂いた内容で行った所、2重改行が解消しました。
有り難う御座いました。
WP HatenaNotationとSyntax Highlighterの組み合わせでソースコードをスーパープリ記法で記載するとき、
>|perl|
my $num = 0;
|||cpp|
int num = 0;
||<
と書くと本来は別々のソースで分割されて欲しいのが1つにまとまり、かつ後から記載した方はそのまま表示されました(以下のような感じです)。
my $num = 0;
|||cpp|
int num = 0;
分割して表示は可能でしょうか?バージョンはWordpressおよびSyntax Highlighterともに最新版です(確認したのはSyntax Highlighter Evolvedです)