Bubo Reader هو قارئ موجز فائق الحد الأدنى (RSS، Atom، JSON) يمكنك نشره على خادمك الخاص، أو Netlify في خطوات قليلة أو Glitch في خطوات أقل! الهدف من المشروع هو إنشاء صفحة ويب تعرض قائمة الروابط من مجموعة من الخلاصات المنظمة حسب الفئة وموقع الويب. هذا كل شيء.
تمت تسميتها على اسم هذه البومة الآلية السخيفة من Clash of the Titans (1981).
يمكنك قراءة المزيد عن هذا المشروع على مدونتي:
npm install
لتثبيت التبعيات.feeds.json
لتضمين الفئات والروابط إلى الخلاصات التي ترغب في رؤيتها.npm run build:bubo
هذا كل شيء! يجب أن يكون لديك الآن صفحة ثابتة تحتوي على روابط لأحدث محتوى من خلاصاتك في المجلد public
، جاهزة للعرض.
القطع الساكنة:
conf/feeds.json
- ملف JSON يحتوي على عناوين URL للخلاصة مقسمة إلى فئات.config/template.html
- قالب Nunjucks الذي يتيح لك تغيير كيفية عرض الخلاصات. يمكن تغيير هذا إلى أي شيء آخر تريده — انظر أدناه.public/style.css
- ملف CSS لتنسيق مخرجات الخلاصة.public/index.html
- ملف HTML الذي يتم إنشاؤه تلقائيًا عند تشغيل Bubo.المحرك:
src/index.ts
- البرنامج النصي الأساسي الذي تقوم بتشغيله عندما تريد إنشاء إصدار جديد من Bubo. سيقوم تلقائيًا بجلب أحدث محتوى من خلاصاتك وإنشاء ملف ثابت جديد على public/index.html
.src/renderer.ts
— العارض الذي يقوم بتحميل Nunjucks والقالب ويفهم كيفية معالجة بيانات الموجز الواردة. تفضل شيئا آخر؟ هذا هو المكان المناسب لتغييره!src/utilities.ts
- مجموعة متنوعة من أدوات التحليل والتسوية المساعدة لـ Bubo، مخفية بعيدًا لمحاولة الحفاظ على نظافة الأشياء. ستجد في ملف index.ts
الرئيسي قيمتين تسمحان لك بتجميع طلبات الخلاصة والتحكم فيها:
MAX_CONNECTIONS
الحد الأقصى لعدد الطلبات التي يمكن أن تتم دفعة واحدة.DELAY_MS
مقدار وقت التأخير بين كل دفعة. التكوين الافتراضي ليس تجميعًا أو تقييدًا لأنه تم تعيين MAX_CONNECTIONS
على Infinity
. إذا أردت تغيير Bubo لجلب موجز واحد فقط في المرة كل ثانية، فيمكنك تعيين هذه القيم على:
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;
إذا أردت قصر الأمور على 10 طلبات متزامنة كل 2.5 ثانية، فيمكنك ضبطها على النحو التالي:
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ;
من الناحية العملية، لم أواجه أبدًا مشكلة في ترك MAX_CONNECTIONS
مضبوطًا على Infinity
ولكن هذا يبدو وكأنه ضمانة معقولة للتصميم.
أسرع طريقة هي إعادة مزج المشروع على Glitch: https://glitch.com/edit/#!/bubo-rss
يوجد أيضًا فرع glitch
في هذا الريبو إذا كنت تفضل البدء من هناك.
ما عليك سوى تغيير بعض الخلاصات في ملف ./config/feeds.json
وستكون جاهزًا! إذا كنت ترغب في تعديل النمط أو القالب، فيمكنك تغيير ملف ./public/style.css
أو ملف ./config/template.html
على التوالي.
config/feeds.json
لإدارة خلاصاتك وفئاتك يجب أن يتم استيراد إعدادات النشر تلقائيًا من ملف netlify.toml
. كل ما عليك فعله هو التأكيد وستكون جاهزًا للانطلاق!
للحفاظ على تحديث خلاصاتك، ستحتاج إلى إعداد Build Hook لموقع Netlify الخاص بك واستخدام خدمة أخرى لإجراء اختبار الاتصال به بين الحين والآخر لبدء عملية إعادة البناء. أقترح النظر في:
إذا كان لديك بالفعل خادم يعمل بنظام التشغيل Linux وبعض الخبرة في سطر الأوامر، فقد يكون من الأسهل إعداد مهمة cron.
يمكنك مشاهدة العروض التوضيحية الحية هنا:
إذا وجدت هذا مفيدًا، فيرجى التفكير في رعايتي أو رعايتي لهذا المشروع.
إذا كنت تفضل تشغيل هذا على الخادم الخاص بك، فيرجى التفكير في استخدام أحد هذه الروابط التابعة لإعداد مثيل صغير على Linode أو Digital Ocean أو Vultr.
فيما يلي بعض المواقع التي تستخدم Bubo Reader:
يرجى المشاركة إذا كنت ترغب في أن تكون مميزًا!