Issue #1096💬 RespondidoAbierto el 9 de mayo de 2018por dsghReacciones 0

Soportar diseños de renderizado que no forman parte del contenido editable

Respuesta rápidapor artf

Para el punto '1' puedes pasar esto a tus opciones de iniciación: '''js ... layerManager: { showWrapper: 0, },

Lee la respuesta completa abajo ↓

Pregunta

Básicamente, mi caso de uso es que quiero mostrar toda una página —con cabecera, menú(s) y pie de página— en el lienzo del editor, pero solo permitir que el usuario edite el contenido real. La razón detrás de esto es que los usuarios puedan ver la página lo más cerca posible del "producto final".

He conseguido algo así renderizando la página completa en el envoltorio, usando la opción 'fromElement' y cuidando de poner 'resaltado', 'badgable' y todos los demás atributos similares en 'false' en los elementos del diseño, pero aún así no es lo ideal porque:

  1. El nodo raíz en el "Gestor de capas" sigue siendo el cuerpo, que entonces no es expandible ya que los elementos directamente debajo de él se marcan como no capazables. Lo que busco aquí es que la raíz del Gestor de Capas sea el elemento "contenido".

  2. Al ver/exportar código, se muestra el código de toda la página. Lo que busco es que solo aparezca el código relacionado con el elemento "contenido".

@artf ¿Es algo que tenga sentido como funcionalidad? Estoy listo para empezar a trabajar en una imagen personal para ello. ¿Debería implementarse esto como una opción que especifique un selector css para el elemento que debería ser la "parte realmente editable"? Si es así, ¿cómo debería llamarse la opción? ¿'rootNode', 'subcontenedor', 'envoltorio', 'subenvolviente', 'elementoContent', 'envoltorioContenido'? O, si no es una opción de configuración, entonces podría haber un comportamiento por defecto documentado. Por ejemplo: si uno de los elementos del contenido html inicial (al usar 'fromElement') tiene un id de, por ejemplo, 'gjs-root-node', entonces se aplica el comportamiento descrito anteriormente en consecuencia. ¿Qué opináis?

Respuestas (3)

artf10 de mayo de 2018

Para el punto '1' puedes pasar esto a tus opciones de iniciación: '''js ... layerManager: { showWrapper: 0, },

Punto '2', ¿qué tal algo como un componente personalizado 'marcador de posición' que simplemente sobrescriba el método 'toHtml' en la definición del modelo
'''js
modelo: ...
	{
		toHTML() {
			regresar '';
		}
	},
artf18 de mayo de 2018

Oye @dsgh, ¿has conseguido cumplir con tu tarea?

dsgh18 de mayo de 2018

@artf Estos últimos días he estado ocupado trabajando en otras extensiones de uvas que también necesitamos. Gracias por tus sugerencias aquí; investigaré más sobre la opción 'showWrapper', ¡y creo que tu sugerencia para el punto 2 es perfecta! Debería haber pensado en hacer eso.

Volveré a esto a finales de este mes y contaré cómo volver; si quieres cerrar este problema mientras tanto, siéntete libre de hacerlo, porque estoy bastante seguro de que podré solucionarlo sin cambios en grapesjs.

Gracias

Preguntas y respuestas relacionadas

Continúa investigando con debates sobre temas similares.

Plugins de pago que cumplen con este problema

Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.

Ver todos los plugins

Cargando recomendaciones de plugins de pago...

Opción gratuita

Consulta los plugins de código abierto de GrapesJS en GitHub O haz una búsqueda rápida en nuestro catálogo gratuito.

Explora plugins gratuitos →
Opción premium

Los plugins premium incluyen soporte, actualizaciones regulares y funciones listas para producción — ahorrando días de trabajo de integración.

Explora plugins premium →

Explorar categorías de plugins

Ve directamente a las páginas de categorías de plugins en el marketplace.