لقد قمت بإنشاء إضافة، ليست لـ Discourse بل لـ Gatsby. تستخرج الإضافة قوائم المواضيع من تثبيت Discourse وتحولها إلى عقد Gatsby. هذا يبسط استخدام Discourse كنظام إدارة محتوى منفصل (Headless CMS).
نستخدمها في مشروع لبناء مدونة صغيرة وتقويم يتم تحديثه تلقائيًا عند إضافة محتوى جديد إلى المنتدى.
إليك المدونة الصغيرة:
المصدر: https://foodshift.se/t/forenade-inkop-nyheter-blogg/290/9
النتيجة: https://forenadeinkop.se/blogg
وإليك التقويم:
المصدر: https://foodshift.se/tags/c/events/13/forenade-inkop/l/agenda
النتيجة: https://forenadeinkop.se (في الأسفل)
آمل أن يجدها شخص آخر مفيدة!
gatsby-source-discourse-topic-list يساعدك على استخراج قوائم المواضيع من منصة منتدى المناقشة Discourse وتحويلها إلى عقد Gatsby.
بالإضافة إلى قائمة المواضيع التي توفرها واجهة برمجة تطبيقات Discourse، تقوم الإضافة أيضًا بجلب النص الخام لكل موضوع.
البدء
- قم بتثبيت الحزمة باستخدام yarn أو npm
yarn add gatsby-source-discourse-topic-list
- أضفها إلى الإضافات في ملف gatsby-config.js الخاص بك
module.exports = {
plugins: [
{
resolve: "gatsby-source-discourse-topic-list",
options: {
url: "https://my-discourse-server.com"
endPoint: 'top.json',
}
}
]
};
الخيارات
| الاسم | النوع | الوصف |
|---|---|---|
| url | كائن أو نص | مطلوب. عنوان URL لتثبيت Discourse الخاص بك كنص. إذا كان لديك واجهتان برمجتان مختلفتان للتطوير والإنتاج، عرّف كائنًا بالمفاتيح production و development. |
| endPoint | نص | مطلوب. أي نقطة نهاية لواجهة برمجة تطبيقات Discourse تُرجع topic_list. |
| rootKey | نص | اختياري. سمِّ واجهتك البرمجية. |
أمثلة على نقاط نهاية واجهة برمجة تطبيقات Discourse
أحدث المواضيع في فئة:
options: {
url: "https://meta.discourse.org"
endPoint: 'c/1.json',
}
أحدث المواضيع في فئة، مع تصفية حسب الوسم:
options: {
url: "https://meta.discourse.org"
endPoint: 'tags/c/bug/1/pr-welcome.json',
}
أهم المواضيع في فئة:
options: {
url: "https://meta.discourse.org"
endPoint: 'c/support/6/l/top.json',
}
راجع توثيق واجهة برمجة تطبيقات Discourse للحصول على قائمة كاملة بنقاط النهاية.
مثال على النتيجة
لاحظ الحقل المضاف raw الذي يحتوي على نص الموضوع الكامل غير المعالج.
{
"users": [
{
"id": 0,
"username": "string",
"avatar_template": "string"
}
],
"topic_list": {
"can_create_topic": true,
"draft": {},
"draft_key": "string",
"draft_sequence": 0,
"for_period": "string",
"per_page": 0,
"topics": [
{
"id": 0,
"title": "string",
"fancy_title": "string",
"slug": "string",
"raw": "نص الموضوع الكامل غير المعالج بتنسيق Markdown",
...
}
]
}
}
مصادر متعددة؟ حالات متعددة!
إذا كنت ترغب في جلب نقاط نهاية متعددة في مشروعك، فقط قم بإنشاء الإضافة عدة مرات. فقط تأكد من تعيين rootKey مختلف لكل حالة.
الاعتمادات
تُبنى هذه الإضافة على gatsby-source-custom-api الممتاز من Andreas Faust. ![]()
المساهمة
كل مساهمة موضع تقدير كبير.
لا تتردد في الإبلاغ عن الأخطاء أو طلبات الميزات وسحب الطلبات.
إذا كانت هذه الإضافة مفيدة لك، قم بتمييزها بنجمة على GitHub.
