Olá a todos,
Esta semana começamos nosso primeiro sprint para personalizar nosso tema do Discourse. Sabíamos que precisaríamos alterar um número considerável de arquivos, pois os designs são bastante diferentes dos temas padrão do Discourse.
Nossa abordagem é muito simples: tentar alcançar o que precisamos apenas com SASS e, quando necessário, sobrescrever os respectivos arquivos .hbs/.hbr. Sabemos que o último ponto introduz algum risco extra de manutenção (se os atributos passados para a visualização forem renomeados ou removidos, nossos modelos quebrarão). Avaliamos o risco disso acontecer versus manter nossa própria infraestrutura e concluímos que hospedar no discourse.org entrega mais valor ao nosso cliente sem fins lucrativos. Vamos adicionar algum código de monitoramento ao site e ter um plano de resposta pronto para quando isso ocorrer — além disso, acreditamos que, caso aconteça, provavelmente será uma correção fácil.
Agora, vamos ao cerne desta postagem. Precisamos descobrir como transformar a visualização da Lista de Tópicos em uma experiência semelhante a um feed. Ou seja, sob cada tópico, as postagens de resposta são renderizadas como comentários.
Aqui está uma imagem do que precisamos construir (atualmente mostrando apenas 1 comentário por tópico — às vezes precisaremos mostrar mais do que isso):
Onde estamos
Então, @iainbamboo mergulhou nos detalhes para descobrir:
- Os dados das postagens já estão disponíveis na lista de tópicos e precisamos apenas alterar o modelo? → Não, não estão.
- Como adicionamos os dados das postagens de cada tópico à Lista para podermos renderizá-los no modelo?
- Essa é realmente a abordagem correta?
- Devemos modificar o código Ruby para adicioná-lo ao modelo enviado (possivelmente como um plugin), seguindo linhas como Discourse Timeline? Se criarmos um plugin, podemos usá-lo no discourse.org?
- Devemos buscar os dados no Ember e apenas aceitar o impacto de carregamentos mais lentos, já que várias solicitações AJAX serão feitas ao servidor para obter as postagens de cada tópico (o que corre o risco de atingir limites de taxa)?
- É possível fazer isso sem modificar o código Ruby?
Após analisar bastante — lendo os guias de desenvolvimento do Discourse e revisando o código-fonte — concluímos que precisamos de aconselhamento especializado sobre a melhor maneira de abordar isso.
E agora estamos aqui ![]()
