API مقابل Form: عدم تطابق المحتوى عند التعديل

مرحباً،

لاحظت للتو أنه عند نشر محتوى HTML باستخدام واجهة برمجة التطبيقات posts.json ثم أقوم بتحرير المنشور، أرى كود HTML في محتوى المنشور.

كيفية عرض المنشور:

عند النقر على تحرير:

طلب واجهة برمجة التطبيقات:

عندما أنشر مباشرة عبر النموذج، لا يظهر أي كود HTML في التحرير (العرض هو نفسه):

كيف يمكنني تجنب وجود كود HTML في المحتوى عند تحرير المنشور؟

شكراً لك :slight_smile:

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

مرحباً لوكيد :wave:
المحتوى الخام، الذي يتم عرضه في المُنشئ، يقبل مصفوفة من وسوم HTML، وبالتالي سيعرضها كنص عادي.
إذا كنت ترغب في إضافة سطر جديد دون استخدام وسم <br>، استخدم \n بدلاً منه. :slight_smile:

السطر الأول\nسطر جديد

إذا كنت ترغب في الحصول على فقرتين، فأنت بحاجة إلى إضافة سطر جديد إضافي:

السطر الأول\n\nسطر جديد


لن يؤدي تعديل هذه الرسائل إلى عرض أي وسم <br>.
ملاحظة: يتم إنشاء الفقرات تلقائيًا اعتمادًا على السياق عند معالجة المنشور، لذلك لا داعي لإضافة هذه الوسوم إلى مدخلاتك الخام.

4 إعجابات

مرحباً مرة أخرى كانابين :slight_smile:

حسناً، أفهم. إذن الخيار الوحيد للحصول على عرض نظيف عندما يقوم المستخدمون بتحرير منشورات HTML المُرحّلة الخاصة بهم عبر واجهة برمجة التطبيقات هو استبدال جميع علامات \u003cp\u003e و \u003cbr\u003e بـ \\n إذا فهمت بشكل صحيح؟

شكراً لك

إعجابَين (2)

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

<p>some text</p><p>some other text</p>

سيصبح:

\nsome text\n\nsome other text\n

وسيتم عرضه كالتالي:


some text

some text


3 إعجابات

حسنا، شكرا لك :slight_smile:
السؤال الأخير:
هل هناك أي طريقة يمكنك أن تخبرني بها كيف أضيف إشارة، مثل هذه: @Canapin، في منشور عبر واجهة برمجة التطبيقات؟ لقد حاولت استخدام @username في الحقل الخام، لكنه لا يعمل.

تأكد من إرسال حمولة JSON.

{
    "raw": "ذكر اختباري: @canapin",
    "topic_id": 86,
    "reply_to_post_number": 3
}

النتيجة هي ذكر عامل:

إذا كنت تستورد مجموعة كبيرة من البيانات، فيجب عليك استخدام نص برمجي للاستيراد. يحتوي العديد منها على أمثلة لإزالة ترميز HTML والتعامل مع علامات الاقتباس والإشارات.\n\nإذا كنت ترغب في إضافة بيانات باستمرار إلى موقع موجود، فاستخدم واجهة برمجة التطبيقات (API).

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

أرى خطأي! كنت أختبر باسم مستخدم بأحرف صغيرة بدلاً من استخدام اسم المستخدم الدقيق، حيث أن الإشارة حساسة لحالة الأحرف. أعتذر.

شكراً لك على تخصيص الوقت لمساعدتي! :wink:

أتمنى لك يوماً سعيداً!

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

ولكن بالطبع، إنه حل أفضل إذا كان ترحيلًا بسيطًا :slight_smile:

يجب أن تعمل الإشارات حتى لو غيرنا حالة الأحرف:

image

لقطة الشاشة في منشورك الأول تستخدم بيانات النموذج. يجب عليك استخدام حقل خام بتنسيق JSON. :slight_smile:

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.