Как мне избежать /inline/cheat, чтобы обойти фильтрацию тегов <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>

Но я не знаю, как это сделать, так как <style> тег будет удален XWiki.

Мой вопрос: как мне тоже...

  1. встроить ключевые кадры в стиль элемента (я не верю, что это можно сделать, но этот вопрос довольно старый)?
  2. запутывать <style> пометить, чтобы не раздеться?

1 ответ

Тег стиля не должен входить в тело HTML (по крайней мере, в HTML4). Весь HTML, который вы вставляете в макрос {{html}} в содержимом вики-страницы, попадает в тело HTML. Вот почему HTML Cleaner может фильтровать / удалять ваш контент.

Вы должны проверить и понять, как правильно добавлять JavaScript и CSS на свои вики-страницы в XWiki через JavaScriptExtensions или StyleSheetExtensions. В целом, старайтесь избегать встраивания. Это считается плохой практикой и вряд ли оправдано на практике.

Если вам действительно нужен тег style внутри тела HTML, вы можете указать макросу {{html}} избегать автоматической очистки, используя параметр clean="false".

Пример:

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

Тем не менее, я рекомендую использовать вышеперечисленное только для целей тестирования и использовать надлежащие расширения JavaScript/Style для окончательной версии.

Другие вопросы по тегам