Interrupção na busca CTRL+F, por favor, forneça método alternativo

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:

  1. Use a Visualização de Impressão: Adicione /print ao 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.

  2. 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.

  3. 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 array post_stream.posts, abrir em um editor de texto e pesquisar confortavelmente. Seguro, oficial e funciona independentemente do carregamento lento.

  4. 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.

:warning: 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 :sweat_smile: