Crear un Producto Colaborativo Similar a Notion en 2H

Rate this content
Bookmark

Se te ha asignado la tarea de crear una función de edición de texto colaborativa dentro del producto de tu empresa. Algo similar a Notion o Google Docs.


CK 5 es un marco de trabajo y ecosistema rico en funciones listas para usar que se enfoca en una amplia gama de casos de uso. Ofrece una infraestructura en la nube para satisfacer las necesidades del sistema de colaboración en tiempo real. Durante esta masterclass, aprenderás cómo configurar e integrar CK 5. Repasaremos los conceptos básicos de cómo incrustar el editor en una página, desde la configuración hasta la habilitación de funciones de colaboración en tiempo real. Aprendizajes clave: cómo incrustar, configurar y ajustar CK 5 para que se adapte mejor a un sistema de edición de documentos que admita colaboración en tiempo real.


Tabla de contenidos:

- Introducción al ecosistema de CK 5.

- Introducción a una plantilla de proyecto similar a `Notion`.

- Incrustar CK 5 en una página.

- Configuración básica de CK 5.

- Ajustar CK 5 para un caso de uso específico.

- Habilitar funciones de edición en tiempo real.

FAQ

CK Editor es un editor de texto enriquecido que permite crear contenido de manera visual y recibirlo en el formato deseado, como HTML. Está escrito en TypeScript y es altamente extensible, permitiendo agregar funcionalidades adicionales.

Sí, CK Editor es un proyecto de código abierto y está licenciado bajo la licencia GPL. Puedes revisar el código y contribuir en GitHub.

CK Editor se puede implementar en cualquier aplicación que tenga soporte de HTML, CMS y JavaScript. Es altamente configurable a través de plugins y complementos.

Las funcionalidades básicas de CK Editor incluyen estilos de texto como negritas, cursivas, encabezados, listas y enlaces. También permite la configuración de barras de herramientas y la edición colaborativa en tiempo real.

Sí, CK Editor es altamente personalizable. Puedes usarlo como un marco para agregar funcionalidades propias o ajustar las existentes a través de su sistema de plugins.

CKBox es un adaptador de carga oficial para CK Editor que maneja la carga de imágenes y archivos, optimizando su almacenamiento y presentación. Es necesario tener una licencia para usar CKBox, y se ofrece una prueba gratuita de 30 días.

Sí, CK Editor permite la edición colaborativa en tiempo real, donde los usuarios pueden ver y editar el contenido simultáneamente. Esta funcionalidad se maneja a través de complementos específicos para la colaboración.

Los datos en CK Editor pueden ser gestionados y guardados automáticamente mediante complementos de autoguardado. También es posible configurar adaptadores personalizados para conectar el editor con sistemas de gestión de datos externos.

Witek Socha
Witek Socha
87 min
23 May, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

La masterclass de hoy se centró en la creación de un producto colaborativo similar a Notion utilizando CK Editor 5. La masterclass cubrió la configuración del editor y la configuración de complementos, incluyendo funciones como negrita, encabezados, listas y enlaces. Otros temas incluyeron la funcionalidad de autoguardado, deshacer/rehacer, trabajar con tablas e imágenes, implementar colaboración en tiempo real y comentarios, e introducir funciones experimentales como arrastrar y soltar. La masterclass concluyó con una discusión sobre las limitaciones de Notion y el potencial de crear complementos personalizados con CK Editor 5.`, `seotitle`: null, `seodescription`: nul

1. Introducción a CK Editor 5

Short description:

Bienvenidos a todos. Hoy construiremos un producto similar a Notion utilizando CK Editor 5. CK Editor es un editor de texto enriquecido escrito en TypeScript. Es altamente extensible y de código abierto. La historia de CK Editor abarca 20 años, desde FCK Editor hasta CK Editor 5. Nos enfocaremos en configurar el editor y utilizar complementos existentes. Amamos Notion y nuestro objetivo es construir algo similar. Pueden hacer preguntas.

Bienvenidos a todos. Estoy extremadamente feliz de estar aquí. Y hoy tendremos alrededor de dos horas de talleres y trataremos de construir un producto similar a Notion en dos horas.

Antes de comenzar con la codificación, mostraré algunas diapositivas aquí. Así que el nombre, por ejemplo, mi nombre es Itek Soha y soy el propietario técnico del equipo principal de CK Editor 5 y junto conmigo, con sus cámaras encendidas, pueden ver a Piotr Koszulinsky, él es el director de ingeniería, y a Szymon, él es el líder del proyecto en las características de colaboración, y ellos también se unen a nosotros. Juntos tienen alrededor de 20 años de experiencia en la construcción de editores, así que si tienen preguntas más avanzadas, estoy seguro de que las responderán de inmediato. Entonces, CK qué, como, ese es un nombre bastante extraño para el producto, pero CK Editor es básicamente un editor de texto enriquecido, ¿verdad?, por lo que tenemos un editor, lo que ves es lo que obtienes, y básicamente puedes crear el contenido de manera visual y luego recibir el contenido en el formato deseado. Por lo general, es HTML, por lo que el editor en sí está escrito completamente en TypeScript en este momento. Esto es algo nuevo. Acabamos de terminar la reescritura a TypeScript. También usaremos TypeScript hoy y el editor en sí se puede implementar en cualquier aplicación que tenga soporte de HTML, CSM y JavaScript, ¿verdad? El editor en sí también es altamente extensible. Si te faltan algunas funcionalidades, puedes usar el editor en sí como un marco y agregar algunas funcionalidades por ti mismo. Y es un proyecto de código abierto. Así que si quieres, puedes revisar en GitHub. Estamos allí y el editor completo está licenciado bajo la licencia GPL. Entonces la historia no es tan breve. El editor en sí lleva en el mercado alrededor de 20 años. Y comenzó en 2003 como FCK editor, hecho por Federico. Y luego fue renombrado como pueden ver, FCK no era un buen acrónimo para tener el producto. Pueden responder ustedes mismos por qué. Pero luego fue rebrandeado a CK editor 3. Luego en 2012, se lanzó CK editor 4. Y hay una alta probabilidad de que en realidad lo hayan usado en algún lugar. Fue el editor principal en el CMS Drupal, ¿verdad? Luego tuvimos otro producto, que es básicamente un producto totalmente diferente, CK editor 5 lanzado en 2018. Y como dije, una arquitectura totalmente diferente, esos dos productos en realidad aún estaban en el mercado lado a lado. Es por eso que tienes estos números 4 y 5, pero CK editor 5 introdujo soluciones de edición de texto más poderosas como la colaboración en tiempo real que intentaremos usar hoy. Y en 2022, CK editor 5 fue nuevamente incluido en el núcleo de Drupal como el editor principal. Aquí tienen algunos logotipos muy geniales de nuestros productos que utilizan CK editor 5. Y nuestros clientes también. Esta es la historia breve y algunos datos sobre CK editor. Pero ¿qué haremos hoy? Y así es como la IA imagina el muro de pegamentos. Lo que haremos principalmente hoy es pegar. Pegaremos diferentes configuraciones del editor solo para obtener un producto que nos gustaría tener. Digo pegar porque pasaremos la mayor parte del tiempo configurando el editor, instalando diferentes complementos. No desarrollaremos nuevas características para el editor. Ese puede ser un tema para futuros talleres. Y también solo tenemos dos horas, así que intentaremos utilizar solo los complementos que ya están allí, pero aún divirtiéndonos un poco con ello. Pequeña advertencia. Amamos Notion. Este es el producto similar a Notion. De hecho, usamos Notion dentro de la empresa CK source. Por lo tanto, esto es algo que valoramos mucho y realmente nos gusta este producto y trataremos de construir algo similar. Y si tienen alguna pregunta, aquí está Simon, aquí está Piotrek. Así que siéntanse libres de preguntar. Básicamente pueden hacer las preguntas en el chat. ¿Se utiliza CK editor dentro de Notion? No o aún no. No lo sabemos, pero actualmente no se utiliza. Así que si tienen alguna pregunta, intentaré echar un vistazo al

2. Configuración del Editor y el Producto

Short description:

¡Bienvenidos a la masterclass! Configuraremos el editor y el producto como parte de una historia. Te unes a una nueva empresa como desarrollador y hay un proyecto de incorporación esperándote. El gerente de producto quiere funciones geniales de creación de contenido. Revisamos el repositorio y encontramos un mensaje del desarrollador anterior. El producto utiliza Vite y CK5, escritos y leídos en TypeScript. Tiene una arquitectura basada en complementos. Lo trataremos como una prueba para aumentar la participación de los usuarios.

chat. Así que siéntanse libres de preguntar cualquier cosa. Nuestro anfitrión también dijo que pueden simplemente preguntar y desactivar el silencio y trataremos de responder. Si desean programar junto con nosotros, adelante, yo estaré programando. Intentaremos configurar el editor y el producto, así que si desean unirse, adelante, y enviaré algunos detalles en un segundo y toda la masterclass estará configurada como una especie de historia, ¿verdad? Así que tendremos un ejemplo de la vida real de configurar el editor, esto será un escenario de la vida real que tal vez algunos de ustedes hayan experimentado cuando se unieron a algunas empresas. La historia es la siguiente. Básicamente te uniste a una nueva empresa como desarrollador y hay un proyecto de incorporación esperándote y el gerente de producto no puede esperar para contarte más al respecto. Así que estaré programando en Vim, ¿verdad? Ese es mi editor de elección. Pero si desean programar junto con nosotros, aquí está el enlace al repositorio. Siéntanse libres de clonarlo y básicamente lo único que necesitan hacer en la raíz del repositorio es ejecutar un comando. Aquí hay este directorio meta. Solo necesitan obtener un script de allí llamado reset, y cuando lo ejecuten, el índice del proyecto se configurará en la etapa inicial de lo que estamos haciendo ahora mismo. Si no desean programar junto con nosotros, solo observen lo que estaré haciendo. Si desean unirse más adelante, este script de reinicio les permitirá unirse más adelante. Nuestra historia se dividirá en actos. Por ejemplo, si desean unirse a nosotros en el acto cinco, si ejecutan este comando, el índice de su proyecto se restablecerá al código que obtendremos al final del acto cuatro. Más adelante, si desean verificar diferentes etapas de este proyecto, siéntanse libres de hacerlo, pero comenzaré desde el principio, al menos por ahora. Espero no tener que moverme a otros actos con este comando. Bien, empecemos. Y revisemos la licencia, revisemos la licencia, siempre revisen la licencia. Eso es cierto, si no quieren tener problemas con su departamento legal. Bien, comencemos nuestra historia. Nuestro gerente de producto dice que queremos tener funciones geniales de creación de contenido en nuestra aplicación. Los desarrolladores anteriores comenzaron a trabajar en algo, revisemos lo que crearon, ¿verdad? Así que intentemos visitar nuestro repositorio. Veamos qué tenemos aquí. Cuando lo revisemos, tenemos atleta, ¿verdad?, bastante estándar. Tenemos un archivo readme. Así que revisémoslo. Y aquí tenemos un mensaje de nuestro desarrollador anterior que no está contento con su gerente de producto, supongo. Pero seguro que preparó algo para nosotros, ¿verdad? El producto utiliza Vite. Es una configuración experimental en CK5, pero funciona muy bien. Se lee completamente en TypeScript y también se escribe en TypeScript. Arquitectura basada en complementos, más detalles en un segundo. Y el mensaje trata sobre no confiar nunca en el gerente de producto. No estoy seguro si eso es cierto, lo veremos. Buena suerte. Y al final tienes las instrucciones meta de cómo configurar este script de reinicio si desean seguirlo. Así que aquí tenemos el readme. También tenemos el index HTML, ¿verdad? Con algunas partes comentadas. Eso es porque las habilitaremos más adelante. Y sí, esa es la configuración. Básicamente todo se ve bien. También tenemos el package.json, con algunos paquetes, pero no muchos, principalmente paquetes de desarrollo, un paquete de CKEditor5. Así que no lo tocaremos por ahora. Con esta configuración, comencemos. Y básicamente iremos al primer acto de nuestra historia. Así que básicamente vas a tu gerente de producto, y le dices que hay algo, pero no mucho. Y el gerente de producto te dirá, como que queremos aumentar la participación de los usuarios. Creemos un contenido impresionante. Y lo trataremos como una prueba, ¿verdad? Será un prototipo.

Watch more workshops on topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced Conference 2021React Advanced Conference 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured WorkshopFree
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Desarrollo Moderno de Aplicaciones Frontend
Top Content
Featured WorkshopFree
Mikhail Kuznetcov
Mikhail Kuznetcov
Vue3 fue lanzado a mediados de 2020. Además de muchas mejoras y optimizaciones, la principal característica que trae Vue3 es la API de Composición, una nueva forma de escribir y reutilizar código reactivo. Aprendamos más sobre cómo usar la API de Composición de manera eficiente.

Además de las características principales de Vue3, explicaremos ejemplos de cómo usar bibliotecas populares con Vue3.

Tabla de contenidos:
- Introducción a Vue3
- API de Composición
- Bibliotecas principales
- Ecosistema Vue3

Requisitos previos:
IDE de elección (Inellij o VSC) instalado
Nodejs + NPM
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

No resuelvas problemas, elimínalos
React Advanced Conference 2021React Advanced Conference 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Los humanos son solucionadores de problemas naturales y somos lo suficientemente buenos en eso que hemos sobrevivido a lo largo de los siglos y nos hemos convertido en la especie dominante del planeta. Debido a que somos tan buenos en eso, a veces también nos convertimos en buscadores de problemas, buscando problemas que podemos resolver. Aquellos que logran sus objetivos de la manera más exitosa son los eliminadores de problemas. Hablemos de la distinción entre resolver y eliminar problemas con ejemplos de dentro y fuera del mundo de la codificación.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
Jotai es una biblioteca de gestión de estado. La hemos estado desarrollando principalmente para React, pero conceptualmente no está vinculada a React. En esta charla, veremos cómo funcionan los átomos de Jotai y aprenderemos sobre el modelo mental que deberíamos tener. Los átomos son una abstracción agnóstica del marco para representar estados, y básicamente son solo funciones. Comprender la abstracción de átomo ayudará a diseñar e implementar estados en sus aplicaciones con Jotai
Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Seamos realistas: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica.En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.

Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Como desarrolladores, pasamos gran parte de nuestro tiempo depurando aplicaciones, a menudo código que ni siquiera escribimos. Lamentablemente, a pocos desarrolladores se les ha enseñado cómo abordar la depuración, es algo que la mayoría de nosotros aprendemos a través de la experiencia dolorosa. La buena noticia es que _puedes_ aprender a depurar de manera efectiva, y hay varias técnicas y herramientas clave que puedes usar para depurar aplicaciones de JS y React.
Luchando contra la Deuda Técnica con la Refactorización Continua
React Day Berlin 2022React Day Berlin 2022
29 min
Luchando contra la Deuda Técnica con la Refactorización Continua
Top Content
Afrontémoslo: la deuda técnica es inevitable y reescribir tu código cada 6 meses no es una opción. La refactorización es un tema complejo que no tiene una solución única para todos. Las aplicaciones de Frontend son particularmente sensibles debido a los frecuentes cambios de requisitos y flujos de usuario. Nuevas abstracciones, patrones actualizados y limpieza de esas viejas funciones - todo suena genial en papel, pero a menudo falla en la práctica: los todos se acumulan, los tickets terminan pudriéndose en el backlog y el código legado aparece en cada rincón de tu base de código. Por lo tanto, un proceso de refactorización continua es la única arma que tienes contra la deuda técnica. En los últimos tres años, he estado explorando diferentes estrategias y procesos para refactorizar el código. En esta charla describiré los componentes clave de un marco para abordar la refactorización y compartiré algunos de los aprendizajes acumulados en el camino. Espero que esto te ayude en tu búsqueda de mejorar la calidad del código de tus bases de código.
El Epic Stack
React Summit US 2023React Summit US 2023
21 min
El Epic Stack
Top Content
El desarrollo web moderno es fantástico. ¡Hay tantas herramientas geniales disponibles! El desarrollo web moderno es agotador. ¡Hay tantas herramientas geniales disponibles! Cada uno de estos sentimientos es cierto. Lo que es genial es que la mayoría de las veces, es difícil tomar una decisión que sea incorrecta. En serio. Los compromisos de la mayoría de los marcos y herramientas que podrías usar para construir tu aplicación se ajustan a las limitaciones de la gran mayoría de las aplicaciones. A pesar de esto, los ingenieros luchan constantemente con la parálisis del análisis.Hablemos de esto, y de una solución en la que estoy trabajando para ello.