2013-02-07 57 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

這並不真正回答原來的問題。 –