Tenho uma pergunta de programação relacionada a um novo recurso que estou criando em um componente de tema. Preparei um vídeo curto para demonstrar o que já tenho e onde estou bloqueado.
Aqui está uma breve descrição:
Quero que as pessoas possam “curtir” textos específicos dentro das postagens (também de outras pessoas) - não apenas a postagem inteira.
Assim que um usuário seleciona um texto, ele clica em um novo ícone que, por sua vez, envolve o texto selecionado com o bloco [warp], que eu então uso para estilizar.
O envolvimento acontece modificando o texto bruto - o que representa um problema para usuários não administradores que não podem modificar as postagens de outras pessoas.
Perguntas:
Estou procurando uma maneira de salvar minhas “informações meta” no próprio modelo.
Estou procurando uma maneira de modificar/decorar o texto de forma que todos os usuários possam fazê-lo.
assim como você, estou muito interessado neste recurso. Ele nos ajuda a obter a opinião da comunidade na seleção/citação de conteúdo bom e valioso para hospedarmos para nós mesmos ou criarmos um diretório compartilhado publicamente.
Eu, na verdade, implementei isso de uma maneira mais segura, também usando um componente de tema.
O objetivo
Dar às pessoas a capacidade de curtir conteúdo dentro de uma postagem, não apenas a postagem em si, por exemplo, as pessoas devem poder expressar que gostam especificamente de uma imagem ou de trechos de texto.
A abordagem
Como estamos em um componente de tema, precisei encontrar uma maneira de salvar as informações meta sobre tal “curtida de usuário” em algum lugar, porque aparentemente, apenas plugins reais podem modificar o banco de dados. Minha abordagem inicial foi editar o texto bruto da postagem, mas isso acabou sendo muito confuso, pois estávamos modificando as postagens dos usuários, o que não queríamos.
A solução com a qual terminei foi usar o Firebase Firestore para salvar as coisas.
O resultado
Os usuários agora podem “curtir” corações, polegares e textos dentro de elementos LI e P.
Seguindo em frente
Estou planejando disponibilizar isso como um componente de tema, mas a parte de armazenamento de dados terá que ser tratada pelos próprios desenvolvedores se eles quiserem hospedar os dados em outro lugar.
Se as pessoas derem curtidas suficientes, lançarei isso em breve
Este recurso pode ser útil para posts muito grandes onde algumas partes se destacam mais do que outras.
A propósito, se houver vários likes, os 25% mais curtidos poderiam ser mostrados para que ficasse mais claro? Pode parecer muito confuso com muitas linhas vermelhas de texto por toda parte.
Por favor, lance este recurso em breve!
Eu amo o recurso de destaque no Medium e agora desejo que ele possa aparecer no Discourse. porque às vezes queremos expressar nossos sentimentos sobre um trecho de texto e salvá-lo para que possamos revisá-lo como um recurso de marcador (mas atualmente só podemos marcar o artigo inteiro)
Olá, agora está funcionando de forma estável. Precisamos fazer uma limpeza no código e fornecer uma versão pronta para a comunidade.
A percepção disso é realmente incrível, as pessoas adoram.
Manterei você informado! Espero fornecer algo esta semana.
E aí, pessoal! Tive uma ideia semelhante, como explico neste post. Vocês têm alguma novidade sobre isso, @Sören_Geier?
Nestes últimos dias, comecei a pensar que seria legal se, além de curtir uma parte específica de um texto, as partes que foram citadas tivessem algum tipo de lista de links para todas as respostas dadas a ela – se você citasse esta palavra, ela seria destacada no texto original e, quando alguém clicasse nesse destaque, receberia uma prévia de quantas respostas a citaram, de quem são, etc. Seria uma ótima maneira de entender a profundidade de partes específicas de uma discussão.
Não sei se minha ideia está clara o suficiente, haha, mas imagino que funcionaria de maneira semelhante a este recurso de “like” e teria o mesmo problema de armazenamento de dados.
Estou em negociações com os desenvolvedores do Discourse para revisar meu repositório de código aberto com a funcionalidade de aquecimento inline. Instalei isso em uma instalação limpa do Discourse e funcionou imediatamente.
A versão atual parece muito mais legal do que no primeiro vídeo!
Olá, alguém pode me enviar uma mensagem privada para ajudar a tornar o código “pronto para a comunidade”. Tenho o repositório configurado e pronto para compartilhar, mas preciso de alguém para fazer uma verificação de sanidade comigo e olhar para ele de uma perspectiva diferente antes de anunciar isso amplamente.
Qualquer ajuda é apreciada para que eu possa avançar com isso.