Soportar diseños de renderizado que no forman parte del contenido editable
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:
-
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".
-
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)
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 '';
}
},
Oye @dsgh, ¿has conseguido cumplir con tu tarea?
@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.
Issue #2061
[PREGUNTA] Cómo colocar un componente al final del lienzo.
¿Cómo puedo poner mi zapata al final del lienzo? Quiero que el editor no permita colocar un bloque o widget debajo del pie de página. Ejemp...
Issue #3722
¿Quiero añadir una altura fija de tamaño al lienzo?
Lo uso para crear contenido PDF dinámico. Quería fijar la altura del lienzo para que el usuario no pueda añadir más bloques de un tamaño (a...
Issue #2008
[Pregunta]El lienzo se vuelve oscuro e inmodificable al añadir un gran fragmento de html personalizado.
Solía añadir html personalizado con 'editor.addComponent()'. Funciona bien la mayor parte del tiempo, pero cuando intento insertar un gran...
Issue #1803
[Solicitud de funcionalidad] Lienzo de tamaño fijo
Estamos usando GrapesJS en el trabajo para construir un sistema de quioscos en nuestro CMS. Actualmente uso la plantilla de la página web....
Plugins de pago que cumplen con este problema
Seleccionado por temas clave y relevancia de etiquetas para ayudarte a enviar más rápido.
Cargando recomendaciones de plugins de pago...
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 →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.