如何转义/内联/作弊以绕过 <style> XWiki 中的标签过滤?



我正在使用XWiki的实例,该实例正在过滤掉<style>标签,这意味着以下内容:

<style>
    p { color: red; }
</style>
<p>Foo</p>

将在渲染时完全删除<style>标签,结果仅为:

<p>Foo</p>

我能够使用以下语法进行内联样式:

(% style="color: red;" %)
<p>Foo</p>

但是当我尝试使用动画关键帧时,我的问题出现了。我知道它们可以在样式标签内完成:

<style>
@keyframes stomp {
    0% { transform: translate(1px, 1px) rotate(0deg); }
    50% { transform: translate(-1px, 2px) rotate(1deg); }
    100% { transform: translate(1px, -2px) rotate(-1deg); }
}
</style>

但是我不知道如何内联它,因为 XWiki 将删除<style>标签。

的问题:我怎么做...

  1. 将关键帧内联到元素样式中(我不相信这可以做到,但这个问题已经很老了(?
  2. 混淆<style>标签,使其不被剥离?

样式标签不应该放在HTML的正文中(至少在HTML4中不是(。您在 wiki 页面内容的 {{html}} 宏中插入的所有 HTML 都会进入 HTML 的正文。这就是为什么HTML清理器可能会过滤/删除您的内容。

您应该查看并了解通过JavaScriptExtensions或StyleSheetExtensions将JavaScript和CSS添加到XWiki中的wiki页面的正确方法。更一般地说,尽量避免内联。这被认为是一种不好的做法,在实践中几乎没有道理。

如果确实必须在 HTML 正文中包含样式标记,则可以使用 clean="false" 参数指示 {{html}} 宏避免自动清理。

例:

{{html clean="false"}}
<style>
  ...
</style>
{{/html}}

但是,我建议您仅将上述内容用于测试目的,并为最终版本使用适当的JavaScript/Style Extension。

相关内容

最新更新