Prettify.JS を使用して、開発中の Web サイトにコードを表示しています。スクリプト タグ、特に「非リンク」タグに問題があるようです。
<pre>
// Link CSS
<link rel="stylesheet" href="device.css" />
// Link JQuery
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
// Link DeviceJS
<script type="text/javascript" src="device.min.js"></script>
// Initialize DeviceJS
<script>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
</pre>
このコードは次のように表示されます (script タグ全体が赤くなっていることに注意してください)。
ただし、以下の小さなハックを行うと (スクリプトの開始タグを閉じる前に、目に見えない html を追加します):
<pre>
// Link CSS
<link rel="stylesheet" href="device.css" />
// Link JQuery
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
// Link DeviceJS
<script type="text/javascript" src="device.min.js"></script>
// Initialize DeviceJS
<script<span style="display:none;"> t</span>>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
</pre>
OKと表示されているようです:
問題は、リンクされていない複数のスクリプト タグ ブロックを追加した場合です。問題が再び発生します。したがって、次のコード:
<pre>
// Link CSS
<link rel="stylesheet" href="device.css" />
// Link JQuery
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
// Link DeviceJS
<script type="text/javascript" src="device.min.js"></script>
// Initialize DeviceJS
<script<span style="display:none;"> t</span>>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
<script<span style="display:none;"> t</span>>
$(document).ready(function () {
$('selector').devicejs(options);
});
</script>
</pre>
次のように表示されます。
Prettify.JS ソース コードを調べたところ、1211 行目に次のように表示されました。
['lang-js', /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
これはレクサーの一部であると私は信じています。
私は Regex Ninja ではないので、Prettify.JS が属性のない非リンク スクリプト タグに対応できるように、これを微調整する方法を教えていただければ幸いです。
前もって感謝します。