Un post è stato diviso in un nuovo argomento: Incorpora Discourse usando external_id
Per un caso d’uso di un sito di documentazione (centinaia/migliaia di pagine), è possibile non far generare a Discourse l’argomento quando un utente visita le pagine, ma piuttosto quando desidera lasciare un commento, nel modo in cui funziona Giscus?
Questo ora è “Allowlist”
Questo ora è “Username for topic creation”.
A parte questo, c’è un modo per testare l’integrazione da http://localhost? Ricevo questo errore nella console a causa della mancanza di https:
Refused to frame ‘https://forum.weaviate.io/’ because an ancestor violates the following Content Security Policy directive: “frame-ancestors ‘self’ https://localhost:3000”.
Ciao! Grazie per la segnalazione. Ho aggiornato alcune parti della guida, ma potrebbe essere necessario rivederla in modo approfondito per assicurarsi che sia correttamente aggiornata e funzionante.
A parte questo, c’è un modo per testare l’integrazione da http://localhost?
Potrebbe essere necessario utilizzare un servizio come ngrok.
Modifica: a quanto pare, l’uso di url_escape sull’URL di incorporamento (poiché uso Liquid per inserire automaticamente l’URL corretto) interrompe l’incorporamento. Ops ![]()
Ehi! Avevo in programma di utilizzare un software per forum per raddoppiare la sezione commenti del mio blog, quindi quando ho scoperto che non solo avete un modo per farlo, ma è anche attualmente attivo sul sito web di qualcuno, la mia mente è esplosa ![]()
Tuttavia, quando ho cercato di implementare questo sistema sul mio sito, viene visualizzato un messaggio di errore sul mio sito e questo è apparso nei log degli errori del mio forum:
Messaggio di errore
Message (2 copies reported)
Addressable::URI::InvalidURIError (Cannot assemble URI string with ambiguous path: 'https://eleboog.com/posts/jekyll-to-gemini/')
lib/url_helper.rb:157:in `normalize_with_addressable'
lib/url_helper.rb:94:in `normalized_encode'
app/models/embeddable_host.rb:50:in `url_allowed?'
app/controllers/embed_controller.rb:84:in `comments'
app/controllers/application_controller.rb:418:in `block in with_resolved_locale'
app/controllers/application_controller.rb:418:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
addressable (2.8.4) lib/addressable/uri.rb:2337:in `to_s'
addressable (2.8.4) lib/addressable/uri.rb:856:in `initialize'
addressable (2.8.4) lib/addressable/uri.rb:697:in `new'
addressable (2.8.4) lib/addressable/uri.rb:697:in `normalized_encode'
lib/url_helper.rb:157:in `normalize_with_addressable'
lib/url_helper.rb:94:in `normalized_encode'
app/models/embeddable_host.rb:50:in `url_allowed?'
app/controllers/embed_controller.rb:84:in `comments'
actionpack (7.0.4.3) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack (7.0.4.3) lib/abstract_controller/base.rb:215:in `process_action'
Env
HTTP HOSTS: forums.eleboog.com
Sto usando Jekyll per ospitare il mio blog e ospitare i miei forum insieme ad esso utilizzando host virtuali nginx. Ho eleboog.com come host consentito e /posts/.* come mia allowlist di percorsi. Qualche idea su cosa potrebbe causare questo problema? Grazie mille!
Sono rimasto bloccato in mezzo ma dopo alcune modifiche ci sono riuscito. Sto lavorando con il mio blog Ghost e Discourse
Ecco cosa ho aggiunto nel file post.hbs per tutti i miei post.
{{#post}}
<div>
<div>
{{> "comments"}}
{{!-- {{#has tag="25"}} --}}
<div id='discourse-comments'></div>
<meta name='discourse-username' content='eviltrout'>
<script type="text/javascript">
DiscourseEmbed = {
discourseUrl: 'https://discourse-1-0.cloudclusters.net/',
discourseEmbedUrl : 'https://www.mydomain.com{{ post.url }}',
discourseReferrerPolicy: 'strict-origin-when-cross-origin'
//topicId: '25'
};
(function () {
console.log("DiscourseEmbed", DiscourseEmbed);
var d = document.createElement('script');
d.type = 'text/javascript';
d.async = true;
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
})();
</script>
{{!-- {{/has}} --}}
</div>
</div>
{{/post}}
</div>
</section>
Codice del file Ghost post.hbs incollato sotto il commento: Screenshot by Lightshot
E queste sono le mie impostazioni di incorporamento: Screenshot by Lightshot
=====
Sto ottenendo il primissimo commento come elencato (Screenshot by Lightshot).
Come posso rimuoverlo.
Nessun post è pubblicato sull’argomento Discourse, solo il link al post originale: Screenshot by Lightshot
Qualcuno sa come posso pubblicare il contenuto del mio blog in questo argomento… Proprio come l’OP.
Cosa fare quando continua a mostrare “Caricamento discussione”?
Prova ad aprire l’ispettore web del tuo browser nella scheda Console e verifica se ci sono errori. Se pubblichi gli errori qui, qualcuno potrebbe essere in grado di aiutarti.
Prova anche ad aprire l’ispettore web del tuo browser nella scheda Elementi e cerca ‘discourse-comments’. Questo dovrebbe evidenziare un elemento nel markup. Direttamente sotto l’elemento <div id="discourse-comments">, dovrebbe esserci un tag script. Dai un’occhiata al contenuto di quel tag per eventuali errori evidenti.
Forse la prima cosa da controllare è assicurarsi che il record Host che hai configurato per il dominio su Discourse stia pubblicando post in una categoria pubblica.
Se stai tentando di pubblicare post in una categoria protetta o su un sito Discourse che richiede agli utenti di accedere per visualizzare contenuti, probabilmente otterrai errori.
Grazie Simon per l’aiuto.
La console è iniziata vuota, ma dopo un po’ mostra questo errore:
Modifica:
Dopo molte ricerche, ho capito che dovevo includere “www.” in discourseEmbedUrl.
Ciao a tutti! Un paio di domande:
- Avete qualche idea sul motivo per cui l’opzione “Gli argomenti importati saranno non elencati finché non ci sarà una risposta” potrebbe continuare a essere riattivata ogni volta che faccio clic su “Salva impostazioni di incorporamento”, anche dopo averla deselezionata?
- Quando visualizzo un post del blog in Chrome, vedo quanto segue dove dovrebbero essere visualizzati i commenti incorporati di Discourse:
E in Safari, c’è solo un blocco bianco/vuoto in questo spazio, senza alcun messaggio.
Sono connesso all’installazione di Discourse su entrambi i browser durante il test. Il blog si trova su un dominio diverso dall’installazione di Discourse.
Grazie in anticipo!
Qualche idea sul motivo per cui l’opzione “Gli argomenti importati non saranno elencati finché non ci sarà una risposta” continui a essere attivata ogni volta che faccio clic su “Salva impostazioni di incorporamento”?
Non so perché stia succedendo. Cosa succede se vai alla pagina delle impostazioni del tuo sito e cambi il valore dell’impostazione del sito embed unlisted?
Quella impostazione e l’impostazione “Gli argomenti importati non saranno elencati…” dovrebbero rispecchiarsi a vicenda.
Quando visualizzo un post del blog in Chrome, vedo quanto segue dove dovrebbero essere visualizzati i commenti di Discourse incorporati:
Sono connesso all’installazione di Discourse su entrambi i browser durante il test. Il blog si trova su un dominio diverso dall’installazione di Discourse.
Finché non incorpori gli argomenti in una categoria privata di Discourse, avere il blog su un dominio diverso da Discourse non dovrebbe causare problemi.
L’errore che vedo su questo post del blog (Break Out Of Your Workout Rut With 8 AMRAP Fitness Challenges) è:
Refused to frame 'https://community.irla.co/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' https://antsylabs.com https://antsylabs.com".
Hai impostato il dominio completo (incluso www) sul record Host del tuo sito Discourse? Sembra che tu abbia aggiunto solo antsylabs.com a quell’impostazione.
Non so perché stia succedendo. Cosa succede se vai alla pagina delle impostazioni del tuo sito e cambi il valore dell’impostazione del sito
embed unlisted?
Questo era il problema, grazie!
Hai impostato il dominio completo (incluso
www) sul record Host sul tuo sito Discourse? Sembra che tu abbia aggiunto soloantsylabs.coma questa impostazione.
Hai assolutamente ragione. Avevo omesso il ‘www’ da questo record e aggiungerlo al record host fa sì che i commenti incorporati vengano visualizzati perfettamente.
Grazie mille per il tuo aiuto! Lo apprezzo sinceramente.
È possibile visualizzare i commenti incorporati in ordine cronologico inverso (dal più recente al più vecchio)?
È possibile visualizzare i commenti incorporati in ordine cronologico inverso?
Al momento non è possibile. Sarebbe fantastico se i commenti incorporati visualizzassero alcune opzioni selezionabili dall’utente per filtrare i commenti. Ad esempio “tutti”, “recenti”, “migliori”.
È possibile che il crawler non gestisca le umlaut tedesche, come Ä, Ö, Ü?
Titoli come “Ich würde” finiscono in “Ich würde”.
Ho parecchie domande e apprezzerei se qualcuno potesse aiutarmi.
Sto cercando di incorporare commenti su un sito web NextJS con esportazioni statiche, cioè al momento in cui il sito è online, tutte le pagine sono pre-generate, quindi anche se ho visto commenti altrove che discourse non può fare lo scraping di SPA, la mia comprensione è che dovrebbe essere in grado di gestire il mio sito web.
Immaginiamo che il mio forum sia su forum.domain.com e il mio sito web dove voglio incorporare i commenti sia su site.domain.com. Abbiamo aggiunto tutti gli script relativi ai commenti e vediamo un eterno “Caricamento discussione” all’interno di un iframe.
Se apro da Safari, vedo il seguente errore nella console:
Impossibile inviare messaggi a https://forum.domain.com. Il destinatario ha origine https://site.domain.com.
Che sembra essere un problema CORS, ma ho aggiunto sia site.domain.com che www.site.domain.com alle impostazioni di incorporamento sulla mia istanza Discourse.
Per qualche motivo, non vedo quell’errore nella console di Firefox, vedo solo
E infine, se vado su https://forum.domain.coom/embed/comments?embed_url=https%3A%2F%2Fsite.domain.com%2Fpath%2Fto%2Fpage, vedo anche il caricamento della discussione eternamente. Il che mi fa pensare che il problema sia in qualche modo dal lato Discourse, e non dal mio sito web. A meno che non fraintenda come funziona l’incorporamento, quindi se qualcuno ha qualche consiglio, lo apprezzerei molto.
Ciò che è interessante, e forse correlato, è che ho aggiunto l’incorporamento su due tipi di pagine: site.domain.com/path/to/page e site.domain.com/longer/path/to/page, e non ho aggiunto il tag commenti alla home page. Ma sul mio discourse, vedo un argomento dedicato alla home page di site.domain.com, che, per qualche motivo, sembra essere aggiornato ogni volta che un utente visita un sito web

quindi ora ha un’incredibile quantità di modifiche. Parte del testo incorporato contiene un indirizzo email, che viene visualizzato in discourse come [email protected] e tutte le modifiche vengono mostrate come se modificassero quella parte
Ciao!\n\nVorrei avere la tua opinione su questo "bug": Embed: dates are not localized - #9 by weber-s senso avere un’impostazione per la localizzazione della data? Perché al momento è in inglese, senza possibilità di personalizzazione.
Abbiamo uno scenario in cui non fa una bella impressione quando le persone condividono immagini/screenshot nei loro post per post incorporati in un’altra pagina.
Quale sarebbe una buona soluzione per nascondere le immagini nei post incorporati in un altro sito?
C’è una scheda CSS dedicata nei temi per questa funzionalità, quindi nascondere le immagini all’interno del corpo del post con CSS è il modo più rapido per ottenerlo.







