 Hola, me llamo Javier López, soy disarredador web enfocado en el frontend. Os vengo a hablar de Gutenberg e os conceptos de base de su desarrollo que son os que hacen que sea un sistema muy flexible para o usuario e muy dinámico. Para ello, habría que empezar hablando de la programación rativa. Y la programación rativa, por ejemplo, tenemos la librería real. La librería real lo que se encarga es de que un interfaz mute en relación a la interacción del usuario y los datos que va incluyendo en el, por ejemplo, un reloj o etc. Real funciona por estados que son como pequeños fragmentos en el tiempo de ese componente. En cada estado está marcado por unos datos que, luego, se vuelvan a modificar este componente, se eliminará e volverán a hacer. Los componentes son pequeños partes de la interfaz gráfica que tienen unha loja que interna, son reusables e se los poden indetar en formación desde arriba. Gutenberg tiene la extracción de estes componentes que son los bloques, que son elementos dinámicos que se poden reusar en las diferentes páginas que tienen una lógica interna e que interactúan con a acción del usuario. Estos componentes tienen un ciclo de vida que está formado por unha vez que nacen, unha unha desarrollada interna e unha vez que muere. Can mismo tiempo, tienen un flujo de datos unidireccional, es decir, metemos los datos desde arriba, bajando a todos os subcomponentes, hasta llegar a final, también poderemos ir hacia arriba, pero seríamos complicados. O ciclo de vida, ou sea, Gutenberg también tiene un, los bloques de Gutenberg también tienen un ciclo de vida, pero está resumido en dos partes, en un momento de edición, en un momento de guardado. Dentro del momento de edición, también tiene sus pequeños ministralos. Redux, es outra librería que va en reacción con Riali, que también uso Gutenberg, que se encarga de centralizar todos os estados de la aplicación e poder ser compartida entre os diferentes componentes. Warpers tiene o Warpers data, que... Los high order components son un tipo de funcionalidad que se encargan de añadir lógica a os outros funcionalidades. En el caso de Gutenberg, lo usa para, por ejemplo, en este caso, con el with set, lo que hacemos es que estén el componente relacionado con la librería, o sea, con los datos globales de todos os plugins de Warpers, para poder comunicarse entre os diferentes bloques de Gutenberg. Para registrar un bloque, tenemos que hacerlo como se hacía normalmente para hacer un queue do JavaScript e do CSS de ese bloque e, por JTS, incluir registrar-lo, incluyendo el nombre único e el título, o icono e os diferentes propiedades. ASPQ es outra librería que tamimos a Gutenberg e que se encarga de que, quando le pasas un stream de HTML, ele recoge las propiedades e las guarda todas en un objeto de JavaScript para poder manipularlas. E esta es la base de los datos de los bloques en Gutenberg, que son os atributos. También se encarga de analizar os datos que se mete en el bloque dinámico, lo recoge e los guarda en la base de datos mediante comentarios HTML que luego lo recogerá una vez que lo renderiza por delante. Existen dos componentes que vinem por ser con Warpers, que es el toolbar e el inspector. El toolbar son las diferentes herramientas que se aparecen quando se está editando e o inspector son as propiedades de ese bloque para poder modificar que nos podamos incluir novos campos. Hay un problema, hay los bloques estádicos e os bloques dinámicos. Los bloques dinámicos surgen porque hay un problema quando un bloque consume datos exteros que van modificando porque cuando nosotros guardamos el bloque e o utilizamos, nos va a coincidir os datos. Entonces, aquí, o que se hace, es que se cede renderizado ao PHP, que es un sistema que... Bueno, e que este sistema lo que hace es que mediante system replace coja os atributos HTML que están guardados na base de datos e nos va printando en donde vallamos indicando. E es un pouco el sistema que usa ACF, agora, quando ha cambiado, hacía Qtmr. O sea, ha dado Qtmr, en donde el ya te ha dado una función para registrar tu bloque e luego tienes que hacer un callback con la función para poder renderizar ese bloque. E, para poder crear nos dos bloques, existe unha herramienta que nos genera ya os archivos necesarios, simplemente con o Np install, porque seno seria muy complicado hacer toda instalación dos diferentes paquetes que nos generaria este sistema de archivos, el archivo que registra o plugin, a carpeta de distribución, a carpeta source, donde a carpeta source está formada por un index de todos os bloques e luego cada bloque con o JS, CSS, etc. e luego a carpeta de distribución que estes dos archivos comprimidos. E bueno, me queda un pouco corto, seno se me dê por para revisar un poquito todo e muchas gracias por el escuchado. Sí, tenéis alguna pregunta e queréis aprovechar? O que era muy claro o... nada, ninguna? O que tenés mucha hambre? Bueno, pues, ahora bajando las escaleras a mano derecha, al pato e principal para hacer un la foto a todos. Pa, pa.