Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

283
Vistas
¿Cómo puedo cambiar el comportamiento de tiptap al pegar texto sin formato?

Actualmente estoy tratando de implementar un editor visual usando una biblioteca llamada tiptap.

https://v1.tiptap.dev/

Creo que v2 es el tiptap más común, pero hay circunstancias en las que se debe usar v1.

Sin embargo, no estaba satisfecho con el comportamiento cuando pegué texto sin formato en tiptap, y cuando lo investigué, descubrí que la condición establecida en la biblioteca prosemirror era diferente de lo que esperaba.

https://github.com/ProseMirror/prosemirror-view/blob/master/src/clipboard.js#L57-L59

 text.trim().split(/(?:\r\n?|\n)+/).forEach(block => { dom.appendChild(document.createElement("p")).appendChild(serializer.serializeNode(schema.text(block, marks))) })

Parece que prosemirror convierte una sola nueva línea en <p></p> . Me gustaría cambiar la condición para que se convierta en <br> si hay una nueva línea y <p></p> si hay dos nuevas líneas. Pero no sé cómo hacer que suceda, y lo estoy pasando muy mal.

 editorProps: { clipboardTextParser(text, $context) { console.log(text) console.log($context) // :( } }

Empecé usando la función EditorProps de EditorProps para sobrescribir todo el procesamiento del clipboardTextParser de prosemirror. Sin embargo, clipboardTextParser usa una cantidad de variables y objetos en prosemirror, y no tengo idea de cómo escribirlos en editorProps. Y me rendí porque no sabía cómo proceder.

¿Hay alguna forma de resolver esto? Estoy pensando que si tiptap puede hacer casi lo mismo que clipboardTextParser , debería estar bien.

Perdón por mi mal inglés. ¡Por favor, ayúdame!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Deberías usar transformPastedHTML

https://prosemirror.net/docs/ref/#view.EditorProps.transformPastedHTML

Eso le dará un nodo html, luego puede simplemente cambiar la salida de esta manera:

 private cleanHtmlHanlder (html: string): string { const elementHtml = document.createElement('br') elementHtml.innerHTML = html return elementHtml }

Espero eso ayude

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda