Incorporar comentários do Discourse em outro site via Javascript

Assim como @codinghorror, também uso essa integração do Discourse com o Ghost usando a configuração padrão, que utiliza a URL absoluta como discourseEmbedURL.

Há cerca de uma semana, decidi alterar o roteamento do meu blog no Ghost para que posts com URLs como https://engineerworkshop.com/2020/02/20/how-to-set-up-wireguard-on-a-raspberry-pi/ sejam redirecionados para https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/, sendo https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/ o novo permalink.

O Problema

Você provavelmente já consegue antecipar o problema que isso gera: o discourseEmbedURL está definido com a URL antiga, e, ao chamar o script de incorporação — que agora possui uma URL diferente —, um novo post de comentário é criado no Discourse.

Tentativa de Solução (Que Falhou)

Antes disso, eu já havia previsto esse problema e, pensando que estava sendo esperto, usei um padrão de regex com o comando remap para corrigir as URLs: rake posts:remap["[0-9]{4}\/[0-9]{2}\/[0-9]{2}","blog",regex]

Embora isso tenha “funcionado até certo ponto”, sempre que a URL era utilizada no post original de comentário no Discourse, infelizmente, ao carregar os posts do blog, novos tópicos de comentários eram criados no Discourse.

No final das contas, recarreguei todos os posts do meu site e transfiri os comentários dos tópicos antigos para os novos, excluindo os originais (eu sei, eu sei). Obviamente, eliminar páginas é prejudicial ao SEO, sem contar a experiência do usuário.

Minha Pergunta

Suponho que o motivo pelo qual minha tentativa de correção com regex não funcionou é que o tópico do Discourse é de alguma forma vinculado à URL no backend. (Admito prontamente que não conheço a estrutura de dados do Discourse). Para conhecimento futuro, e para qualquer outra pessoa que possa tentar fazer o mesmo no futuro, existe uma maneira de remapear um tópico do Discourse para uma nova URL de post no blog?

Obrigado antecipadamente!

5 curtidas