明らかに、これはコードブロック(<pre><code>
)でのみ機能するもので、インラインコードでは機能しません。
デフォルトでは、このプラグインはすべてのコードブロックの前後の空白をトリミングします。さらに各行のインデントの追加と、後ろの空白も削除します。
<pre>
または<code>
タグのいずれかに no-whitespace-normalization
クラスを追加することで、特定のコードブロックでプラグインを無効にすることができます。
次のようないくつか data-[setting]
属性を使用して<pre<
要素のsetDefaults()
メソッドを使用して、デフォルト設定をオーバーライドできます
Prism.plugins.NormalizeWhitespace.setDefaults({
'remove-trailing': true,
'remove-indent': true,
'left-trim': true,
'right-trim': true,
/*'break-lines': 80,
'indent': 2,
'remove-initial-line-feed': false,
'tabs-to-spaces': 4,
'spaces-to-tabs': 4*/
});
以下の設定が利用可能で、<pre<
要素のdata-[setting]
属性を使用して設定できます
以下の例はこのプラグインの使用方法を示しています
その結果は次のようになります
var example = {
foo: true,
bar: false
};
var
there_is_a_very_very_very_very_long_line_it_can_break_it_for_you
= true;
if
(there_is_a_very_very_very_very_long_line_it_can_break_it_for_you
=== true) {
};
またkeep-markupプラグインと互換性があります
@media screen {
div {
text-decoration: underline;
background: url('foo.png');
}
}
このプラグインは、サーバーまたはコマンドラインでNode.jsと一緒に使用することもできます
var Prism = require('prismjs');
var Normalizer = require('prismjs/plugins/normalize-whitespace/prism-normalize-whitespace');
// Create a new Normalizer object
var nw = new Normalizer({
'remove-trailing': true,
'remove-indent': true,
'left-trim': true,
'right-trim': true,
/*'break-lines': 80,
'indent': 2,
'remove-initial-line-feed': false,
'tabs-to-spaces': 4,
'spaces-to-tabs': 4*/
});
// ..or use the default object from Prism
nw = Prism.plugins.NormalizeWhitespace;
// The code snippet you want to highlight, as a string
var code = "\t\t\tvar data = 1; ";
// Removes leading and trailing whitespace
// and then indents by 1 tab
code = nw.normalize(code, {
// Extra settings
indent: 1
});
// Returns a highlighted HTML string
var html = Prism.highlight(code, Prism.languages.javascript);