Prezada Comunidade Discourse, aqui está meu pequeno presente de Natal
para todos vocês. É simples, mas útil, e foi construído puramente porque eu o queria.
Inspirado no ótimo blog de Simon Willison sobre o uso de LLMs para desenvolvimento, eu codifiquei isso por vibe durante o Natal, entre eventos sociais, assistir a filmes e embrulhar presentes! Eu não escrevi nenhum código, mas revisei o código e supervisionei o LLM. Tudo foi guiado por spec.md e roadmap.md.
Para que serve?
Eu uso uma instância Discourse pessoal auto-hospedada como Caderno de Notas, Diário, Blog, CV, Wiki, ferramenta de IA e base de conhecimento de desenvolvedor. Frequentemente, me vejo querendo ‘clipar’ conteúdo da web (título da página + URL) e jogá-lo diretamente no meu Discourse, de onde posso incorporá-lo em uma Nota ou em uma entrada do Diário.
Minhas necessidades são simples, então isso é bem básico, apenas publica o Título da Página e a URL, embora eu gostaria de adicionar no futuro as opções ‘Incluir excerto da página’ e ‘Clipar página inteira’.
Privacidade
- Não coleta nenhum dado sobre você ou seu conteúdo.
- Todos os dados são enviados diretamente para sua instância Discourse a partir do seu navegador.
- Nenhum servidor de terceiros está envolvido.
- Código aberto. Repositório do GitHub: https://github.com/koloki-co/clip-to-discourse-chromium-extension
Funcionalidades
- Clipa o título da página e a URL. ‘Excerto da página’ ou ‘texto completo da página’ opcionais estão implementados, mas é um pouco pouco sofisticado (no entanto, sua IA do Discourse pode resumi-lo mais tarde em sua instância do Discourse?..).
- Cria Novos Tópicos com cada clipagem, ou anexa clipagens como respostas a um Tópico existente.
- Suporta múltiplos perfis, permitindo que você armazene múltiplas chaves de API, instâncias Discourse de destino e configurações padrão - para diferentes casos de uso.
- O ícone Clip To Discourse mudará automaticamente para refletir o Favicon do site do Perfil atualmente selecionado, para que você possa dizer facilmente para onde você está clipando!
Limitações
-
A principal limitação é que um Administrador precisa criar uma chave de API com escopo de usuário para você, na instância Discourse para a qual você está clipando. Para mim, isso não é um problema, pois sou o Administrador principal em todos os Discourses que pretendo usar isso.
-
Claramente, se a funcionalidade Clip To Discourse fosse habilitada para muitos usuários, poderia produzir muitas postagens de baixa qualidade em uma instância Discourse compartilhada ou pública. Portanto, meu foco principal com esta Extensão é para aqueles de vocês que, como eu, estão usando o Discourse como um caderno de notas pessoal.
Como Instalar
-
Instale em qualquer navegador baseado em Chromium (Chrome, Edge, Brave, etc.) através do link para a Chrome Web Store https://chromewebstore.google.com/detail/clip-to-discourse/copdhiejkkdblhdcdjapcoalldkondhi
-
(Opcional, mas recomendado) ‘Fixe’ a extensão na barra de ferramentas do navegador.
-
Crie uma chave de API de Usuário Único com os seguintes escopos Granulares: Tópicos:
read(usado apenas para o teste de conexão),writeeupdate -
Determine em qual Categoria as Clipagens devem ir. Se você quiser que cada clipagem seja um novo Tópico, você só precisa do CategoryID. Ao visualizar a Categoria, este ID está na URL assim:
https://discourse.seusdominio.com/c/NomeDaCategoria/CategoryID(Nota: O termo em inglês é CategoryID, mantido para consistência técnica) -
Você também pode definir um Tópico para responder, e todas as Clipagens serão anexadas como novas respostas a este Tópico. Para obter o TopicID, você também o obtém da URL: Ao visualizar o Tópico, este ID está na URL assim:
https://discourse.seusdominio.com/t/TituloDoTopico/TopicID(Nota: O termo em inglês é TopicID, mantido para consistência técnica) -
Clique no ícone da extensão para abrir o pop-up e vá em Configurações para configurar a chave de API e definir seus padrões. Note que você pode ter múltiplos ‘perfis’ para vários Discourses diferentes que você pode querer usar.
-
Salve as configurações e (opcionalmente) teste a conexão, que lerá um tópico para garantir que a conexão da API funcione.
-
Feche as Configurações e comece a clipar para testar!
Imagens




Roteiro (Roadmap)
-
‘Incluir excerto da página’ e ‘Clipar página inteira’ podem precisar de algum teste e refinamento. Alternativamente, este recurso poderia permitir que o usuário selecionasse a área de texto a ser clipada como o excerto.
-
Não estou planejando uma extensão para Firefox ou Safari (pois não uso esses navegadores), mas ficaria feliz se alguém assumisse a tarefa de portar esta extensão. Poderíamos colaborar para mantê-la em um único repositório e manter a paridade de recursos.
-
Posso considerar implementar o fluxo de API de Usuário do Discourse, para que as chaves de API não precisem ser criadas por Administradores, no entanto, a API de Usuário funciona através de um fluxo OAuth, então não seria uma alternativa de substituição direta.
Discussões Relacionadas
Solicitação para basicamente esta ferramenta: https://meta.discourse.org/t/chrome-firefox-extension-share-to-discourse/21104/28
Uma postagem relacionada, sugerindo recursos adicionais ao clipar um Discourse: https://meta.discourse.org/t/need-web-clipper-for-discourse-post/45105
Compartilhamento Social é um conceito relacionado, mas usa URLs simples https://meta.discourse.org/t/social-share/89980
Feedback, Ideias e Contribuições
Este tópico é um lugar muito bom para colocar qualquer feedback que você tenha. Estou aberto a ideias para melhorias, desde que não compliquem demais a extensão e/ou a tornem menos útil para mim!
Se você quiser abrir issues ou fazer PRs, o repositório do GitHub está aqui:
Esta extensão é uma ferramenta gratuita, de código aberto e com foco em privacidade, criada para a comunidade Discourse pela minha empresa Koloki.co