にへるつおるぐ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 |

10年ぶりに部屋に入るとコウモリや猫の巣窟だった

Nucleus CMS

2009-03-12 16:37:30 JST-9 | akebia | Nucleus | コメント | トラックバック | 履歴

NP_Markdownで記事を表示すると、タブがスペースに変換されて表示されます。そうすると、記事中にプログラムのソースコードを書いた場合に、読み手がそれをコピペした時に、元のソースコードにあったタブが失われてしまうことになります。このパッチは、そのような問題を解決するのに役立つかもしれません。

対応するNP_Markdownのバージョンは、0.5.1。Markdownは、PHP Markdown Extra 1.2.3です。

このパッチを適用するには、先ず、「MarkdownEx2.php」を「markdown.php」と同じディレクトリに置いて下さい。それから、元の「NP_Markdown.php」と同じディレクトリに、「NP_Markdown.php.patch」を置いて、そのディレクトリをカレントディレクトリとして、下記のコマンドを実行して下さい。

patch -b < NP_Markdown.php.patch

システムによって改行コードの問題があります。「patchコマンドの簡単な使い方」を参照して下さい。

オリジナルのNP_Markdownは記事を処理する際、Markdown関数を呼び出しますが、パッチを当てたNP_Markdownは、MarkdownEx2関数を呼び出します。MarkdownEx2関数は、MarkdownEx2.phpの中で定義されていて、MarkdownEx2.phpは、パッチを当てたNP_Markdownにより、markdown.phpの代わりに読み込まれます。

MarkdownEx2.phpでは、MarkdownEx2関数と共にMarkdownEx2_Parserクラスを定義しています。MarkdownEx2_Parserクラスは、markdown.phpで定義されているMarkdownExtra_Parserのサブクラスです。MarkdownEx2_Parserクラスは、スーパークラスのdetabメソッドをオーバーライドすることにより、タブをスペースに変換する機能を無効化しています。

何か問題が発生した時には、MarkdownEx2_Parserクラスにて、スーパークラスのメソッドをオーバーライドしたりしてなんとかすることにより、markdown.phpをいじらなくてもある程度対応できるかもしれません。

MyMiniCity 人気ブログランキングへ

  1. NP_Markdown 0.5.1 (1)
  2. あけび 変換すると (1)

Comments

No comments yet

Add Comment

Trackback

このトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。


http://2hz.org/akebia/