显然,这仅适用于代码块(<pre><code>
),而不适用于内联代码。
默认情况下,该插件修剪每个代码块的所有前导和尾随空白。它还删除每一行的额外缩进和尾随空白。
可以通过向<pre>
或<code>
标记添加类no-whitespace-normalization
来为特定代码块禁用该插件。
默认设置可以通过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);