Markdown و BBCode و Emoji لا يتم عرضها في منشور API

أنا أستخدم واجهة برمجة تطبيقات Discourse لتحديث منشور عبر PUT؛ يتم إجراء التحديثات، ولكن يتم تحليل علامات HTML المقبولة فقط. لا يتم عرض Markdown و BBCode والرموز التعبيرية بشكل صحيح. أقوم بتمرير طلب PUT بنوع محتوى application/json لأنه في الواقع حمولة JSON وهو نوع المحتوى الوحيد الذي يبدو أنه مقبول لطلب PUT على الرغم من أن الوثائق تقول إنه كان أحد الخيارات الثلاثة.

هل لدى أي شخص أي فكرة عن سبب عدم قيام محرك العرض بتحليل الأشياء عند إجراء التحديثات عبر واجهة برمجة التطبيقات؟

إعجاب واحد (1)

سألقي نظرة على السجلات وأرى أيضًا ما انتهى به المطاف في حقل markdown الخام.

3 إعجابات

لا أرى أي أخطاء في السجلات والحمولة الخام هي بالضبط ما أحدده في طلب cURL الذي يقوم بعمل PUT. عندما أقوم بسحب عرض JSON للموضوع، أرى هذا:


	`<p><img src="https://global.discourse-cdn.com/standard10/uploads/wysterialane/original/1X/284fb6069edededf16b0830d468eaf03bc261616.webp" alt="mother of god shades GIF" data-base62-sha1="5KBSuBIpIj3xlACzeZINBKw7wEu" width="262" height="200" class="animated"></p><br>Why won't this work? :face_with_symbols_over_mouth: <br>`

الـ GIF الموجود هناك كان شيئًا وضعته في OP وقام محرك العرض بترجمته إلى HTML وكل شيء على ما يرام. عندما أضيف <br>Why won't this work? :face_with_symbols_over_mouth: <br> عبر واجهة برمجة التطبيقات، يتم نشر النص الخام ولكن محرك العرض لا يفعل شيئًا به. هل هذا هو السلوك المتوقع؟ أعتقد أن الحل البديل هو أن تقوم خدمتي بصياغة حمولة HTML الكاملة وتمريرها، وهو أمر سيء نوعًا ما.

تجدر الإشارة أيضًا إلى أن لدي خدمة منفصلة تنشر في سلسلة دردشة مباشرة عبر خطاف وارد وتظهر الرموز التعبيرية بشكل صحيح في جزء الدردشة. يبدو أن هذا خاص بواجهة برمجة تطبيقات النشر.

الرموز التعبيرية وHTML

أعتقد أن المشكلة التي تواجهها مع اختصارات الرموز التعبيرية المحاطة بعلامات HTML هي السلوك المتوقع. يمكن تكرارها في منشور تم إنشاؤه داخل محرر منشورات Discourse. على سبيل المثال، سيتم عرض:face_with_symbols_over_mouth: كـ :face_with_symbols_over_mouth: ضمن هذه الفقرة.

إذا استخدمت علامات p لإنشاء فقرة بدلاً من الاعتماد على محرك markdown للقيام بذلك، فلن يتم عرض الاختصار. على سبيل المثال:

<p>تحتوي هذه الجملة على اختصار رمز تعبيري :face_with_symbols_over_mouth:</p>

تحتوي هذه الجملة على اختصار رمز تعبيري :face_with_symbols_over_mouth:

Markdown

تبدو مشكلة نشر markdown عبر واجهة برمجة التطبيقات قابلة للحل، ولكن ربما يكون من الصعب التعامل معها. باستخدام curl من الطرفية، يجب أن يعمل شيء مثل هذا:

m="### هذا عنوان
                                                                                                                                                           
هذه فقرة قصيرة جدًا مع بعض _التأكيد_ على كلمة.

هذه فقرة أخرى مع رمز تعبيري :slight_smile:

- هذا
- هو
- قائمة
- غير مرتبة

تليها فقرة أخرى.

1) و
2) قائمة
3) مرتبة
4)
"

curl -X POST "http://localhost:4200/posts.json" -H "Api-Key: $api_key" -H "Api-Username: simon" -F "title=Markdown test one" -F "category=6" -F "skip_validations=true" -F "raw=$m"

تم تضمين المعلمة skip_validations في الطلب أعلاه فقط لمنع أخطاء مثل “body too short” أو “duplicate title” عند الاختبار. إنها تتجاوز مجموعة من إعدادات الموقع (الحد الأدنى لطول المنشور، الحد الأدنى لإنتروبيا النص الأساسي، الحد الأدنى لطول عنوان الموضوع، إلخ)

لست متأكدًا بشأن مشكلة BBCode. هل تعمل علامات BBCode التي تحاول عرضها عند إضافتها إلى محرر منشورات موقع Discourse الخاص بك؟

إعجاب واحد (1)