にゃんこうけ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 |

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

Nucleus CMS

2009-03-12 14:21:56 JST-9 | akebia | Nucleus | コメント | トラックバック | 履歴

NP_GeSHi2でソースコードを表示すると、何故か空行にスペースが1つ入って表示されます。また、空行に元々空白類があった場合、その空白類が1つのスペースに置き換わって表示されます。このような動作を無効にするパッチを作ってみました。このパッチは<pre>タグを使った場合のみに効果があります。

現在のパッチは、空行に元々空白類があった場合、それを削除せずにスルーさせます。削除した方がよい場合には、以前のものを使うことができます。

対応するNP_GeSHi2のバージョンは、0.1。GeSHiは、GeSHi 1.0.8.2です。

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

patch -b < NP_GeSHi2.php.patch

Windowsで実行した場合には、そのままでパッチが当たると思いますが、UNIX系で実行する場合には、元の「NP_GeSHi2.php」の改行コードをUNIXスタイルに変換しておく必要があります。パッチのファイルの最後には改行コードが必要なので、コピペして最後が改行コードにならなかった時には、手動で改行コードを入れて下さい。「patchコマンドの簡単な使い方」も参照して下さい。

次に、元の「geshi.php」と同じディレクトリに、「geshi.php.patch」を置いて、そのディレクトリをカレントディレクトリとして、下記のコマンドを実行して下さい。

patch -b < geshi.php.patch

Windowsで実行する場合には、元の「geshi.php」の改行コードをDOSスタイルに変換しておく必要があります。パッチのファイルの最後には改行コードが必要なので、コピペして最後が改行コードにならなかった時には、手動で改行コードを入れて下さい。

オリジナルのNP_GeSHi2は、ソースコードを囲んだ<pre>タグを出力時には削除してた気がするのですが、このパッチを当てたNP_GeSHi2は<pre>タグを削除せずに出力します。(<code>タグを使った場合の動作はオリジナルと変わりません。)オプションの「Header for pre」は、<pre>の直前、「Footer for pre」は、</pre>の直後に挿入されます。

<pre>タグが出力されるということは、長い行のソースコードを表示されると、ページが横に長くなってしまうのですが、その問題は、「[ CSS ] pre でも改行を生かしたまま折り返す | Bowz::Notebook:」というようのを使って解決できると思います。

NP_MarkdownEditorを使っている場合には、admin-mde.cssに、たとえば、下記のようなのを書き加えます。

div#mde-prevmore pre, div#mde-prevbody pre{
	white-space: -moz-pre-wrap; /* Mozilla */
	white-space: -pre-wrap;     /* Opera 4-6 */
	white-space: -o-pre-wrap;   /* Opera 7 */
	white-space: pre-wrap;      /* CSS3 */
	word-wrap: break-word;      /* IE 5.5+ */
}

ちなみに、「geshi.php.patch」を適用したgeshiは、MediaWikiのSyntaxHighlight_GeSHiにも流用できるみたいです。あけび猫が「SyntaxHighlight_GeSHi-MW1.14-r45462」で試したところでは、geshiを入れ替えるだけで効果があり、SyntaxHighlight_GeSHiにはパッチは不要みたいでした。やってみて、なかなか効果が出ない場合には、FileCacheを削除したり、memcachedを再起動させたりするとよいと思います。

人気ブログランキングへ 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/790)
  8. Simple Category Tree [Custom Edition] (v0.1.2-x)(6/704)
  9. NP_Markdownでタブがスペースに変換されないようにするパッチ(6/734)
  10. NP_RevisionFirst - ドラフト以外の最も古いリビジョン番号を挿入(6/734)
  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_Markdownでタブがスペースに変換されないようにするパッチ(6/734)
  12. NP_GeSHi2で空行にスペースが入らないようにするパッチ(6/790)
  13. MonthlyArchivLinks (v0.1-1)(6/711)
  14. NP_RevisionFirst - ドラフト以外の最も古いリビジョン番号を挿入(6/734)
  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/