html tags ckeditor paragraph

html - Desactive encerrar etiquetas<p> en CKEditor 3.0



tags paragraph (11)

¿Existe la posibilidad de desactivar la inclusión automática de todo el contenido escrito en <p> </p> en CKEditor 3.x?

Lo intenté

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR;

pero esto solo cambia los saltos de línea en línea a <br /> mientras deja el párrafo adjunto.

Actualmente escribiendo "Test" produce esta salida.

<p> Test</p>

pero quiero que sea simplemente

Test

¿Existe una propiedad de configuración para esto o sería mejor otro editor en línea para esto?


¡Lo encontré!

ckeditor.js line # 91 ... buscar

B.config.enterMode==3?''div'':''p''

cambiar a

B.config.enterMode==3?''div'':'''' (NO P!)

Descarga tu caché y BAM!


A través de Internet, la gente ha notado que al configurar config.enterMode en CKEDITOR.ENTER_BR se eliminan las etiquetas de párrafo de ajuste de CKEditor. Vale la pena señalar que la configuración cambia el comportamiento de la tecla Intro para insertar saltos de línea en lugar de párrafos, lo que no es deseable.

Consulte: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.enterMode "Se recomienda usar la configuración CKEDITOR.ENTER_P debido a su valor semántico y corrección".

Sin embargo, la configuración que está diseñada para eliminar ese párrafo inicial, config.autoParagraph, tampoco es recomendable, ya que introduce "problemas de facilidad de uso impredecibles" porque el editor realmente quiere un elemento de bloque de nivel superior.

Consulte: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph

La magia ocurre en wysiwygarea / plugin.js, línea 410, donde el editor selecciona el elemento de bloque predeterminado basado en config.enterMode. Una opción de configuración para cambiar el elemento de bloque predeterminado nos permitiría comenzar con un div, pero seguiríamos obteniendo más divs con cada pulsación, a menos que cambiemos el formato de párrafo a través del menú.

Consulte: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_wysiwygarea_plugin.js.html

Sería posible eliminar la etiqueta de párrafo de envoltura con procesamiento posterior (ya sea en el servidor o en el evento getData de CKEditor), pero eso nos lleva al mismo problema que a la desactivación de AutoParagraph: no hay bloque de nivel superior.

Preferiría decir que no hay una buena solución, sino un puñado de soluciones a medias, que aceptar el cambio de config.enterMode como la solución canónica.


Edite la fuente (o desactive el texto enriquecido) y reemplace la etiqueta p con un div. Luego, diseña el div como quieras.

ckEditor no agregará ningún elemento de envoltorio en el próximo envío, ya que tiene el div allí.

(Esto resolvió mi problema, estoy usando Drupal y necesito pequeños fragmentos de html que el editor siempre agregó el extra, pero el resto del tiempo quiero la etiqueta p para envolver).


En VS2015, esto funcionó para convertir la tecla Intro en <br>

myCKEControl.EnterMode = CKEditor.NET.EnterMode.BR

Personalmente, no me importa si mi texto resultante solo tiene <br> y no <p> . Se ve perfectamente bien y tiene el aspecto que yo quiero. Al final, funciona.


Establecer tal configuración:

CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR CKEDITOR.config.forcePasteAsPlainText = true


Estoy haciendo algo de lo que no estoy orgulloso como solución. En mi servlet de Python que realmente guarda en la base de datos, hago:

if description.startswith(''<p>'') and description.endswith(''</p>''): description = description[3:-4]


Haz este tu código de archivo config.js

CKEDITOR.editorConfig = function( config ) { // config.enterMode = 2; //disabled <p> completely config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input <br/> config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input <p> config.autoParagraph = false; // stops automatic insertion of <p> on focus };


Haz este tu código de archivo config.js

CKEDITOR.editorConfig = function( config ) { // config.enterMode = 2; //disabled <p> completely config.enterMode = CKEDITOR.ENTER_BR // pressing the ENTER KEY input <br/> config.shiftEnterMode = CKEDITOR.ENTER_P; //pressing the SHIFT + ENTER KEYS input <p> config.autoParagraph = false; // stops automatic insertion of <p> on focus };


Prueba esto en config.js

CKEDITOR.editorConfig = function( config ) { config.enterMode = CKEDITOR.ENTER_BR; config.shiftEnterMode = CKEDITOR.ENTER_BR; };


CKEDITOR.config.enterMode = CKEDITOR.ENTER_BR; - Esto funciona perfectamente para mi. ¿Ha intentado borrar la memoria caché de su navegador? Este es un problema a veces.
También puedes comprobarlo con el adaptador jQuery:

<script type="text/javascript" src="/js/ckeditor/ckeditor.js"></script> <script type="text/javascript" src="/js/ckeditor/adapters/jquery.js"></script> <script type="text/javascript"> $(function() { $(''#your_textarea'').ckeditor({ toolbar: ''Full'', enterMode : CKEDITOR.ENTER_BR, shiftEnterMode: CKEDITOR.ENTER_P }); }); </script>


ACTUALIZACIÓN según el comentario de @Tomkay:

Desde la versión 3.6 de CKEditor, puede configurar si desea que el contenido en línea se ajuste automáticamente con etiquetas como <p></p> . Esta es la configuración correcta:

CKEDITOR.config.autoParagraph = false;

Fuente: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html#.autoParagraph


if (substr_count($this->content,''<p>'') == 1) { $this->content = preg_replace(''/<//?p>/i'', '''', $this->content); }