Loading repository data…
Loading repository data…
axmbo / repository
Extensão minimalista para conversão automática de Markdown ao colar texto no WhatsApp Web. Útil quando é necessário colar respostas das LLMs, mantendo a formatação, sempre que possível.
Uma extensão de navegador minimalista que converte automaticamente a formatação Markdown ao colar textos no WhatsApp Web.
(O nome é uma brincadeira com "paste + to" e um trocadilho com o famoso molho pesto).
O Pestto foi criado para resolver um problema recorrente: copiar respostas geradas por IA (que geralmente usam Markdown) e colá-las no WhatsApp Web perdendo toda a formatação original.
Este é um projeto open-source, focado em simplicidade extrema, elegância e segurança. Não há coleta de dados, nem comunicação externa.
Opção 1 — Chrome Web Store (recomendado):
Instale diretamente pela Chrome Web Store.
Opção 2 — Modo Desenvolvedor (instalação local):
chrome://extensions/).**negrito** ou *itálico*.A extensão intercepta o evento global de paste no navegador, rodando exclusivamente no domínio https://web.whatsapp.com/*.
contenteditable (a caixa de mensagem).text/plain).Seguindo princípios estritos de segurança e privacidade:
MutationObserver.A lógica de conversão é isolada do navegador e coberta por testes automatizados utilizando Vitest. As suítes de teste estão localizadas na pasta tests/.
Atualmente, o projeto possui 33 testes unitários que garantem a integridade da conversão e dos scripts de build.
Para rodar os testes localmente:
npm install
npm test # Executa os testes uma única vez e encerra
npm run test:watch # Executa os testes e aguarda alterações (modo interativo)
Este projeto utiliza um sistema híbrido para atender aos requisitos da Chrome Web Store:
package.json segue o Semantic Versioning (ex: 0.4.3-rc.1).X.Y.Z.N):
0.4.3-rc.1 vira 0.4.3).O projeto usa ESLint (com escopos distintos para browser, Node e Vitest) e Prettier para manter a consistência do código.
O Husky configura um hook pre-commit que, via lint-staged, roda ESLint + Prettier nos arquivos em staging antes de cada commit. Se houver problemas, o commit é abortado, as correções são aplicadas na working tree para revisão, e os testes unitários só são executados se o lint passar.
npm run lint # verifica todos os arquivos
npm run lint:fix # corrige automaticamente
npm run format # formata todos os arquivos
npm run format:check # apenas verifica (sem alterar)
O processo de liberação (homologação por ZIP RC, checklist, publicação oficial e deploy na loja) está centralizado em release.md.
Se você é novo no projeto e precisa liberar uma versão, comece por lá.
Contribuições são bem-vindas! O foco atual é manter a extensão pequena, clara e com as permissões mínimas possíveis. Se você encontrar casos onde a conversão falha (edge cases do Regex), sinta-se à vontade para abrir uma Issue ou enviar um Pull Request.