تخط إلى المحتوى
星罗
بحث
تغيير اللغة
رجوع

دليل التكوين

1 دقيقة قراءة تعديل على GitHub

جميع الخيارات القابلة للتكوين في Xingluo موجودة في ملف الجذر xingluo.config.ts. يوفر الملف قيود نوع كاملة عبر defineXingluoConfig؛ التغييرات تصبح سارية المفعول فورًا دون لمس الكود المصدري.

site

ts
site: { url: "https://xingluo.example.com/", // رابط الموقع، يُستخدم للروابط المطلقة و RSS و sitemap title: "Xingluo", // عنوان الموقع description: "نظام إدارة محتوى مدونات حديث مبني على Astro و shadcn", author: "Xingluo", // اسم المؤلف الافتراضي profile: "https://xingluo.example.com", // الصفحة الرئيسية للمؤلف (تُستخدم لـ JSON-LD) ogImage: "default-og.jpg", // صورة OG الافتراضية (في دليل public) lang: "zh-cn", // اللغة الافتراضية timezone: "Asia/Shanghai", // المنطقة الزمنية (عرض تاريخ المقال) dir: "ltr", // اتجاه النص: ltr | rtl googleVerification: "", // قيمة التحقق من Google Search Console (أو عبر متغير بيئة) }
الحقلالقيمة الافتراضيةملاحظات
urlمطلوبرابط جذر الموقع؛ يجب أن ينتهي بـ /
titleمطلوبعنوان الموقع، يُستخدم في <title> و OG
descriptionمطلوبوصف الموقع، يُستخدم في meta و RSS
authorمطلوبالمؤلف الافتراضي؛ frontmatter المقال يعود إلى هذا القيمة
profile—الصفحة الرئيسية للمؤلف، تُحقن في JSON-LD author.url
ogImagedefault-og.jpgاسم ملف صورة OG الافتراضي، موجود في public/
langمطلوبرمز اللغة الافتراضي؛ يجب أن يتطابق مع i18n.defaultLocale في astro.config.ts
timezoneAsia/Shanghaiالمنطقة الزمنية dayjs، تؤثر على عرض تاريخ المقال
dirltrاتجاه النص
googleVerification—قيمة التحقق من Google؛ يمكن أيضًا حقنها عبر متغير البيئة PUBLIC_GOOGLE_SITE_VERIFICATION

posts

ts
posts: { perPage: 8, // المقالات لكل صفحة قائمة perIndex: 5, // المقالات المعروضة في الصفحة الرئيسية scheduledPostMargin: 900000, // تسامح النشر المجدول (مللي ثانية)، 15 دقيقة }
  • perPage: حجم الصفحة لـ /posts/[...page] و /tags/[tag]/[...page]
  • perIndex: عدد المقالات المعروضة في قسم “الأحدث” بالصفحة الرئيسية
  • scheduledPostMargin: المقالات المستقبلية ضمن هذه النافذة تُعتبر منشورة (فعال في الإنتاج؛ التطوير يظهر الكل)

features

ts
features: { lightAndDarkMode: true, dynamicOgImage: true, showArchives: true, showBackButton: true, editPost: { enabled: true, url: "https://github.com/.../edit/main/" }, search: "flexsearch", mdx: true, comments: { provider: false /* giscus | twikoo | waline */ }, players: { aplayer: false, dplayer: false }, }
الحقلالافتراضيملاحظات
lightAndDarkModetrueتفعيل تبديل الوضع الفاتح/الداكن
dynamicOgImagetrueإنشاء صور OG ديناميكياً (satori + sharp)
showArchivestrueإظهار صفحة الأرشيف (خريطة الموقع تُفلتر عند الإيقاف)
showCategoriestrueإظهار صفحة التصنيفات ومدخل التنقل (خريطة الموقع تُفلتر عند الإيقاف)
showBackButtontrueإظهار زر الرجوع في صفحات المقالات
editPost.enabledfalseإظهار رابط “تعديل هذه الصفحة”
editPost.url""بادئة رابط التحرير؛ يتم إلحاق مسار المصدر النسبي للمقال
search"flexsearch"حل البحث: "flexsearch" أو false
mdxtrueتفعيل تحليل وعرض MDX (راجع إنشاء المحتوى)
comments{provider:false}إعدادات نظام التعليقات (راجع نظام التعليقات)
players.aplayerfalseتفعيل مشغل الصوت APlayer (راجع مشغلات الوسائط)
players.dplayerfalseتفعيل مشغل الفيديو DPlayer

editPost

editPost.url هي بادئة رابط تحرير المستودع؛ يلحق Xingluo مسار المصدر النسبي للمقال (src/content/posts/...). مثال:

ts
editPost: { enabled: true, url: "https://github.com/owner/repo/edit/main/" }

المقال src/content/posts/welcome.md يُنتج الرابط https://github.com/owner/repo/edit/main/src/content/posts/welcome.md.

socials

ts
socials: [ { name: "github", url: "https://github.com/xingluo/blog" }, { name: "x", url: "https://x.com/xingluo" }, { name: "mail", url: "mailto:[email protected]" }, ];
  • name: اسم الأيقونة، المطابق لـ src/assets/icons/socials/{name}.astro. المضمنة: github، x، mail، facebook، telegram، weibo
  • url: رابط URL؛ mailto: للبريد الإلكتروني
  • linkTitle: عنوان وصول اختياري؛ يُنشأ تلقائياً من الاسم عند الحذف

إضافة منصة اجتماعية: أنشئ مكون أيقونة .astro بنفس الاسم في src/assets/icons/socials/. src/lib/socialIcons.ts يجمعها تلقائياً عبر import.meta.glob.

ts
shareLinks: [ { name: "x", url: "https://x.com/intent/post?url=" }, { name: "facebook", url: "https://www.facebook.com/sharer.php?u=" }, { name: "telegram", url: "https://t.me/share/url?url=" }, { name: "weibo", url: "https://service.weibo.com/share/share.php?url=" }, { name: "mail", url: "mailto:?subject=...&body=" }, ];

تظهر إدخالات المشاركة هذه في أسفل صفحات المقالات. url هي بادئة رابط مشاركة؛ يلحق Xingluo الرابط المطلق للمقال الحالي. name يُسند كذلك إلى أيقونة في src/assets/icons/socials/.

متغيرات البيئة

مُعلنة عبر env.schema في astro.config.ts:

المتغيرمستوى الوصولالوصف
PUBLIC_GOOGLE_SITE_VERIFICATIONعام/عميلقيمة التحقق من Google Search Console، اختياري

مثال (PowerShell):

powershell
$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "رمز-التحقق-الخاص-بك" pnpm build

يُحقن القيمة في config.site.googleVerification وتُعرض كـ <meta name="google-site-verification">.

مثال كامل

راجع xingluo.config.ts. أقسام features.comments و features.players تتضمن أمثلة معلقة لـ giscus / twikoo / waline؛ قم بإلغاء التعليق واملأ بالقيم الحقيقية للتفعيل.


مقالات ذات صلة

  • النشر

    2 دقيقة قراءة

    دليل نشر Xingluo ويغطي منصات الاستضافة الثابتة (Netlify/Vercel/GitHub Pages) والاستضافة الذاتية Nginx و Docker ومتغيرات البيئة.

  • البحث

    1 دقيقة قراءة

    دليل البحث في Xingluo ويغطي دمج البحث النصي الكامل Flexsearch وتوليد الفهرس وواجهة المستخدم والبحث متعدد اللغات والأداء.