2009-06-05 9 views
5

PROBLEMA: Uso Drupal con un editor Rich e mi piace riempire il mio testo estrapolando il rientro del testo e la formattazione. Questo sarebbe inaccettabile in un editor desktop, ma la gente sembra tollerarlo con i wyswigs nel browser.come ottenere tinymce (in-browser "rich editor") per preservare il rientro

DOMANDA: Come si spegne questo messaggio. Ho cercato in giro e devo ancora scoprire il modo migliore per dire al ricco editor di preservare la mia indentazione e la formattazione del testo.

risposta

3

aggiungere questa configurazione per lo script di init TinyMCE

tinymce.init({ 
    protect: [/[\n\f\r\t\v]/g] 
}); 
+0

Questo non funziona, ma ancora strisce \ t caratteri in qualsiasi contenuto che carica – skerit

1

La ragione per cui questo sta accadendo è che l'editor Rich è in realtà un editor xhtml. In xhtml, la maggior parte dei tag (ad eccezione del tag PRE), per impostazione predefinita, uniscono più caratteri di spazi bianchi in un singolo spazio.

Per superare questo TinyMCE, è necessario creare un foglio di stile contenente:

* {white-space: pre;} 

e di riferimento il foglio di stile come content_css durante l'inizializzazione l'editor. Tieni presente che mentre conserverai il tuo formato, non sarà più WYSIWYG, a causa della natura del munging whitespacing HTML.

Un'altra opzione è quella di avvolgere il codice in un elemento PRE, ma non c'è alcun pulsante per farlo in default in tinyMCE (o almeno così credo).

EDIT:

Come menzionato da Mikl, TinyMCE ha anche un configuration option for preformatted

1

C'è un “preformattato” impostazione nel prefrerences TinyMCE (in questo caso, tramite l'WYSIWYG module, ma è lì in Modulo TinyMCE pure). Dovrebbe fare il trucco.

Screenshot of setting http://www.quicksnapper.com/files/3603/2949292644A2CF2A72BC21_m.png

+3

Questo è sicuramente un bel screenshot.Sfortunatamente, non funziona, almeno non per me. Non appena il "rich editor" richiama nella textarea del browser, il markup all'interno del controllo della GUI viene immediatamente rimosso dagli spazi e reso come la temuta "singola riga di HTML senza alcuna conservazione dello spazio bianco". – dreftymac

+1

+1 Non riesco a credere che ive abbia trascurato l'opzione di configurazione preformattata prima! Grazie per quella gemma! – Matt

+0

No, non funziona neanche per me. Mi chiedo perché no ... –

2

Questo potrebbe non essere esattamente quello che stai cercando, ma il modulo Drupal htmlpurifier può riordinare il codice HTML e rendere il vostro HTML standard compliant. Può rimuovere il rientro ma è molto utile.

Un altro modulo più semplice è htmltidy, non è sicuro se può conservare il rientro.

0

Stavo cercando la stessa risposta per TinyMCE in generale, e anche a maggio 2015, l'autore (s) di TinyMCE considera lo spazio bianco che spoglia una caratteristica. Non può essere disabilitato, anche se i documenti indicano che l'opzione di configurazione preformatted conserva spazi bianchi come il tag <pre>. Devo ancora farlo funzionare, o qualsiasi altra cosa, e credo che la documentazione debba descrivere una funzionalità non più nel codice.

http://community.tinymce.com/forum/viewtopic.php?id=26021

Il filo suggerisce ripetutamente che il codice in un WYSIWYG è un gioco equo per riformattazione totale, ed una riformattazione lato server è migliore. Non importa se l'obiettivo è di avere una riformattazione minima, quindi uno strumento sul lato server è altrettanto distruttivo per la struttura del documento. Questo è un WONTFIX secondo lo sviluppatore di TinyMCE, quindi dubito che questo cambierà nel prossimo futuro.

+0

La versione 3.4.5 elenca 'whitespace_elements' nel registro delle modifiche, ma non ho trovato documentazione per questo e non sembra funzionare neanche. Non sono sicuro. È sicuramente nel codice, ma si inizializza in "textarea in stile pre script noscript" e non è chiaro per me se la configurazione utente può sovrascriverla (ho provato, ma forse sto facendo qualcosa di sbagliato). – jimp