2013-02-07 56 views
1

我使用/测试django-cms(2.3.5)+基于bootstrap的模板。 使用Django,TinyMCE的我添加代码:django-tinymce删除bootstrap HTML代码

<a class="carousel-control right" href="#this-carousel-id" data-slide="next">›</a> 

但Django的TinyMCE的删除 “数据滑=” 下一步 “”

<a class="carousel-control right" href="#this-carousel-id">›</a> 

,当然没有什么作品。

使用WYeditor我发现无法修改settings.py中的选项。 将TinyMCE我可以:

TINYMCE_DEFAULT_CONFIG={ 
    # General options 
    'mode': "textareas",     
    'theme': "advanced", 
    'remove_linebreaks': "false", 

    'convert_urls': "false", 
    'relative_urls': "false", 
    'theme_advanced_resizing': "true", 
    'paste_auto_cleanup_on_paste': "true", 
    #'preformatted': "true", 

    'valid_elements': "+*[*]", 

    'width': "100%", 
    'height': "300px",  

    'theme_advanced_buttons1' : "formatselect,separator,bold,italic,hr,separator,link,unlink,separator,bullist,numlist,separator,undo,redo,", 
    'theme_advanced_buttons2' : "|,help,code,|", 
    'theme_advanced_buttons3' : "" , 
    'theme_advanced_blockformats' : "p,h1,h2,h3,blockquote", 
    'theme_advanced_toolbar_location' : "top", 
    # Example content CSS (should be your site CSS) 
    #'content_css': 'css/example.css',  
    #'content_css' : "/media/css/tiny_editor.css" 
} 

工作流程:

  • 我打开HTML弹出
  • 我复制代码
  • 我重新打开弹出式窗口,想要的代码是有
  • 我保存页面,我重新打开弹出窗口,代码已经改变!

我该如何避免这种行为?

我还添加了保留空格/制表符/注释/的选项,以保持绝对路径,但/ static/images/path /始终转换为../../../../。 。/静态的/*。

我必须检查/更改什么?

谢谢!

+0

https://github.com/divio/django-cms/issues/1529变化。好的,因此唯一的解决方案是创建我自己的插件? – Daviddd

回答

1

您需要声明data-slide作为链接/ a标签的有效属性。 有acloser看valid_elements设置TinyMCE的

+0

感谢您的回复!为什么它不能使用'valid_elements':“+ * [*]”,?我已经检查了valid_elements,但我只指定了valid_elements:“a [data-slide]”,并且除了数据幻灯片外,它删除了其他一些属性。我不想指定所有属性。与extend_valid_elements – Daviddd

+0

一样,我几乎可以肯定它是删除“数据幻灯片”属性的Django-cms。如果打开,请更新tinymce弹出窗口中的代码,然后重新打开代码。当我保存页面时,Django“以某种方式”清理HTML。 – Daviddd

+0

好吧,这也有可能吧 – Thariama

1

我相信的字段的去除是由html5lib CMS用于为Python包完成的,你需要打开html5lib文件夹,打开sanitizer.py,在线路184其中的代码是:

if name in self.allowed_attributes]) 

变化:

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

这将允许所有数据 - (什么)属性

为WYMeditor数据 - (其他)属性已经允许

-1

“假”与“真”的假和真

+0

这并不真正回答原来的问题。 –