ديسقورس كنظام إدارة محتوى لموقع Jekyll

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

كيف أتخيل أن ذلك سيعمل

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

  • يحتوي موقع Jekyll على ملف YAML يحتوي على مصفوفة من عناوين URL للمشاركات (أو معرفات المشاركات إذا قررنا أن baseUrl لـ Discourse هو نفسه دائمًا…) والتي يجب استجوابها للحصول على المحتوى.

  • سيقوم مكون إضافي بسيط لـ Jekyll بتشغيل خطاف لاستجواب كل عنوان URL (في كل إعادة تشغيل لخادم Jekyll؟) والحصول على البيانات. (بالنسبة للعديد من مثيلات Discourse “المفتوحة”، لن يكون هناك حاجة للمصادقة. في بعض الظروف، قد يكون من الضروري تقديم مفتاح API)

  • يتم تنزيل محتوى JSON من عنوان URL بإضافة .json، ويحتوي المفتاح raw في هذا الكائن JSON على Markdown كسلسلة محاطة بعلامتي اقتباس مزدوجتين.

  • يجب إضافة مقدمة YAML الخاصة بـ Jekyll إلى Markdown، وإزالة أي تنظيف مثل علامات الاقتباس المحيطة واستبدال \n بعلامات سطر جديد.

  • يقوم Jekyll ببناء هذه الصفحات بالكامل إلى HTML، أو يمكنك {{include file | markdownify }} دمجها في صفحات أخرى.

لماذا نتعب أنفسنا؟

  • يجعل من السهل للغاية على محرر أو مشرف غير تقني تحديث موقع ثابت.

  • مثالي إذا كان لديك بالفعل Discourse وتريد إنشاء موقع ويب ثابت، مثل موقع لشركة.

  • المواقع الثابتة رخيصة وموثوقة وآمنة.

  • لماذا لا نستخدم نشر الصفحات؟ عندما جربته، بدا أن الصفحات تحتاج إلى الكثير من العمل لتبدو جيدة. يتيح Jekyll تحكمًا أكبر، وبالطبع يسمح بدمج مصادر محتوى يديرها Discourse مع مصادر محتوى لا يديرها Discourse.

ما هي آراء المجتمع؟ هل يستحق المتابعة في هذا الأمر؟

هذا يستحق المتابعة تمامًا. لكنني منحاز: لقد عملت على شيء مشابه قبل بضع سنوات كمشروع هواية.

لم يكن الهدف مجرد إنشاء موقع Jekyll من محتوى مختار في Discourse، بل أيضًا القدرة على نشره ككتاب إلكتروني (epub أو pdf) (وهذا هو جوابي على سؤال ‘لماذا لا نستخدم النشر الصفحي’).

اتبعت نفس النهج تقريبًا باستخدام ملف yml ومصفوفة من عناوين URLs للمقالات.
كانت الصور تحديًا، لكن لا يزال لدي كود Python موجود يقوم باستخراج جميع الروابط upload://، وفك تشفيرها، وتحميل الصور وتغيير حجمها، ثم استبدال الروابط بعناوين URLs محلية للصور.

لم أكمل المشروع أبدًا، لكنني بالتأكيد مهتم باستئنافه والمساهمة في الأشياء (القليلة) التي أنجزتها بالفعل.

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

هل يتوفر لديك أي جزء من الكود في مستودع على GitHub؟

لقد أطلعت على الأمر بعمق، ويبدو أن كود الصور فقط هو الذي يستحق البقاء، ولا تبالِ بأسلوب الكود (أو عدم وجوده).
لقد أنشأت ملخصًا: retrieve images from a raw discourse post · GitHub

يبدو الأمر ممتعًا. لدي عميل قام تقريبًا بنفس الشيء باستخدام الوسوم للسماح للمستخدمين بإنشاء سيرة ذاتية (رغم أن كل شيء يتم عرضه فقط في Discourse).

انظر أيضًا https://meta.discourse.org/posts/1001736/raw

أفضل من ذلك، شكرًا لك!