highlightAll フィルターは、highlightAll
メソッドと highlightAllUnder
メソッドが実際には強調表示する要素をフィルタリングする方法を提供します。ページを読み込むときに Prism の自動強調表示を使用するが、特定のコードブロックを除外する場合に非常に役立ちます。
Prism.plugins.filterHighlightAll
で次のものを見つけることができます
add(condition: (value: { element, language: string }) => boolean): void
true
を返す場合にのみ、要素の強調表示を許可する新しいフィルタを追加します。addSelector(selector: string): void
reject.add(condition: (value: { element, language: string }) => boolean): void
add
と同じですが、条件を満たしていない要素のみが強調表示されます。reject.addSelector(selector: string): void
addSelector
と同じですが、セレクタと一致しない要素のみが強調表示されます。filterKnown: boolean = false
true
に設定します。言語が設定されていないか未知の言語のコードブロックは強調表示されません。要素は、上記のすべてが要素を受け入れた場合にのみ、highlightAll
メソッドと highlightAllUnder
メソッドによって強調表示されます。
Filter highlightAll プラグインを含むスクリプトに、次の data-*
属性を追加することもできます。
<script src="..." data-filter-selector="<css selector>">
Prism.plugins.filterHighlightAll.addSelector
の略記です。属性の値はそのまま addSelector
関数に渡されます。<script src="..." data-reject-selector="<css selector>">
Prism.plugins.filterHighlightAll.reject.addSelector
の略記です。属性の値はそのまま rejectSelector
関数に渡されます。<script src="..." data-filter-known>
Prism.plugins.filterHighlightAll.filterKnown
の値を設定できます。属性が存在する場合、filterKnown
は true
に設定され、存在しない場合は false
に設定されます。次のコードは、このページでフィルタを定義するために使用されます。
// <code> elements with a .no-highlight class will be ignored
Prism.plugins.filterHighlightAll.reject.addSelector('code.no-highlight');
Prism.plugins.filterHighlightAll.reject.addSelector('pre.no-highlight > code');
// don't highlight CSS code
Prism.plugins.filterHighlightAll.add(function (env) {
return env.language !== 'css';
});
結果
let foo = "I'm not being highlighted";
a.link::after {
content: 'also not being highlighted';
color: #F00;
}
Prism はこれらのブロックを無視するため、Prism が通常削除する独自の静的強調表示を定義できます。
a.link::before {
content: 'I just do my own highlighting';
color: #F00;
}