O Discourse suporta o conceito de uma nota pessoal anexada a uma postagem por um usuário não-staff que apenas a pessoa que a escreveu pode ver?
O caso de uso que tenho em mente aqui é um sistema de receitas, onde indivíduos que usam uma receita querem fazer anotações sobre o que fizeram e como funcionou, mas não anotações que eles querem que outros vejam.
Os favoritos não parecem ser projetados para permitir muita formatação na explicação do favorito. Assim que você pressiona a tecla Enter (ou seja, para iniciar um novo parágrafo), o favorito é criado.
Quanto às Mensagens Privadas (MPs), não vejo uma maneira direta de anexar uma MP a uma postagem específica.
Rascunhos são muito não confiáveis, pois pode haver apenas um por tópico. Se alguém começar a escrever uma postagem para tal tópico, ele sobrescreve o rascunho sem avisos.
no início, entendi mal sua OP e pensei que a nota deveria ser compartilhada entre a pessoa que fez a nota e o criador da postagem, ou apenas para marcar o local. Vejo que você basicamente quer um recurso de nota adesiva para os usuários fazerem uma nota pessoal em uma postagem, como um marcador de texto estendido sem o recurso de tempo. como @Lhc_fl diz, esta é uma boa ideia e posso ver que é útil em algumas instâncias.
Ainda não joguei com as notas de equipe, mas devo olhar o código das notas de equipe para ver se estendê-lo para notas fixas para mim mesmo é realista. Cada vez que me aprofundo no código, aprendo um pouco mais e as coisas parecem um pouco menos opacas.
A forma como as notas do usuário parecem ser implementadas tornaria difícil modificá-las para funcionar como notas adesivas pessoais. (O texto da nota vai em um array JSON na tabela plugin_store_notes, então não está claro se pode ter alguma formatação. Anúncios internos também são armazenados nessa tabela, mas eles usam formatação HTML.)
Além disso, não parece haver uma maneira de editar uma nota do usuário. Suponho que ela possa ser excluída e republicada, embora isso alterasse o carimbo de data/hora.
Para mim, eu sugeriria criar uma tabela com três chaves:
id, post_id, user_id (correspondendo a um usuário só pode registrar em um post),
e então, dependendo da sua ideia, você pode registrar dados diretamente nesta tabela, ou publicar as notas do usuário como um post especial (para que, se você desativar o plugin, as notas originais ainda possam ser mantidas)
Meu primeiro pensamento é que a nota adesiva deve se referir a uma postagem específica, semelhante a uma resposta, e não apenas ao tópico. Em uma discussão longa, eu poderia ver um usuário desejando ter notas adesivas anexadas a várias postagens em um tópico.
Usar uma tabela sticky_post tem seus méritos, mas provavelmente há vários lugares onde seria necessário excluir uma sticky_post da exibição ou processamento além de apenas exibir um tópico, como ao enviar e-mails, e seria necessário pesquisar a tabela sticky_post para cada postagem para ver se era uma nota adesiva deste usuário e, portanto, tratada de forma diferente de uma nota adesiva feita por outro usuário.
Um post_type separado teria mérito, mas isso pode precisar ser parte do núcleo do Discourse, e pode haver outros problemas com essa abordagem que não estou ciente no momento.
Há também campos personalizados de postagem (post custom fields), que podem ser uma abordagem melhor do que campos personalizados de tópico (topic custom fields), embora provavelmente tenha muitos dos mesmos problemas e limitações que uma tabela sticky_notes, assim como colocar essa informação na tabela plugin_store_notes.
Uma abordagem combinada, na qual há uma entrada de campos personalizados de tópico que indica que existem notas adesivas neste tópico, pode ter potencial. Se não houver nenhuma, então a tabela de campos personalizados de postagem não precisa ser pesquisada por um indicador de nota adesiva.
Estou auto-hospedando e construindo uma comunidade para fins educacionais, e me deparei com alguns tópicos aqui em que os usuários explicam como usam o Discourse como seu bloco de notas pessoal. No entanto, isso claramente tem suas limitações, então tive essa ideia…
Talvez pudesse haver um recurso implementado para que cada usuário pudesse ter seu próprio bloco de notas pessoal/privado em markdown? Aqui estão algumas ideias gerais que tenho sobre como este recurso proposto poderia funcionar.
Habilitado apenas para grupos selecionados.
Isso funcionaria muito bem com os plugins subscriptions e ai para que, por exemplo, os assinantes ganhem a capacidade de fazer suas próprias anotações de IA.
Alternâncias de limitação.
Para reduzir a carga do servidor, limitações por grupo poderiam ser definidas. Por exemplo: o Grupo A pode ter 5 GB de espaço de armazenamento em seu bloco de notas, mas o Grupo B pode ter 10 GB.
Estrutura organizada.
A estrutura deste plugin poderia ser semelhante à do Microsoft OneNote, com cada bloco de notas podendo ter várias seções.
Compatibilidades de arquivos.
Os usuários poderiam anexar arquivos a notas: pdf, mp3, etc. e poderia haver um visualizador de pdf simples integrado.
Integração mais refinada com o Discourse AI.
O bot de IA pode resumir automaticamente uma discussão inteira em um chat ou PM e salvar o resumo em uma página do bloco de notas. etc. etc.
Isso é viável?
Considerando a vasta quantidade de aplicativos de anotações de código aberto, como Obsidian e Joplin, suspeito que poderia ser rápido e fácil dar um pontapé inicial no desenvolvimento deste recurso. Nem é preciso dizer que isso tem o potencial de gerar uma boa receita — o trio fórum/IA/bloco de notas!
Deixem-me saber o que vocês acham! Talvez possamos desenvolver algo mais específico e uma ideia mais refinada!
Idealmente, eu gostaria de poder sincronizar notas criadas no Discourse com minhas notas locais em markdown. Uma implementação básica disso seria um botão de "baixar nota" no Discourse que gerasse um arquivo .md a partir do conteúdo raw do tópico da nota. O título poderia ser definido como \u003ctítulo do tópico da nota\u003e.md.
Esse é um bom ponto e definitivamente aumentaria a utilidade desse recurso . Também ter a capacidade de usuários em um grupo terem notas compartilhadas. Isso permitiria projetos em grupo, documentos de equipe, etc.