amazonバナー

2012年1月25日水曜日

NP_Geshiのハイライトについてまとめ

単純な備忘録です。

NucleusのプラグインNP_Geshi.phpで、ソースコードを<pre プログラム言語名>で囲むとハイライトしてくれるらしいのだが、そのままでは全然使えません。。。

長いので続きは↓から。


どうにもCSSが変換されたあとのクラス名に対応してないらしく、
使うスキンのCSS(skins/***/nicetitle.cssなど)に以下を追加する。
pre {
white-space:-moz-pre-wrap;  /* Mozilla, supported since 1999 */
white-space:-pre-wrap;  /* Opera 4 - 6 */
white-space:-o-pre-wrap;  /* Opera 7 */
white-space:pre-wrap;  /* CSS3 - Text module (Candidate Recommendation) http://www.w3.org/TR/css3-text/#white-space */
word-wrap:break-word;  /* IE 5.5+ */
}

pre.pre, pre.code, pre.file {
font-family: 'Lucida Grande', Verdana, Geneva, Lucida, Arial, Helvetica, sans-serif;
line-height:140%;
font-size:x-small;
margin-top:0.5em;
margin-bottom:1em;
padding:0.5em;
border:1px dashed #9BADCA;
color:#000;
background:#f7f9fa;
overflow:auto;
}

.code .br0 {color:#886600;}
.code .co1 {color:#808080;font-style:italic;}
.code .co2 {color:#808080;font-style:italic;}
.code .coMULTI {color:#808080;font-style:italic;}
.code .es0 {color:#000099;font-weight:bold;}
.code .kw1 {color:#EE0022;}
.code .kw2 {color:#000000;font-weight:bold;}
.code .kw3 {color:#FF44CC;}
.code .kw4 {color:#993333;}
.code .kw5 {color:#0000FF;}
.code .me0 {color:#006600;}
.code .me1 {color:#0088CC;}
.code .nu0 {color:#CC66CC;}
.code .re0 {color:#5500AA;}
.code .re1 {color:#0000FF;}
.code .re2 {color:#0000FF;}
.code .re4 {color:#009999;}
.code .sc0 {color:#00BBDD;}
.code .sc1 {color:#DDBB00;}
.code .sc2 {color:#009900;}
.code .st0 {color:#00BB66;}
これでひとまずはコード部分が見やすくなるけど、
Nucleusの親切機能のおかげで改行が勝手に<br />に変換されてしまいます。
コードの中にいちいち表示されるので気に入らない。。。

次は、NP_Geshi.phpを直接いじります。
(/nucleus/plugins/NP_Geshi.php)
78行目付近に
global $DIR_PLUGINS;

とあるので、その下の行に以下を追加します。
$r[2] = preg_replace('/<br \/>/i','',$r[2]);
これでハイライトされたコードの中から改行タグが消えます。

0 件のコメント:

コメントを投稿