التوثيق

بنية المشروع

الملفات التي يتكوّن منها برنامج Orb، والملفات التي يكتبها المترجم.

يمكن أن يكون برنامج Orb ملف .lolo واحدًا. ومع نموه تنضم إليه ملفات قليلة، ويكتب المترجم ملفات أخرى لا تحرّرها أبدًا.

ما الذي تكتبه

text
1 2 3 4 5 6 7 8 my-app/ ├── app.lolo the program: orbitals, entities, traits, pages ├── locales/ │ ├── en/my-app.json copy for (i18n/t "key") in each declared locale │ └── ar/my-app.json ├── blocks/ │ └── Invoices.lolo your own building blocks, imported as "@app/blocks/Invoices" └── public/ files copied as-is to the built site (logos, downloads)
  • .lolo هي اللغة التي تكتبها، صياغة على طريقة Lisp: كل استدعاء لعامل قائمة بين قوسين (op args…).
  • locales/<locale>/<app>.json يحمل نصوص كل لغة يعلنها البرنامج بـ locales [en, ar, sl]. راجع التوطين.
  • blocks/ يحمل وحدات البناء التي تستوردها بـ uses X from "@app/blocks/<Name>".
  • public "./public" في ترويسة app يحدد مجلدًا يُنسخ كما هو إلى جذر الموقع المبني.

ما الذي يكتبه المترجم

  • .orb هو صيغة JSON للبرنامج: تنخفض إليه .lolo دون فقد، وهو ما تقرؤه بيئة التشغيل والمدقق. الأمر orb emit orb app.lolo يطبعه.
  • orb resolve app.lolo --output app.orb يكتب البرنامج محلولًا بالكامل: كل استيراد مسطّح وكل مرجع مضمَّن. البرنامج الذي يستخدم uses lazy يحصل أيضًا على مجلد lazy/ فيه ملف .orb لكل سلوك يُحمَّل عند الحاجة، والبرنامج الذي يعلن locales يحصل على كتالوج مدمج لكل لغة بجانبه.
  • orb compile يكتب تطبيقًا كاملًا (TypeScript افتراضيًا) في --output. لا تحرّره أبدًا: غيّر البرنامج وترجمه مجددًا.

الاستيراد

يحدد uses مصدر السلوك:

text
1 2 3 uses Browse from "std/behaviors/std-browse" the public standard library uses Invoices from "@app/blocks/Invoices" your own blocks uses lazy Guide from "./guide" loaded only when one of its pages opens

حزم السلوكيات مثبَّتة لا مدمجة: orb list يعرض المتاح، وorb add <package> يضيف حزمة إلى مشروع.

Orb

لغة برمجة من آلات حالة قابلة للتركيب.

© 2026 المدار. ليوبليانا، سلوفينيا.
Not reported here