Issue #626💬 RespondidoAbierto el 10 de diciembre de 2017por z1lkReacciones 0

Colocar HTML no editable alrededor del envoltorio

Respuesta rápidapor z1lk

He trasteado con el código y he hecho un pequeño parche que se adapta a mis necesidades. Una opción de configuración 'surround' te permite especificar un ID, que representa un elemento en el contenedor. Este subárbol DOM se extrae durante la inicialización principal, se almacena en la configuración del Editor y se rec...

Lee la respuesta completa abajo ↓

Pregunta

Mi CMS funciona así: los sitios pueden tener un tema y muchas plantillas bajo ese tema. Los temas se renderizan en cada página y las plantillas solo se renderizan en páginas específicas. He integrado con éxito GrapesJS con mi editor de plantillas existente, pero tengo una pregunta: ¿hay alguna forma de renderizar un tema alrededor de una plantilla en Grapes? Es decir, ¿hay alguna forma de insertar HTML no editable alrededor del HTML editable? Si coloco HTML en el lienzo entre el 'cuerpo' y el '#wrapper', parece que obtengo el resultado que quiero.

¿Existe alguna API existente para lograr esto y, si no, es una funcionalidad deseable o es mejor usar JavaScript para inyectar el HTML de mi tema en el editor?

P.D. Primera publicación aquí. Buen trabajo con este @artf de software. Estoy emocionado por ver cómo Grapes puede ayudarme y cómo puedo contribuir a este proyecto.

Respuestas (3)

z1lk11 de diciembre de 2017

He trasteado con el código y he hecho un pequeño parche que se adapta a mis necesidades. Una opción de configuración 'surround' te permite especificar un ID, que representa un elemento en el contenedor. Este subárbol DOM se extrae durante la inicialización principal, se almacena en la configuración del Editor y se recoge en el Canvas. El Lienzo se encarga entonces del renderizado del marco alrededor del envoltorio. Me interesa saber si alguien más tiene necesidades similares y si esto parece una buena solución.

De nuevo, si el caso de uso no está claro: supongamos que estoy usando Bootstrap y tengo un Tema con contenedor, barra de navegación, pie de página, etc. Luego tengo una plantilla de página que estoy editando con uvas. Quiero ver la plantilla dentro del HTML de su tema, pero debería poder editar solo la plantilla, y de forma similar 'Editor.getHtml()' debería devolver solo el HTML de la plantilla.

artf13 de diciembre de 2017

Genial@z1lk creo que incluso algo así funcionará '''js const canvas = editor. Lienzo; const surround = document.createElement('div'); surround.innerHTML = '<div>Algo de texto</div>'; canvas.getBody().appendChild(surround); surround.appendChild(canvas.getWrapperEl());

Cierro esto porque has resuelto tu caso
z1lk13 de diciembre de 2017

Usé una solución similar a la tuya para no tener que mantener cambios en la fuente de uvas. A veces la posición de las "herramientas" de los componentes está fuera de lugar, como si su desplazamiento vertical se calculara respecto al cuerpo y no al envoltorio. Aunque no puedo reproducirlo de forma fiable. ¡Gracias por vuestra ayuda @artf

edito: Creo que la colocación incorrecta de las herramientas se debió a que el "surround" se movió de fuera del lienzo hacia dentro. Ya no tengo el problema, pero puedo generar un problema similar seleccionando un componente para abrir las herramientas y luego abriendo el inspector del navegador (Firefox). Similar al #495

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 →

Tutoriales relacionados

Guías detalladas sobre el mismo tema.

Todos los tutoriales →

Explorar categorías de plugins

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