【问题标题】:django-cms editors and HTML data attribute cleaned updjango-cms 编辑器和 HTML 数据属性清理
【发布时间】:2013-01-24 07:23:15
【问题描述】:

使用 django-cms 2.4 我需要创建包含引导代码的页面,但使用的 html5lib 会清除 data-* 属性。无论您是否在 TINYMCE_DEFAULT_CONFIG 中指定 valid_element。 (我仍在为 Wymeditor 寻找类似的选项),因为这是在 #plugins/text/models 中完成的(clean_html 函数:https://github.com/divio/django-cms/issues/1529

Github 问题: https://github.com/divio/django-cms/issues/1529

可能的解决方法是什么? 如何在管理部分扩展文本插件?

谢谢!

【问题讨论】:

  • 您是否尝试在您的TINYMCE_DEFAULT_CONFIG 中设置'extended_valid_elements': '*[*]'
  • 我试过了,但它是基于 Django 中的 html5lib 的 clean 方法来“清理”代码。 (github.com/divio/django-cms/issues/1529)
  • 嗯。我会尝试看一下 html5lib,看看发生了什么。
  • 基本上所有属性都被列入白名单 (wiki.whatwg.org/wiki/Sanitization_rules)。我应该扩展Django文本插件,但我不知道如何

标签: django django-cms


【解决方案1】:

我相信删除字段是由 cms 用作 python 包的 html5lib 完成的,您需要打开 html5lib 文件夹并打开 sanitizer.py,在代码所在的第 184 行:

if name in self.allowed_attributes])

改为:

if name in self.allowed_attributes or re.match( r'data-.*',name)]) 

这将允许所有数据(无论是什么)属性

对于 WYMeditor,data-(whatever) 属性已经被允许

【讨论】:

  • 谢谢!我不喜欢接触外部应用程序代码,但我没有看到任何其他解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 2016-10-02
相关资源
最近更新 更多