2017-03-16 36 views
5

How can I clean up Django bleach + CKeditor debris? adresinden Python/Django'dan boş paragrafların nasıl kaldırılacağı hakkında ilgili bir not yayınladım. Bununla birlikte, CKeditor'un eklenmiş boş paragrafların devre dışı bırakılması işlevini sağlayıp sağlamadığını veya göndermeden önce tüm boş paragrafların kaldırılmasını doğrudan isteyip istemediğini doğrudan sormak istiyorum.CKEDITOR'da boş paragraf ekleme işleminden nasıl çıkarım?

biri programlı eklenen boş paragrafı ile HTML kaynağı (girintili satırlar değil boşluklarla, bir sekme girintilendirildiği) bir örnek:

<p> 
    This little bunny is <em>shy</em>, but also very affectionate.</p> 
<p> 
    &nbsp;</p> 
<p> 
    Would you like to meet her?</p> 

Bir kurtarmak başına paragraf eklenmiştir olsun.

Kullanıcı girişimi dışındaki boş paragrafların nasıl eklenmesi, devre dışı bırakılması vb. Ekleyebilirim?

sayesinde birden fazla p blok var her

+0

Jonathan, nasıl net olduğu açık değil sorunu çözmek. Bu boş paragrafı eklemek için tam olarak ne yapıyorsunuz? – SergGr

+0

Django yönetici sitem var. Temsil edilen alanların birçoğu bir TEXTAREA widget'ına sahip olur. Bu alanları, CKeditor’u içe aktardıktan sonra TEXTAREA’lar üzerinde “CKEDITOR.replace (textareas [index] .name); – JonathanHayward

+0

Sadece bir paragrafım varsa, her şey harika çalışıyor. Bir çizgiyi iki paragrafa böler ve "Kaydet ve Devam Etmeye Devam Et" i tıklarsam, onları ayıran boş bir paragraf içeren sayfaları getirir. Daha sonra, "Kaydet ve Devam Ediyorum Düzenleme" ye veya eşdeğerine tıkladığımda, bir ek boş paragraf alırım. – JonathanHayward

cevap

2

sorun ... eşleşmeyen html etiketleri ve bu nedenle geçersiz html (yaprak DB, saklamadan önce açılış ve son kapanış etiketleri kaldırarak olmasıdır). Yani,

<p>Something</p> 
<p>Something else</p> 

olur: sırt düzenleyicisine yüklendiğinde

Something</p> // invalid html - closing tag with no corresponding opening tag 
<p>Something else // invalid html - opening tag with no corresponding closing tag 

CKEditor aslında sizin için geçersiz html düzeltmek için çalışıyor. Eğer ben yapılandırma seçeneğini kullanarak öneririm paragraf etiketlerini istemiyorsanız sadece gereksinimlere bağlı

config.autoParagraph = false; ve/veya config.enterMode = CKEDITOR.ENTER_BR; (kullanıcı türleri, yeni bir hat zaman CKEditor yerine <br /> kullanacağız). herhangi '<br />' sondaki nihai çıkarmadan önce bulunan bir şeyi yapmak kaydetmek ve '<br />' ile '' ve '</p>' ile '<p>' tüm olaylardan değiştirmeden önce

Bir diğer olası çözüm işlevini değiştirmek olacaktır.

Y. http://sdk.ckeditor.com/samples/accessibilitychecker.html gidip Source butonuna tıklayın ve aşağıdaki yapıştırabilirsiniz:

<p>Something</p> 
<p>Something else</p> 

B. Source tıklayın ve bu görüntüler

Adımlar

sorunu çoğaltmak için doğru html.

Something</p> // invalid html - closing tag with no corresponding opening tag 
<p>Something else // invalid html - opening tag with no corresponding closing tag 

E Source tıklayın:

C. kaynak moduna geri dönmek için ve sadece 2 p elemanları

D. açılış paragrafları ve kapanış paragraf etiketlerini kaldırın gösterecektir tekrar Source tıklayın Çıktıyı oluşturmak için iki kez ve ardından ayarlanan kaynağı görmek için: