تم تقسيم مشاركة إلى موضوع جديد: تضمين Discourse باستخدام external_id
بالنسبة لحالة استخدام موقع توثيق (مئات/آلاف الصفحات)، هل من الممكن عدم قيام Discourse بإنشاء الموضوع عند زيارة المستخدم للصفحات، ولكن بدلاً من ذلك عند رغبته في ترك تعليق، بالطريقة التي يعمل بها Giscus؟
هذا الآن “قائمة السماح”.
هذا الآن “اسم المستخدم لإنشاء الموضوع”.
بخلاف ذلك، هل هناك طريقة لاختبار التكامل من http://localhost؟ أحصل على هذا الخطأ في وحدة التحكم بسبب نقص https:
رفض تأطير ‘https://forum.weaviate.io/’ لأن السلف ينتهك توجيه سياسة أمان المحتوى التالي: “frame-ancestors ‘self’ https://localhost:3000”.
مرحباً! شكراً على الإبلاغ. لقد قمت بتحديث بعض أجزاء الدليل، ولكن قد يلزم مراجعتها بعمق للتأكد من تحديثها بشكل صحيح وعملها.
بخلاف ذلك، هل هناك طريقة لاختبار التكامل من http://localhost؟
قد تحتاج إلى استخدام خدمة مثل ngrok.
تعديل: اتضح أن استخدام url_escape على عنوان URL المضمن (حيث أستخدم Liquid لإدراج عنوان URL الصحيح تلقائيًا) يكسر التضمين. يا للهول ![]()
مرحباً! كنت أخطط لاستخدام برنامج المنتديات ليعمل كقسم تعليقات لمدونتي، لذلك عندما اكتشفت أن لديكم ليس فقط طريقة للقيام بذلك، بل إنها تعمل حاليًا على موقع شخص ما، انفجر عقلي ![]()
ومع ذلك، عند محاولة تطبيق هذا النظام على موقعي، تظهر رسالة خطأ على موقعي، وظهر هذا في سجلات أخطاء المنتديات الخاصة بي:
رسالة الخطأ
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
أستخدم Jekyll لاستضافة مدونتي واستضافة منتدياتي بجانبها باستخدام مضيفات افتراضية لـ nginx. لدي eleboog.com كمضيف مسموح به و /posts/.* كقائمة مسار مسموح بها. أي أفكار حول ما قد يسبب هذه المشكلة؟ شكراً جزيلاً!
لقد كنت عالقًا في المنتصف ولكن بعد بعض التعديلات تمكنت من ذلك. أعمل مع مدونتي Ghost و Discourse
إليك ما أضفته في ملف post.hbs لجميع مشاركاتي.
{{#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>
ملف Ghost post.hbs تم لصق الرمز تحت التعليق: Screenshot by Lightshot
وهذه إعدادات التضمين الخاصة بي: Screenshot by Lightshot
=====
أنا أحصل على التعليق الأول مدرجًا (Screenshot by Lightshot).
كيف يمكنني إزالة ذلك.
لا يوجد منشور منشور في موضوع Discourse سوى رابط المنشور الأصلي: Screenshot by Lightshot
هل يعرف أي شخص كيف يمكنني نشر محتوى مدونتي في هذا الموضوع.. مثل OP.
ماذا أفعل عندما يستمر في عرض “جارٍ تحميل المناقشة”؟
حاول فتح أداة فحص الويب في متصفحك إلى علامة التبويب “Console” (وحدة التحكم) وتحقق مما إذا كانت هناك أي أخطاء. إذا قمت بنشر الأخطاء هنا، فقد يتمكن شخص ما من المساعدة.
حاول أيضًا فتح أداة فحص الويب في متصفحك إلى علامة التبويب “Elements” (العناصر) وابحث عن “discourse-comments”. يجب أن يؤدي ذلك إلى تمييز عنصر واحد في الترميز. مباشرة أسفل العنصر <div id="discourse-comments">، يجب أن يكون هناك علامة <script>. ألقِ نظرة على محتوى تلك العلامة بحثًا عن أخطاء واضحة.
ربما يكون أول شيء يجب التحقق منه هو التأكد من أن سجل المضيف الذي قمت بتكوينه للنطاق على Discourse ينشر المشاركات إلى فئة عامة.
إذا كنت تحاول نشر مشاركات إلى فئة محمية، أو إلى موقع Discourse يتطلب من المستخدمين تسجيل الدخول لعرض المحتوى، فمن المحتمل أن تحصل على أخطاء.
شكراً لك سيمون على المساعدة.
بدأت الوحدة التحكم فارغة، ولكن بعد فترة تظهر هذه الرسالة:
تعديل:
اكتشفت بعد الكثير من استكشاف الأخطاء وإصلاحها أنني بحاجة إلى تضمين “www.” في discourseEmbedUrl.
أهلاً بالجميع! لديّ سؤالان:\n\n1. هل لدى أي شخص أفكار حول سبب استمرار خيار “سيتم إدراج المواضيع المستوردة حتى يتم الرد عليها” في العودة إلى التفعيل في كل مرة أنقر فيها على “حفظ إعدادات التضمين”، حتى بعد إلغاء تحديده؟\n\n
\n\n2. عند عرض منشور مدونة في Chrome، أرى ما يلي حيث يجب عرض التعليقات المضمنة في Discourse:\n\n\n\nوفي Safari، هناك فقط كتلة فارغة/بيضاء في هذه المساحة، دون أي رسالة على الإطلاق.\n\nأنا مسجل الدخول إلى تثبيت Discourse على كلا المتصفحين أثناء اختبار هذا. المدونة موجودة على نطاق مختلف عن تثبيت Discourse.\n\nشكراً مقدماً!هل لديك أي أفكار حول سبب استمرار خيار “سيتم إدراج المواضيع المستوردة حتى يتم الرد عليها” في العودة إلى التفعيل في كل مرة أنقر فيها على “حفظ إعدادات التضمين”؟
لا أعرف سبب حدوث ذلك. ماذا يحدث إذا ذهبت إلى صفحة إعدادات موقعك وغيرت قيمة إعداد الموقع embed unlisted؟
من المفترض أن يعكس هذا الإعداد، والإعداد “سيتم إدراج المواضيع المستوردة…” بعضهما البعض.
عند عرض منشور مدونة في Chrome، أرى ما يلي حيث يجب عرض تعليقات Discourse المضمنة:
لقد سجلت الدخول إلى تثبيت Discourse في كلا المتصفحين أثناء اختبار هذا. المدونة موجودة على نطاق مختلف عن تثبيت Discourse.
طالما أنك لا تقوم بتضمين المواضيع في فئة Discourse خاصة، فإن وجود المدونة على نطاق مختلف عن Discourse لا ينبغي أن يسبب مشكلة.
الخطأ الذي أراه في منشور المدونة هذا (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".
هل لديك النطاق الكامل (بما في ذلك www) معينًا في سجل المضيف على موقع Discourse الخاص بك؟ يبدو أنك أضفت antsylabs.com فقط إلى هذا الإعداد.
لا أعرف سبب حدوث ذلك. ماذا يحدث إذا انتقلت إلى صفحة إعدادات موقعك وغيرت قيمة إعداد الموقع
embed unlisted؟
كانت هذه هي المشكلة، شكرًا لك!
هل لديك النطاق الكامل (بما في ذلك
www) معينًا في سجل المضيف (Host record) على موقع Discourse الخاص بك؟ يبدو أنك أضفت للتوantsylabs.comإلى هذا الإعداد.
أنت على حق تمامًا. لقد حذفت ‘www’ من هذا السجل، وإضافته إلى سجل المضيف يؤدي إلى عرض التعليقات المضمنة بشكل مثالي.
شكرًا جزيلاً على مساعدتك! أقدر ذلك حقًا.
هل من الممكن عرض التعليقات المضمنة بترتيب زمني عكسي (الأحدث أولاً، الأقدم أخيراً)؟
هل من الممكن عرض التعليقات المضمنة بترتيب زمني عكسي؟
لا يمكن فعل ذلك حاليًا. سيكون من الرائع لو عرضت التعليقات المضمنة بعض الخيارات التي يمكن للمستخدم تحديدها لتصفية التعليقات. على سبيل المثال “الكل” أو “الأحدث” أو “الأفضل”.
هل من الممكن أن الزاحف لا يمكنه التعامل مع الأحرف الألمانية الخاصة مثل Ä و Ö و Ü؟
العناوين مثل “Ich würde” تنتهي بـ “Ich würde”.
لدي بعض الأسئلة، وسأكون ممتنًا لو تمكن شخص ما من مساعدتي.
أحاول تضمين التعليقات على موقع NextJS مع تصديرات ثابتة، أي بحلول الوقت الذي يكون فيه الموقع مباشرًا، تكون جميع الصفحات قد تم إنشاؤها مسبقًا، لذلك على الرغم من أنني رأيت تعليقات في أماكن أخرى تفيد بأن discourse لا يمكنه كشط SPA، إلا أن فهمي هو أنه يجب أن يكون قادرًا على التعامل مع موقعي.
لنفترض أن منتدانا موجود على forum.domain.com والموقع الذي أرغب في تضمين التعليقات فيه هو site.domain.com. لقد أضفنا جميع النصوص البرمجية المتعلقة بالتعليقات، ونرى “جارٍ تحميل المناقشة” بشكل دائم داخل إطار iframe.
إذا فتحت من Safari، أرى الخطأ التالي في وحدة التحكم:
Unable to post message to https://forum.domain.com. Recipient has origin https://site.domain.com.
وهو ما يبدو أنه مشكلة CORS، لكنني أضفت كلًا من site.domain.com و www.site.domain.com إلى إعدادات التضمين في مثيل Discourse الخاص بي.
لسبب ما، لا أرى هذا الخطأ في وحدة تحكم Firefox، أرى فقط
وأخيرًا، إذا ذهبت إلى https://forum.domain.coom/embed/comments?embed_url=https%3A%2F%2Fsite.domain.com%2Fpath%2Fto%2Fpage، أرى أيضًا “جارٍ تحميل المناقشة” بشكل دائم. مما يجعلني أعتقد أن المشكلة تكمن بطريقة ما في جانب Discourse، وليس في موقعي. ما لم أكن أسيء فهم كيفية عمل التضمين، لذلك إذا كان لدى أي شخص أي نصيحة، فسأكون ممتنًا للغاية.
المثير للاهتمام، وربما ذي صلة، هو أنني أضفت التضمين على نوعين من الصفحات: site.domain.com/path/to/page و site.domain.com/longer/path/to/page، ولم أضف علامة التعليقات إلى الصفحة الرئيسية. ولكن في Discourse الخاص بي، أرى موضوعًا مخصصًا للصفحة الرئيسية لـ site.domain.com، والذي يبدو، لسبب ما، أنه يتم تحديثه في كل مرة يزور فيها مستخدم موقعًا.

لذلك لديه الآن كمية لا تصدق من التعديلات. جزء من النص المضمن يحتوي على عنوان بريد إلكتروني، والذي يتم عرضه في Discourse كـ [email protected] وجميع التعديلات تظهر كما لو كانت تعديل هذا الجزء.
مرحباً!
أود الحصول على رأيك بشأن هذا “الخطأ”: Embed: dates are not localized - #9 by weber-s
هل سيكون من المنطقي وجود إعداد لترجمة التواريخ؟ لأنه في الوقت الحالي هي باللغة الإنجليزية، مع عدم وجود إمكانية للتخصيص.
لدينا سيناريو لا يبدو جيدًا عندما يشارك الأشخاص صورًا/لقطات شاشة في منشوراتهم للمنشورات التي يتم تضمينها في صفحة أخرى.
ما هو الحل الجيد لإخفاء الصور في المنشورات التي يتم تضمينها في موقع آخر؟
يوجد علامة تبويب CSS مخصصة في السمات لهذه الميزة، لذا فإن إخفاء الصور داخل نص المنشور باستخدام CSS هو أسرع طريقة لتحقيق ذلك.







