Embedding a list of Discourse Topics in another site

What could one modify to specify multiple categories?

2 curtidas

Should I expect this to work when the “other site” is running locally at http://localhost:8000 and the Discourse site is non-local on an https subdomain? Or would the “other site” also need to be on a “real” domain?

The script file appears to be fetched fine and I don’t see errors in the JS console. The “other site” is a Gatsby/React site; I’m adding the <d-topics-list> element once the page is rendered in the browser via useEffect, and it looks correct to me in the live DOM (see screenshot)…

Screen Shot 2021-05-19 at 9.21.08 AM

2 curtidas

Going from https to http usually causes problems, but you can confirm by opening your browser console F12.

4 curtidas

Aha, my issue appears to be that React is messing with the client-side DOM, resetting it to match the server-rendered DOM (with the raw <d-topics-list> element) immediately after the embed-topics.js script inserts the iframe.

5 curtidas

Anyone know what this error is about??

Latest Discourse Build
Latest Chrome Browser

Refused to frame ‘https://vapingcommunity.co.uk/’ because an ancestor violates the following Content Security Policy directive: “frame-ancestors ‘self’”.

3 curtidas

Most likely related to this change: (cc @falco)

Do you have your main site registered under Admin > Customize > Embedding?

7 curtidas

Bingo! Didn’t see that change, all working perfectly again, thanks so much :wink:

5 curtidas

Alguém está recebendo algum erro de "Recusado em emoldurar"?

Eu ativei os tópicos incorporados e recebo

Recusado em emoldurar 'https://myforumurl.com/' porque um ancestral viola a seguinte diretiva da Política de Segurança de Conteúdo: \"frame-ancestors 'self'\".
1 curtida

Você está tentando incorporar seu fórum inteiro em outro site? Isso não funcionará.

O OP descreve como incorporar listas de tópicos em outro site, mas você não pode executar o Discourse em um iframe pelos motivos que você descreve.

3 curtidas

Não, apenas os tópicos mais recentes. Segui as instruções para habilitar o tópico incorporado nas configurações e copiei os scripts para o cabeçalho e o corpo do site host. Não tenho certeza se o erro é causado porque o site de desenvolvimento em que estou testando não tem SSL.

3 curtidas

Isso se deve às configurações de segurança do seu site, não do lado do Discourse.

4 curtidas

Consegui fazer funcionar. Só não li as instruções com atenção suficiente :slight_smile:

4 curtidas

Então, isso está funcionando muito bem, meu único problema é que o Google está indexando a URL do iframe em si

Por exemplo, tenho tópicos do Discourse incorporados nesta página

O Google parece indexar a página acima corretamente… mas também está indexando os URLs abaixo, o que eu gostaria de corrigir

https://discuss.flynumber.com/embed/topics?discourse_embed_id=de-zse3f2nh3&template=complete&search=Romania&per_page=5

Existe alguma maneira de obter um meta noindex nas páginas acima? Ou, melhor ainda, colocar esta nova tag do Google nas páginas acima

5 curtidas

Interessante, obrigado pela dica @nader.. devemos adicionar esta nova tag ao <iframe> por padrão @falco, ou torná-la uma configuração?

4 curtidas

Isso deve resolver

6 curtidas

Só pensei em apontar que isso está servindo ' noindex, indexifembedded ' para todos os rastreadores, mesmo que seja apenas o Google que suporta o novo indexifembedded

Isso provavelmente deveria mudar para x-robots-tag: googlebot:noindex, indexifembedded

Ou removido completamente, pois o noindex pode ter consequências imprevistas em outros mecanismos de busca.

1 curtida

Duvido que a palavra extra seja particularmente prejudicial a outros crawlers. Você tem alguma evidência de que este é o caso, por exemplo, algum outro crawler está dizendo aos sites para não usar indexifembedded?

(Na maioria das vezes, ao escrever código como este, você tende a ignorar quaisquer tags HTML que não esteja esperando, essa é meio que a configuração padrão para HTML.)

3 curtidas

Não vejo isso, mas na página do Google diz:

Atualmente, apenas o Google oferece suporte à tag indexifembedded.

Concordo que eles ignorarão o indexifembedded, mas minha preocupação é que o noindex cause problemas de SEO para a página em que está.

Então, vamos deixar o Bing rastrear uma URL que tenha incorporações de tópicos. Ele rastreia essa URL e também rastreia a URL incorporada

/embed/topics?discourse_embed_id=XXXXXX....

Se o acima for noindex, temo que isso prejudique o SEO da página que está apresentando a incorporação do tópico.

Tudo isso é corrigido usando x-robots-tag: googlebot:noindex, indexifembedded, mas posso entender por que o Discourse pode não querer favorecer 1 mecanismo de busca. Espero que se torne padrão, mas por enquanto parece que é apenas o Google.

3 curtidas

Olá! Só queria perguntar se ainda não há uma maneira integrada de fazer com que tópicos incorporados abram como target="_blank" em vez de target="_parent"

3 curtidas

Só estou curioso para saber por que só consigo mostrar 1 tópico? Alguém sabe?

Aqui está a categoria (que tem muitos tópicos): Amazon Specific - eCommerce Sellers Forum

E o código de incorporação:
<d-topics-list discourse-url="https://forum.flowster.app" template="complete" top_period="all" category="17" per-page="5"></d-topics-list>

Mas apenas um tópico aparece:

:thinking:

2 curtidas