Tengo una pregunta de programación relacionada con una nueva función que estoy creando en un componente de tema. Preparé un video corto para demostrar lo que ya tengo y dónde estoy bloqueado.
Aquí hay una breve descripción:
Quiero que las personas puedan dar “me gusta” a texto específico dentro de las publicaciones (también en las publicaciones de otras personas), no solo a la publicación completa.
Una vez que un usuario selecciona un texto, hace clic en un nuevo ícono que, a su vez, envuelve el texto seleccionado con el bloque [warp], que luego uso para estilizar.
El envoltorio ocurre modificando el texto sin formato, lo que plantea un problema para los usuarios que no son administradores, ya que no pueden modificar las publicaciones de otras personas.
Preguntas:
Estoy buscando una manera de guardar mi “información meta” en el modelo en sí.
Estoy buscando una manera de modificar/decorar el texto de una manera que todos los usuarios puedan hacerlo.
Al igual que tú, estoy muy interesado en esta función. Nos ayuda a obtener la opinión de la comunidad para seleccionar/citar contenido bueno y valioso para alojar nosotros mismos o crear un directorio compartido públicamente.
En realidad, implementé esto de una manera más segura, también usando un componente de tema.
El objetivo
Dar a las personas la capacidad de dar “me gusta” al contenido dentro de una publicación, no solo a la publicación en sí; por ejemplo, las personas deberían poder expresar que les gusta una imagen específica o pasajes de texto.
El enfoque
Dado que estamos en un componente de tema, necesité encontrar una manera de guardar la información meta sobre tal “me gusta de usuario” en algún lugar, porque aparentemente, solo los complementos reales pueden modificar la base de datos. Mi enfoque inicial fue editar el texto sin formato de la publicación, pero esto resultó ser muy complicado, ya que estábamos modificando las publicaciones de los usuarios, lo que no queríamos.
La solución con la que terminé fue usar Firebase Firestore para guardar las cosas.
El resultado
Los usuarios ahora pueden “corazonear” pulgares y textos dentro de elementos LI y P.
Avanzando
Planeo hacer esto disponible como un componente de tema, pero la parte del almacenamiento de datos deberá ser manejada por los propios desarrolladores si desean alojar los datos en otro lugar.
Si las personas dan suficientes “me gusta”, lo lanzaré pronto
Esta función podría ser útil para publicaciones muy grandes en las que algunas partes destacan más que otras.
Por cierto, si hay varios “me gusta”, ¿se podría mostrar el 25% más votado para que quede más claro? Podría parecer muy desordenado con muchas líneas rojas de texto por todas partes.
¡Por favor, lanza esta función pronto!
Me encanta la función de resaltado en Medium y ahora desearía que pudiera aparecer en Discourse. porque a veces queremos expresar nuestros sentimientos sobre un fragmento de texto y guardarlo para poder revisarlo como una función de marcador (pero actualmente solo podemos marcar el artículo completo)
Hola, ahora lo tenemos funcionando de manera estable. Necesitamos limpiar el código y proporcionar una versión lista para la comunidad.
La percepción de esto es realmente asombrosa, a la gente le encanta.
¡Te mantendré informado! Espero proporcionar algo esta semana.
Estos últimos días empecé a pensar que sería bueno si, además de dar “me gusta” a una parte específica de un texto, las partes que fueron citadas tuvieran algún tipo de lista de enlaces a todas las respuestas dadas a ella; si citaste la palabra esta, se resaltaría en el texto original y, cuando alguien hiciera clic en este resaltado, obtendría una vista previa de cuántas respuestas la citaron, de quiénes son, etc. Sería una buena manera de entender la profundidad de partes específicas de una discusión.
No sé si mi idea está lo suficientemente clara, jaja, pero imagino que funcionaría de manera similar a esta función de “me gusta” y tendría el mismo problema de almacenamiento de datos.
Estoy en conversaciones con los desarrolladores de Discourse para revisar mi repositorio de código abierto con la funcionalidad de “inline heating”. Lo instalé en una instalación limpia de Discourse y funcionó de inmediato.
¡La versión actual se ve mucho mejor que en el primer video!
Manténganse atentos y tengan un poco de paciencia.
Hola, ¿hay alguien que pueda enviarme un mensaje privado para ayudarme a que el código esté “listo para la comunidad”? Tengo el repositorio configurado y listo para compartir, pero necesito que alguien haga una verificación conmigo y lo vea desde una perspectiva diferente antes de anunciarlo ampliamente.
Cualquier ayuda será apreciada para poder avanzar con esto.