【发布时间】:2014-04-05 04:04:47
【问题描述】:
我正在试验PowerMezz 库中的HTML Filter 模块,并希望为该函数的特定实例自定义过滤规则。这可能吗?
例如,默认情况下style 属性是允许的,但是我想去掉这个属性:
>> filter-html {<p style="color:red">A Para</p>}
== {<p>A Para</p>}
以及限制其他一些允许的标签/属性。
【问题讨论】:
我正在试验PowerMezz 库中的HTML Filter 模块,并希望为该函数的特定实例自定义过滤规则。这可能吗?
例如,默认情况下style 属性是允许的,但是我想去掉这个属性:
>> filter-html {<p style="color:red">A Para</p>}
== {<p>A Para</p>}
以及限制其他一些允许的标签/属性。
【问题讨论】:
在研究了filter-html 模块之后,看起来直接的答案是否定的 --- 似乎没有办法更改特定实例的过滤器选项。
然而,经过一些实验,我发现你可以做一些小的改变来使这样的事情成为可能。大多数属性处理都可以通过更改attributes-map 块来自定义,但该块中不处理内联样式属性。它们在check-attributes 函数中专门处理。
我在check-attributes 中注释掉了这些行,这会导致默认情况下所有样式属性都被删除:
if value: select attributes 'style [
append style value
]
您需要将不希望过滤的内容添加回attribute-map 中的特定html 标记。我复制了原始attribute-map,进行更改,运行filter-html,然后在下一个过滤实例之前恢复到原始状态。
【讨论】: