WP_SyntaxとbrBrbrを併用時、余計なスペースが入るのを抑制

前回、brBrbrのプラグインをチェックしたのですが、問題無さそうなうでした。
ですので、今回はWP_Syntax側のソースをチェックします。


まず、brBrbrの時と同様にソースを確認します。WP_Syntaxは、全7ファイルで構成されています。
それぞれのファイルをざっとチェックしてみましたが、メインはwp-syntax.phpのようです。



で、wp-syntax.phpですが、brBrbrと違ってこっちは200行ぐらいソースが有ります。




200行ぐらいなら頭から読んでも良いのですが、面倒なのであたりをつけます。
preタグの前後に改行が2づつ付くという状況は既に把握済みなので、”\n\n”で検索するとそれっぽいのが出てきました!!

function wp_syntax_substitute(&$match)
{
    global $wp_syntax_token, $wp_syntax_matches;
 
    $i = count($wp_syntax_matches);
    $wp_syntax_matches[$i] = $match;
 
    return "\n\n<p>" . $wp_syntax_token . sprintf("%03d", $i) . "</p>\n\n";
}



まさに、前後に改行を2つづつ付与しています。



これを、を試しに以下のように変更して試してみます。

    return "\n\n<p>" . $wp_syntax_token . sprintf("%03d", $i) . "</p>\n\n";return "st<p>" . $wp_syntax_token . sprintf("%03d", $i) . "</p>ed";


出力結果を比べると、以下のように期待した感じになりました。
(画像中の start /waitの箇所がシンタックスハイライトの処理対象になっています。)


      ↓
    



結局、修正箇所は…

というわけで…
WP_SyntaxとbrBrbr併用時に、余計なスペースが入るのを防ぐ為のパッチです。


wp_syntaxプラグイン内の、wp_syntax_substitute()メソッドを以下のように修正します。
(最後の1行のreturnを書き換えるだけです)

function wp_syntax_substitute(&$match)
{
    global $wp_syntax_token, $wp_syntax_matches;
 
    $i = count($wp_syntax_matches);
    $wp_syntax_matches[$i] = $match;
 
    /* 2012/01: brBrbrプラグイン併用時の余計な空行を取り除く */
    /* return "\n\n<p>" . $wp_syntax_token . sprintf("%03d", $i) . "</p>\n\n"; */
    return "<p>" . $wp_syntax_token . sprintf("%03d", $i) . "</p>";
}



関連記事

コメントを残す

メールアドレスが公開されることはありません。