Olá pessoal, encontrei o mesmo problema irritante com CTRL+F no Discourse: postagens que não estão atualmente na tela desaparecem da pesquisa por causa do sistema de carregamento lento/descarregamento da memória. Mesmo com 64GB de RAM, você não consegue pesquisar o tópico inteiro no navegador. Pelo que entendi, isso é mais um recurso anti-scraping do que de economia de memória. Aqui estão as alternativas mais seguras que encontrei que funcionaram:
-
Use a Visualização de Impressão: Adicione
/printao final do URL do tópico, por exemplo,https://forum.example.com/t/topic-name/12345/print. Isso carrega todas as postagens do tópico de uma vez e funciona com a pesquisa do navegador (CTRL+F). O layout é simplificado, mas perfeito para pesquisa de texto completo. -
Role até que Tudo Carregue: Continue rolando até que o sistema de carregamento lento tenha renderizado todas as postagens no DOM. O CTRL+F encontrará tudo. Pode ser tedioso para tópicos longos, mas funciona sem ferramentas extras.
-
Use a API do Discourse: Cada tópico tem um endpoint JSON como
https://forum.example.com/t/{topic_id}.json. Você pode extrair todas as postagens do arraypost_stream.posts, abrir em um editor de texto e pesquisar confortavelmente. Seguro, oficial e funciona independentemente do carregamento lento. -
Abordagem Userscript / Greasemonkey: Você pode automatizar o carregamento de postagens de página inteira com este userscript simples para Chrome/Firefox. Ele clica automaticamente em “carregar mais postagens” até que o tópico seja totalmente renderizado:
// ==UserScript==
// @name Discourse Load All Posts
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Auto-click "load more posts" to fully render topic for search
// @match https://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function loadAll() {
const button = document.querySelector('.load-more[data-more-url]');
if (button) {
button.click();
setTimeout(loadAll, 500); // espera e tenta novamente
}
}
window.addEventListener('load', () => {
setTimeout(loadAll, 1000); // começa um segundo após o carregamento da página
});
})();
Depois de concluído, CTRL+F pesquisará tudo no tópico.
Exportação / Pesquisa Externa: Use a visualização de impressão ou o JSON da API para exportar postagens para PDF, HTML ou texto simples. Abra em um editor como VSCode ou Notepad++ para pesquisa de texto completo.
Não tente hacks de servidor: Invadir o banco de dados ou fazer scraping de conteúdo no lado do servidor é ilegal e desnecessário. Use a API / visualização de impressão / userscript — todos são seguros e funcionam de forma confiável.
TL;DR: O mais fácil: visualização /print. Mais flexível: JSON da API ou userscript. CTRL+F funciona assim que todas as postagens são carregadas no DOM. Espero que a equipe do Discourse veja isso e talvez considere uma opção de “pesquisa completa” algum dia — é um sério problema de UX para quem faz pesquisa ou leitura aprofundada de tópicos ![]()