1

ApiGen の Bootstrap テンプレートを使用しており、デフォルトのソース コード ビューを Highlight.js に置き換えたいと考えています。

これには、Netteフィルターspansを使用して、ApiGen によって生成された既存のものを削除する必要があります。replaceRE

元のコードは次のようになります。

<pre id="source">
    <code>{$source|replaceRE:'~<span class="line">(\s*)(\d+):(\s*)</span>([^\\n]*(?:\\n|$))~','<span id="$2" class="l">
        <a href="#$2">$1$2$3</a>$4</span>'|noescape}
    </code>
</pre>

変数$4には、次のように、置換が必要なスパンが含まれています。

<span class="xlang">&lt;?php</span>
<span class="php-comment">/**</span>
<span class="php-comment"> * app/Base/Controller.php</span>
<span class="php-comment"> *</span>
<span class="php-comment"> * Local base controller for application.</span>
<span class="php-comment"> */</span>
<span class="php-keyword1">use</span> Illuminate\Foundation\Bus\DispatchesJobs;

等々。

明らかに、コードは変更しないでおく必要がありますが、範囲は次のとおりです。

<span class="whatever">leave code alone</span>

削除する必要があります。

ネストを試みましたreplaceREが、ApiGen から解析エラーが発生しました。

<pre id="source">
    <code>{$source|replaceRE:'~<span class="line">(\s*)(\d+):(\s*)</span>([^\\n]*(?:\\n|$))~','<span id="$2" class="l">
        <a href="#$2">$1$2$3</a>{$4|replaceRE:'~<span .*?class="(.*?)">~',''|noescape}</span>'|noescape}
    </code>
</pre>
4

1 に答える 1