筛选高亮全部为你提供筛选 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
方法高亮。
你还可以向包含筛选高亮全部插件的脚本添加以下 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;
}