الترحيل·5 min read·

كيف أنقل مدونتي التقنية من Hashnode؟

لا يوجد مستورد مخصص لـHashnode، لكن مستورد «أي موقع» العام يمكنه زحف مدونة حيّة. إليك الطريقة الحقيقية لنقل مقالاتك إلى VeloCMS.

تحظى Hashnode بشعبية بين المطورين تحديدًا لأنها صديقة للمطور — كتابة تقوم على Markdown أولًا، وكتل شيفرة نظيفة، وجمهور تقني مدمج. وإن كنت تنظر إلى VeloCMS فغالبًا لأنك تريد مزيدًا من التحكم: تصميمك الخاص، ونطاقًا بلا علامة Hashnode، وقائمة مشتركين تملكها فعلًا. إليك الوضع الحالي بصراحة لنقل مقالاتك.

الحقيقة الصريحة: لا يوجد مستورد مخصص، لكن المستورد العام يعمل

تملك صفحة الاستيراد في VeloCMS (لوحة التحكم ← الاستيراد) مستوردات مخصصة لمنصات مثل WordPress وSubstack وGhost وMedium وغيرها — وHashnode ليست واحدة منها. ما يغطي Hashnode فعليًا هو مستورد «أي موقع» على الصفحة نفسها: وجّهه إلى رابط مدونتك الحيّة على Hashnode فيكتشف مقالاتك عبر خريطة الموقع (sitemap) وخلاصة RSS، ثم يستخرج محتوى كل مقال. يستورد المقالات فقط (بلا تعليقات أو تفاعلات)، ويحتاج أن تبقى مدونتك على Hashnode متصلة بالإنترنت أثناء عمله. لمعظم مدونات Hashnode ينقل هذا الأرشيف بالكامل في مرة واحدة؛ الأقسام أدناه تغطي الحالات التي لا يغطيها — التحكم الدقيق، والتضمينات، والصور.

نقل حفنة من المقالات يدويًا

للمدونة الصغيرة، أسرع طريق حقيقي هو فتح كل مقال من جديد: لوحة التحكم ← المقالات ← مقال جديد، ثم كتابة المحتوى أو إعادة تنسيقه مباشرةً في محرر VeloCMS. تحتفظ كتل الكود المسيّجة بتمييز بناء الجملة وتحصل على زر نسخ تلقائيًا — فيحصل قراؤك من المطورين على تجربة القراءة نفسها التي اعتادوها على Hashnode، ويمكنك الآن إعادة تنسيق ألوان كتل الكود لتناسب سمة موقعك.

برمجة النقل عبر API لأرشيف أكبر

إن كان لديك عشرات المقالات فإعادة كتابة كل منها ليست عملية. يوفّر VeloCMS واجهة REST عامة لإنشاء المقالات برمجيًا — POST /api/v1/posts. أنشئ مفتاحًا بنطاق posts:write من لوحة التحكم ← الإعدادات ← متقدم ← مفاتيح API (يتطلب ذلك خطة Pro أو أعلى، كمستوردات المنصة في VeloCMS)، وحوّل نص Markdown لكل مقال إلى HTML بأي محوّل تفضّله، ثم أرسله عبر content_html مع title وslug وtags وstatus.

curl -X POST https://yourname.velocms.org/api/v1/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Building a REST API with Node.js",
    "slug": "building-rest-api-nodejs",
    "content_html": "<h2>Building a REST API with Node.js</h2><p>...</p>",
    "tags": ["Node.js", "REST API"],
    "status": "draft"
  }'

تضع القيمة status: "draft" المقال في لوحة التحكم ← المقالات كمسودة لتراجع التنسيق والصور قبل النشر — وهذا خيار افتراضي معقول أثناء برمجة دفعة كاملة.

نقل الصور

لا يوجد اصطلاح ZIP بمجلد صور. ارفع كل صورة من لوحة التحكم ← الوسائط (أو عبر POST /api/v1/media بمفتاح media:write) واستخدم الرابط الذي يُعاد لك داخل content_html لمقالك. وإن كانت الصورة مستضافة في مكان آخر — مجلد static/ القديم في Hashnode على GitHub أو CDN — فيمكنك الإشارة إلى ذلك الرابط مباشرةً؛ فلا يشترط VeloCMS إعادة استضافتها كي تُعرض.

التعامل مع التضمينات

لا تنجو تضمينات CodePen وGitHub Gist وغيرها من عناصر Hashnode من النسخ كنص عادي أو HTML — ستظهر في أحسن الأحوال كروابط مجردة. لاستعادة أحدها، الصق شيفرة iframe الخاصة بالخدمة (مثل مقتطف تضمين GitHub Gist) مباشرةً في محرر VeloCMS ككتلة تضمين HTML. هذا إصلاح لمرة واحدة لكل عنصر مضمّن، وليس تلقائيًا.

نقل نطاقك المخصص

إذا كانت مدونة Hashnode تعمل على نطاقك الخاص، فانتقل إلى لوحة التحكم ← الإعدادات ← العلامة التجارية، وافتح قسم «النطاق المخصص» وأضف النطاق — ستظهر لك لوحة حالة بسجلات DNS الدقيقة (هدف CNAME وسجل TXT لإثبات الملكية) لإضافتها. استبدل سجل CNAME الذي يوجّهه مزود DNS إلى Hashnode حاليًا بالهدف الذي تعرضه اللوحة. ينتشر DNS عادةً خلال 5 إلى 30 دقيقة على Cloudflare، وقد يصل إلى 24 ساعة لدى مزودين آخرين.

الحفاظ على جمهورك

متابعو Hashnode ملك لـ Hashnode — لا يوجد تصدير لهم. الخطة الصريحة: انشر مقالًا أخيرًا على Hashnode يشير إلى مدونتك الجديدة في VeloCMS وخلاصة RSS الخاصة بها، وأرسل إشعار الانتقال عبر أداة النشرة الإخبارية في Hashnode إن كنت تستخدمها، واضبط روابط canonical على أي مقالات تتركها على Hashnode كي تنسب محركات البحث الفضل إلى موطنها الجديد.

أسئلة شائعة

  • هل يدعم VeloCMS أساسيات SEO التي يهتم بها المطورون؟ نعم — يولّد VeloCMS Article JSON-LD ووسوم Open Graph وروابط canonical وملف /llms.txt لمفهرسات الذكاء الاصطناعي على كل مقال تلقائيًا.
  • هل توجد طريقة headless أو API-first للنشر، مثل GraphQL API في Hashnode؟ واجهة REST في VeloCMS — الواجهة نفسها الموصوفة أعلاه، /api/v1/posts — تغطي إنشاء المقالات وتحديثها ونشرها بمفتاح API محدد النطاق. إنها REST وليست GraphQL، لكنها تخدم حالة الاستخدام نفسها: «النشر من نص برمجي».
  • هل ستنتقل تعليقاتي وردود الفعل في Hashnode؟ لا — فهي تعيش على منصة Hashnode ولا يوجد ما يعادل ردود الفعل في VeloCMS. تبدأ التعليقات من جديد في نظام التعليقات المدمج في VeloCMS.