にゃんこうけ | 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

Windowsで実行する場合には、元の「NP_Markdown.php」の改行コードをDOSスタイルに変換しておく必要があります。パッチのファイルの最後には改行コードが必要なので、コピペして最後が改行コードにならなかった時には手動でEnterキーを押す等して改行コードを入れて下さい。「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 WebMoney ぷちカンパ

Comments

No comments yet

Add Comment



Trackback

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

人気アイテム(人気順) 人気アイテム(不人気順)
  1. NP_Revision (v0.7-x) - 記事の変更履歴管理と差分表示(32/2656)
  2. Mobile with single page (v2.1.0-1 beta)(13/1567)
  3. 携帯電話用のスキン(7/843)
  4. NP_znItemCacheをNP_Revisionに対応させるパッチ(7/877)
  5. NP_Revisionで初版の記事中で引用符等がエスケープされないようにするパッチ(7/877)
  6. NP_Revisionをfancy URLで動作させるパッチ(6/757)
  7. NP_GeSHi2で空行にスペースが入らないようにするパッチ(6/791)
  8. Simple Category Tree [Custom Edition] (v0.1.2-x)(6/704)
  9. NP_RevisionFirst - ドラフト以外の最も古いリビジョン番号を挿入(6/734)
  10. NP_Markdownでタブがスペースに変換されないようにするパッチ(6/735)
  11. MonthlyArchivLinks (v0.1-1)(6/711)
  12. NP_AutoTwitterをfancy URLとbit.lyに対応させるパッチ(5/280)
  13. NP_CustomThumbnailをNP_MarkdownEditorで使いやすくするパッチ(5/661)
  14. NP_Popularity - 人気記事のリストを作成(5/629)
  15. NP_ActionURL - Action URL(5/656)
  16. NP_CatDescをテーブルプリフィックスに対応させるパッチ(5/629)
  17. NP_PluginListで名前や作者に特殊文字が含まれているプラグインを正しく表示させるパッチ(4/553)
  18. NP_ItemCatID - カテゴリ向けの機能をアイテムテンプレートで動作させる(4/557)
  19. NP_AdminURL - Admin URL(4/548)
  20. Count Entries (v1.3-1)(3/439)
  1. memory_limit - NP_CustomThumbnailがアボートする場合の対策(3/446)
  2. Count Entries (v1.3-1)(3/439)
  3. NP_AdminURL - Admin URL(4/548)
  4. NP_PluginListで名前や作者に特殊文字が含まれているプラグインを正しく表示させるパッチ(4/553)
  5. NP_ItemCatID - カテゴリ向けの機能をアイテムテンプレートで動作させる(4/557)
  6. NP_AutoTwitterをfancy URLとbit.lyに対応させるパッチ(5/280)
  7. NP_ActionURL - Action URL(5/656)
  8. NP_CustomThumbnailをNP_MarkdownEditorで使いやすくするパッチ(5/661)
  9. NP_CatDescをテーブルプリフィックスに対応させるパッチ(5/629)
  10. NP_Popularity - 人気記事のリストを作成(5/629)
  11. NP_RevisionFirst - ドラフト以外の最も古いリビジョン番号を挿入(6/734)
  12. NP_GeSHi2で空行にスペースが入らないようにするパッチ(6/791)
  13. MonthlyArchivLinks (v0.1-1)(6/711)
  14. NP_Markdownでタブがスペースに変換されないようにするパッチ(6/735)
  15. Simple Category Tree [Custom Edition] (v0.1.2-x)(6/704)
  16. NP_Revisionをfancy URLで動作させるパッチ(6/757)
  17. 携帯電話用のスキン(7/843)
  18. NP_Revisionで初版の記事中で引用符等がエスケープされないようにするパッチ(7/877)
  19. NP_znItemCacheをNP_Revisionに対応させるパッチ(7/877)
  20. Mobile with single page (v2.1.0-1 beta)(13/1567)

http://nyan.co.uk/akebia/