Tentando substituir / formatar automaticamente strings em posts de usuários

Olá, sou novo no Discourse e meu site está configurado e estou tentando resolver uma funcionalidade crítica de que preciso para uma grande parte da comunidade.

Os usuários têm um software que pode exportar “magic strings” que representam algum estado do jogo e eu quero renderizar esse estado de forma agradável como uma tabela que é gerada a partir da string (no momento do carregamento da página).

Idealmente, eu forneço aos usuários um template ao postar ou eles colocam sua “magic string” dentro de uma classe nomeada ou algo assim e a string é simplesmente renderizada (decorada?) no momento do carregamento da página.

Posso fazer isso? Atualmente estou pensando em escrever um script que analise as strings para todos os elementos/classes desse tipo, mas estou com dificuldades em como/quando fazer o script modificar a postagem exibida (cozida?).

Obrigado,
Brett

1 curtida

Sim, deve ser possível. Você tem uma API para decorar o post processado.
Por exemplo: decorateCookedElement

Você pode compartilhar um exemplo visual do que exatamente você está tentando alcançar?

1 curtida

Talvez você possa criar seu próprio estilo

1 curtida

Tudo bem! Parece que decorateCookedElement é o que eu precisava (conforme a nota de @Arkshine).

Também encontrei este post que tem alguns bons exemplos para filtrar elementos de interesse:
How do we fire scripts after topic HTML is rendered in DOM? - dev - Discourse Meta

Em particular, achei isto muito útil:

$.fn.doSomething = function() {
  const targetElement = $(this).children("[data-theme-test]").length;
  if (!targetElement) return;

  // faça seu trabalho
  
  return this;
};

api.decorateCooked($elem => $elem.doSomething(), { onlyStream: true });

Obrigado!

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.