Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alirator

قالب موقع شخصي ثنائي اللغة (عربي/إنجليزي) — بدون أدوات بناء، وقابل للتخصيص من ملف واحد.

English

المميزات

  • ثنائي اللغة — عربي/إنجليزي مع دعم كامل لـ RTL
  • تخصيص فوري — الألوان والمحتوى والبنية من ملف config.yaml
  • محتوى Markdown — صفحات، مدونة، ومقالات قصيرة
  • بدون أدوات بناء — يعمل مباشرة من ملفات المشروع
  • SEO تلقائي — وسوم Open Graph ووصف للصفحات
  • تلوين الشيفرات البرمجية — عبر highlight.js
  • رسوم بيانية — عبر Mermaid
  • نشر تلقائي — GitHub Actions workflow مُضمَّن

البدء

# استنساخ القالب
git clone https://github.com/AliOsm/alirator.git my-site
cd my-site

# تعديل الإعدادات
# عدّل config.yaml باسمك وروابطك ولون الموقع

# تعديل الصفحات
# عدّل ملفات Markdown في مجلد pages/

# بناء الفهارس وتشغيل الخادم المحلِّي
bash dev.sh
# افتح http://localhost:6570

بنية المشروع

alirator/
├── index.html            # صفحة HTML الرئيسية
├── app.js                # منطق التطبيق
├── style.css             # الأنماط
├── config.yaml           # إعدادات الموقع
├── build.rb              # مولّد فهارس المجموعات
├── dev.sh                # سكربت التشغيل المحلي
├── assets/
│   ├── author.svg        # صورة المؤلف الافتراضية
│   └── favicon.svg       # أيقونة الموقع الافتراضية
└── pages/
    ├── home.ar.md        # الصفحة الرئيسية (عربي)
    ├── home.en.md        # الصفحة الرئيسية (إنجليزي)
    ├── *.ar.md / *.en.md # صفحات ثابتة أخرى
    ├── blogs/            # تدوينات طويلة
    │   └── slug.ar.md / slug.en.md
    └── posts/            # مقالات قصيرة
        └── slug.ar.md / slug.en.md

ملفات _manifest.json تُولَّد تلقائيًا بواسطة build.rb ولا تُتبَّع في git.

الإعدادات

ملف config.yaml يتحكم في كل شيء:

القسم الوصف
siteName اسم الموقع (عربي/إنجليزي)
defaultLang اللغة الافتراضية (ar أو en)
theme.accent لون الموقع الأساسي (hex)
author الاسم، النبذة، الصورة، الموقع، روابط التواصل
pages صفحات الموقع — [slug, العربي, English] (استخدم ~ لإخفاء صفحة من لغة معينة)
collections المجموعات — [slug, العربي, English, type]
seo وصف الموقع وصورة المشاركة
footer التذييل (يدعم {year})

إضافة محتوى

صفحات ثابتة

أنشئ ملفًّا في pages/ بالتنسيق slug.lang.md ثم أضفه إلى pages في config.yaml:

pages:
  - [slug, العنوان العربي, English Title]  # كلتا اللغتين
  - [slug, عربي فقط, ~]                    # عربي فقط
  - [slug, ~, English Only]                # إنجليزي فقط

استخدم ~ (null في YAML) بدلاً من العنوان لإخفاء الصفحة من لغة معينة.

تدوينات ومقالات

أنشئ ملفًّا في pages/blogs/ أو pages/posts/ وحدِّد معلوماته كالتالي:

---
title: عنوان التدوينة
date: 2024-06-15
excerpt: وصف مختصر.
tags: [وسم1, وسم2]
cover: /path/to/image.jpg  # اختياري
---

ثم شغّل ruby build.rb لتحديث الفهارس.

النشر

GitHub Pages

المستودع يتضمن workflow للنشر التلقائي. عند رفع التعديلات إلى main يتم التالي:

  1. بناء فهارس المجموعات
  2. إضافة hash لجميع الملفات لكسر التخزين المؤقت
  3. نشر الموقع على GitHub Pages

لتفعيل GitHub Pages على مستودعك: Settings → Pages → Source → GitHub Actions.

استضافات أخرى

الموقع عبارة عن ملفات ثابتة — يعمل على أي استضافة (Netlify، Vercel، Cloudflare Pages، إلخ).

التشغيل المحلي

bash dev.sh

يبني هذا الملف الفهارس ويشغِّل خادمًا محليًّا على المنفذ 6570.

المتطلبات

  • Ruby 2.7+ — لبناء الفهارس وخادم التطوير (لا يستخدم أي اعتماديات خارجية)
  • جميع المكتبات الأخرى تُستخدم عبر CDN

استخدام لغات أخرى

القالب مصمم للعربية والإنجليزية افتراضيًّا، لكنه يدعم أي زوج من اللغات. لاستخدام لغات أخرى:

  1. حدّث رموز اللغات في build.rb (دالة extract_slug_and_lang) و app.js
  2. عدّل langDir في config.yaml لتحديد اتجاه كل لغة
  3. غيّر خطوط Google Fonts في index.html لتناسب اللغات الجديدة

المساهمة

المساهمات مرحّب بها. افتح issue للنقاش أو أرسل pull request.

الرخصة

MIT

About

My personal website, built with Alirator

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages