編集画面での改行位置に自動で改行(<br />)を入れるようにしているのだけど Nucleus は <pre> タグの内部にまで改行を入れてくれる.結果として二重の改行となってしまいひじゃうに見栄えが悪い.
ということで,ソースをいじって <pre> タグの内部に改行入れないようにしてみた.nucleus/libs/globalfunctions.php にある addBreaks というのが編集後の保存時に改行を挿入している関数らしい.
function addBreaks($var) { return nl2br($var); }
php のnl2br という関数を使って一律に改行の挿入を行っているので,これを pre タグの内部と外部で挙動が変わるように変更.
function addBreaks($var) { $i=0; $v2=""; $n=mb_strlen($var); while($i<$n){ $p=mb_strpos($var,"<pre",$i); if($p==FALSE){ $v2.=nl2br(mb_substr($var, $i)); break; } $v2.=nl2br(mb_substr($var, $i,$p-$i)); $i=$p; $p=mb_strpos($var,"</pre>",$i); if($p==FALSE){ $v2.=mb_substr($var, $i); break; } $v2.=mb_substr($var, $i,$p-$i); $i=$p; } return $v2; }
もっときれいに書けるだろうけど必要十分なので汚さはむし.
- Newer: AWK - はじめ