使用方法

明らかに、これはコードブロック(<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]属性を使用して設定できます

remove-trailing
すべての行の後ろの空白を削除します。
remove-indent
コードブロック全体がインデントされすぎている場合は、余分なインデントを削除します。
left-trim
コードブロックの上部にあるすべての空白を削除します。
right-trim
コードブロックの下部にあるすべての空白を削除します。
break-lines
長い行を特定の長さで折り返す簡単な方法です(デフォルトは80文字です)。
indent
すべての行に一定数のタブを追加します。
remove-initial-line-feed
left-trimの攻撃性の低いバージョンです。コードブロックの上部から1行の改行のみを削除します。
tabs-to-spaces
すべてのタブを一定数のスペースに変換します(デフォルトは4文字です)。
spaces-to-tabs
一定数のスペースをタブに変換します(デフォルトは4文字です)。

以下の例はこのプラグインの使用方法を示しています



	

その結果は次のようになります

	


		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);