دليل أسطرلاب English GitHub

المتتبعات

كتلة مسيَّجة تحوّل الملاحظة إلى بطاقة تقدّم حية، ولوحة تصفّ تلك البطاقات كلها على رف.


المتتبع يحفظ لك كم قطعت من شيء ما: كتاب، أو لعبة، أو دورة، أو مشروع. تكتبه على هيئة سياج ```tracker (أي كتلة كود لغتها tracker) داخل أي ملاحظة، فيُعرض بطاقةً فيها صورة غلاف، وشريط تقدّم، وشريحة حالة، وتقييم، وملاحظاتك أنت. وتبدو البطاقة واحدة في المحرر، وفي عرض القراءة، وعلى المدونة المنشورة، وداخل التضمين، لأن الأربعة ترسمها بالعارض نفسه.

title: Elden Ring
kind: game
cover: elden-ring.jpg
progress: 62/130
unit: hours
status: playing
rating: 9/10
started: 2026-07-01
notes: |
  Margit took 14 tries.

الحقول

المفتاحما يأخذهملاحظات
titleأي نصأو اكتب العنوان وحده في سطر مستقل.
kindbook game film show course project habit، أو كلمة من عندكيحدد الرمز والوحدة الافتراضية. وتُحسب movie وseries وtv وnovel وanime وclass على الأنواع السبعة؛ وكل ما عداها يحتفظ بكلمتك ويأخذ الرمز ✦.
coverاسم مرفق، أو ![[name.jpg]]يُبحث عنه كما يُبحث عن الصورة المضمَّنة تمامًا. وإن كان مفقودًا أو مكسورًا ظهر رمز النوع، ولا تظهر صورة مكسورة أبدًا.
progress62/130، 45%، 45، 62 of 130، 62/?الكسر تُشتق منه النسبة؛ والرقم المجرد هو النسبة. و62/? عدّ بلا سقف (ساعات في لعبة لم يقس أحد طولها): تطبع البطاقة العدد ولا ترسم شريطًا. وتُقرأ الأرقام العربية المشرقية أيضًا.
seasonأي نصموسم المسلسل، يُطبع على غلاف البطاقة. يُحفظ كما كُتب؛ ويكتبه نموذج صفحة الوسائط للمسلسلات.
stepرقمكم يتقدم العدّ بكل ضغطة على − أو +. وإن تُرك: عشرة للصفحات والدقائق، وواحد لكل ما عداها.
paceرقمكم وحدة في اليوم تنوي أن تقطع: pace: 20. ومع مجموع تقول لك البطاقة في أي يوم ستنتهي. والسِّجِلّ الذي يسمّي هذا العمل يقرأ صفحات اليوم منه.
dueتاريخاليوم الذي تنوي أن تنتهي فيه. ومع مجموع من غير وتيرة تقول لك البطاقة الوتيرة التي توصلك إليه.
folderمجلد في الخزانةحيث تسكن ملاحظاتك أنت عن هذا العمل (1 - Source Material/Books/The Linux Memory Manager). تسمّيه البطاقة المعروضة؛ وتعدّ صفحة الوسائط الملاحظات التي فيه وتفتحه. ومسار المكتبة الذي على المجلد نفسه يلبس غلاف هذا المتتبع.
fileملف PDF الذي هو هذا العمل: Books/Muqaddimah.pdf، أو Muqaddimah.pdf وحده؛ و[[…]] مقبولبه يجد القارئ هذا المتتبع حين تنتهي جلسة. ومن دونه يطابق القارئ على العنوان، فهذا السطر لطبعتين تتشاركان عنوانًا، أو حين يختلف عنوان السياج عن عنوان الملف.
sessionsقيمة على عدة أسطر، جلسة في كل سطر؛ انظر جلسات القراءةيكتبها القارئ، ويكتبها Astrolabe حين يتقدم كتاب بلا جلسة؛ وتقرؤها وتعدّلها أنت.
sittingsmanualيوقف الجلسات المقدَّرة لهذا الكتاب. وإن تُرك فهي تعمل.
unitأي كلمةكلمتك، تُطبع كما كتبتها، إلا إذا كانت وحدة تعرفها الواجهة أصلًا بأي من اللغتين (chapters وصفحات وhours وepisodes…)، فتُترجم كما تُترجم الوحدة الافتراضية. واتركها تُستعمل وحدة النوع نفسه (صفحات، ساعات، دقائق، حلقات، دروس، مهام، أيام)، مترجمة ومجموعة جمعًا صحيحًا.
statusplanned active done paused droppedومعها الكلمات التي يكتبها الناس فعلًا: reading وplaying وwatching وin-progress وstarted وfinished وon hold وdnf وbacklog… وإن تُركت استُنتجت من التقدّم.
rating8/10، 4/5، ★★★★، 4الرقم المجرد يُحسب من خمسة إن كان خمسة أو أقل، ومن عشرة إن زاد.
started، finishedتاريختاريخ ISO (2026-07-01) يُنسَّق بتقويم الموقع وأرقامه؛ وكل ما عداه يُطبع كما كُتب.
notesقيمة على عدة أسطر (المفتاح، ثم نقطتان، ثم |)ماركداون، يُعرض كما يُعرض في أي ملاحظة.

تُتجاهل المفاتيح المجهولة. والسياج الذي لا عنوان فيه ولا تقدّم يبقى كتلة كود عادية. وهذا مقصود: فالمحتوى الذي لا يمكن تحليله ينبغي أن يُقرأ مصدرًا بدل أن يتلاشى في بطاقة فارغة، وهي القاعدة نفسها التي يتبعها $$ math $$ أصلًا.

وللملاحظة أن تحمل من المتتبعات ما تشاء.

جلسات القراءة

حين تغلق كتابًا في قارئ الكتب تُكتب الجلسة في متتبع الكتاب سطرًا واحدًا في كتلة sessions::

title: المقدمة
kind: book
progress: 139/500
file: Books/Muqaddimah.pdf
sessions: |
  2026-09-14 | 100–112 | 12 pages | 20 min
  2026-09-15 | 112–139 | 27 pages | 41 min

اقرأه من اليسار إلى اليمين، والفاصل |: التاريخ، وأول صفحة وآخر صفحة في الجلسة، والصفحات المنتهية، والدقائق التي عدّتها الساعة. والسطر لك كما هو للتطبيق: اكتب سطرًا بيدك يُحسب؛ واحذف سطرًا فكأنه لم يكن. وتأتي الأجزاء بأي ترتيب وبأي من اللغتين (٢٧ صفحة | ٤١ د)، وقد يغيب المدى، والسطر الذي لا يبدأ بتاريخ ليس جلسة. وحين يعدّ المتتبع بالصفحات يتحرك سطر progress: بعدد الصفحات المقروءة في الوقت نفسه.

ومن آخر خمس جلسات موقوتة تقرأ البطاقة سرعة الكتاب نفسه وتقول نحو 1.6 صفحة في الدقيقة هنا؛ بقي 4 س 20، تحت إسقاط الوتيرة حين يكون ثمة إسقاط. وتجمع مراجعة الأسبوع الأسطر كتابًا كتابًا.

جلسات من التقدم

لا يمرّ كل كتاب بالقارئ. فحين يتقدم سطر progress: في كتاب (ضغطة على + في صفحة الوسائط أو على البطاقة، أو رقم جديد تكتبه في السياج، أو ملاحظة تصل من مزامنة) ولا شيء في الحفظة نفسها يفسّر هذا التقدم، يكتب Astrolabe الجلسة بنفسه، مؤرَّخة باليوم الذي رأى فيه التقدم:

  2026-09-27 | 139–160 | 21 pages | ~32 min
  2026-09-27 | 3–5 | 2 chapters | ~60 min | default pace

وعلامة ~ تقول إن الدقائق مقدَّرة لا موقوتة. وتأتي من وتيرتك أنت أولًا: دقائق الصفحة (أو الفصل، أو أي وحدة يعدّ بها الكتاب) على آخر خمس جلسات موقوتة لهذا الكتاب؛ فإن لم تكن له جلسات، فعلى كل جلسات الكتب الموقوتة في الخزانة بالوحدة نفسها؛ فإن لم تكن هذه أيضًا، فالقيم الافتراضية: دقيقة ونصف للصفحة، و30 للفصل، و10 للقسم، و120 للجزء أو المجلد، وساعة للساعة، و10 دقائق لأي وحدة أخرى. والكتاب الذي يُعدّ بالفصول وقد فتح القارئ ملف PDF الخاص به يوزّع صفحاته على فصوله بدلًا من ذلك: 300 صفحة في 12 فصلًا هي 25 صفحة للفصل، بوتيرتك في الصفحة أو بالوتيرة الافتراضية. والسطر الذي يقوم تقديره على القيم الافتراضية ينتهي بـ| default pace، وتقول تحته لوحة اليوم في التقويم تقديرًا؛ والذي يقوم على وتيرتك تقول تحته تقديرًا من وتيرتك.

والقواعد، كي لا يفاجئك سطر أبدًا:

  • الكتب وحدها تُحسب: متتبع kind: book (أو كلمة تُحسب عليه مثل novel)، أو سياج بلا نوع يعدّ بالصفحات. وساعات اللعبة ليست جلسة.
  • المتتبع الذي يُلقى أول مرة لا يُكتب له شيء. ويتذكر Astrolabe آخر تقدم رآه لكل متتبع في trackers-progress.json في مجلد البيانات، فلا تحسب إعادة التشغيل شيئًا مرتين؛ وإن ضاع الملف لُقي كل كتاب من جديد لا أكثر.
  • التقدمات الكثيرة في يوم واحد سطر واحد: يمتد المدى، وتُجمع الصفحات، ويُقدَّر الوقت من جديد للجملة.
  • الرجوع لا يكتب شيئًا جديدًا؛ بل يستردّ ما كان سطر ذلك اليوم قد عدّه، ويذهب السطر حين لا يبقى منه شيء. والرقم الذي يُكتب على مراحل (62 ثم 6 ثم 70) يُعدّ من 62.
  • الحفظة التي تأتي بجلستها معها، جلسة القارئ أو سطر كتبته أنت مع الرقم الجديد، تُترك كما هي.
  • الجلسة الموقوتة لا تُمسّ أبدًا، والسطر الذي عدّلته أو حذفته لك: لا يعيد Astrolabe كتابة سطر إلا السطر الذي كتبه هو، حرفًا بحرف، ولا يعيد سطرًا حذفته.
  • sittings: manual في السياج يوقف هذا كله لذلك الكتاب.
  • اليوم يوم هذه النسخة. والتقدم الذي يجري في جيب تطبيق الهاتف دون اتصال يُكتب حين يصل إلى هذه النسخة، في يوم وصوله.

والجلسة المقدَّرة جلسة في كل مكان آخر أيضًا. فـالتقويم يذكر الكتاب تحت ذلك اليوم (بحبر خافت في خلية الشهر حين لا يعرف اليوم عنه إلا الشريط)، والخط الزمني ومراجعة الأسبوع يطبعان وقتها مع ~، وحصاد السنة يعدّها ويقول كم جلسة وكم دقيقة منها مقدَّرة. ولا يتركها إلا سرعة القراءة في البطاقة، لأنها تلك السرعة نفسها مقروءة من جديد.

دفع الشريط

في المحرر تحصل جلسة المشرف على زرّين هادئين، − و**+**، عند حافة البطاقة. الضغطة الواحدة وحدة واحدة: تعيد كتابة سطر progress: في ملفك ولا شيء غيره، خطوةَ تراجع واحدة. ولا مخزن منفصل هنا. فالملاحظة هي الحالة، ولذلك يفعل تحرير الرقم بيدك ما يفعله الزر بالضبط.

وحين تتجاوز 100% يتوهج الشريط توهجًا خفيفًا، وتظهر ✦، علامة أسطرلاب، بجانب العدّ.

أما عرض القراءة والموقع العام فساكنان عمدًا: لا طريق للزائر إلى الكتابة، والأزرار التي لا تستطيع أن تعمل أثاث يكذب.

اللوحة

يرسم سياج ```tracker-board كل متتبع في الخزانة شبكةً من بطاقات مصغرة، مجمّعة بحسب الحالة (الجاري أولًا، ثم المخطط، فالمكتمل، فالمتوقف، فالمتروك). وتربط كل بطاقة إلى الملاحظة التي يسكنها متتبعها.

kind: game
status: active
limit: 12
المرشحالأثر
kindذلك النوع فقط. يُطوى كما يُطوى kind: في البطاقة نفسها، فيجد kind: movie أفلامك.
statusتلك الحالة فقط، بمرادفاتها.
limitذلك العدد من البطاقات على الأكثر.

والمتن الفارغ لوحة بكل شيء. والخزانة التي لا متتبعات فيها تحصل على حالة فارغة مرحِّبة بدل فراغ.

نشر رفّ

تعرف اللوحة من ينظر إليها. فهي تقرأ GET /api/trackers، وهو يُجيب كل ناظر بما يحق له، على قاعدة قائمة تدوينات المدونة نفسها:

  • يرى الزائر متتبعات الملاحظات المنشورة فقط، وبمرشح اللغة نفسه الذي يُطبَّق على المدونة؛
  • ويرى المشرف الخزانة كلها؛
  • والقوالب مستثناة من الاثنين: فالقالب الذي يحمل هيكل متتبع كان سيضع نفسه على الرف كتابًا لم يبدأه أحد.

فاللوحة التي تتركها في ملاحظة منشورة آمنة: تستطيع أن تضع سنة قراءتك على الموقع العام من غير أن تفتح بقية الخزانة. وتُقدَّم صورة غلاف المتتبع المنشور للزوار أيضًا؛ إذ يضم المفهرس أغلفة المتتبعات إلى القائمة نفسها التي يُسمح للزائر بجلب ما فيها، كاللافتات والتضمينات.

صفحة الوسائط

اللوحة سياج تضعه في ملاحظة. أما صفحة الوسائط فهي الرف نفسه مكانًا قائمًا بذاته. يفتحها زر بجانب ترس الإعدادات (للمشرفين فقط؛ أو «فتح صفحة الوسائط» في لوحة الأوامر) تبويبًا في اللوحة المركَّز عليها، بجانب الملاحظات، يحمل كل متتبع في الخزانة موزَّعًا على رفوف بحسب النوع. ويغلقها الزر نفسه، وتُسحب إلى تقسيم كأي تبويب.

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

وكل بطاقة هي بطاقة السياج مصغّرة: الغلاف والعنوان والشريط والعدّ والحالة والتقييم والتواريخ وأول أسطر ملاحظاتك. يدفع زراها − / + التقدّم كما يفعل عدّاد المحرر تمامًا، ويعيد تحرير فتح النموذج معبَّأً، ويرسل حذف ملاحظة العمل إلى المهملات عبر الحوار نفسه الذي تستعمله الشجرة (تراجع في الرسالة، ويعيدها متصفح المهملات)، ويفتح الغلاف أو العنوان الملاحظة.

وأضف وسائط نموذج: النوع، والعنوان، والغلاف (اختر صورة في الخزانة أصلًا، أو ارفع واحدة، أو الصق رابط https://)، والتقدّم، والوحدة، وموسم للمسلسل، والحالة، والتقييم، والتواريخ، والملاحظات. يكتب ملاحظة واحدة:

Media/Shows/Severance.md

متنها سياج ```tracker واحد بتلك الحقول، فينطبق عليها كل ما تقوله بقية هذه الصفحة: تُعرض بطاقةً في الملاحظة، وتظهر على أي لوحة، وتستطيع أن تحرّر السياج بيدك. ويقرر النوع المجلد: في النسخة العربية وسائط/كتب وألعاب ومسلسلات وأفلام ودورات (وفي الإنجليزية Media/Books وGames وShows وFilms وCourses، ومجلد بحرف أول كبير لنوع من عندك). والخزانة التي فيها جذر Media أصلًا تواصل الإيداع فيه، والعكس صحيح. والعنوان الذي له ملاحظة أصلًا يُرفض ولا يُكتب فوقه.

وللعبة لم يقس أحد طولها أوقف المجموع في النموذج: يقول السياج progress: 62/?، وتعدّ البطاقة الساعات ولا ترسم شريطًا. وشغّله لاحقًا يعود الشريط.

مجلد لملاحظاتك أنت. يوجّه الملاحظات في الخزانة في النموذج (أو folder: في السياج) العملَ إلى مجلد، هو الذي تحفظ فيه أصلًا ملاحظات الفصول أو الحلقات. فتنمو في البطاقة شريحة تعدّ الملاحظات التي هناك وتفتحها: يُفتح الشريط الجانبي، وينفرج المجلد في الشجرة وينبض ثلاث مرات لترى أين هو، والمجلد الذي له ملاحظة باسمه (ملاحظة باسم المجلد، أو index.md) تُفتح ملاحظته أيضًا؛ وتحت الشريحة آخر ملاحظة لمستها وحدها، بابًا يعيدك إلى حيث توقفت. وتحفظ اللوحة الجانبية الرابط نفسه من الطرفين: على ملاحظة داخل المجلد يسمّي متابَع في العملَ ويرسم شريطه ويدفعه؛ وعلى ملاحظة المتتبع نفسها يعدّ ملاحظات هذا العمل الملاحظات ويعرض آخر ما لمست ويفتح المجلد. وفي الشريط الجانبي يلبس المجلد رمز العمل بجانب اسمه، وتفتح تلك العلامة المتتبع. ولا يُنقل شيء ولا يُكتب شيء في تلك الملاحظات. وحين يكون المجلد نفسه مسار مكتبة تلبس بطاقة المسار على الرف وصفحته غلاف هذا المتتبع، فوق أي غلاف يسمّيه الصف أو ملاحظة المجلد، فيكون الكتاب الذي تتابعه والكتاب الذي يفتحه قراؤك صورة واحدة.

والتحرير من الصفحة يعيد كتابة السياج وحده في الملاحظة. أما النص الذي تحته والمقدمة وأي متتبع ثانٍ فتبقى بايتًا بايتًا كما كانت.

والصفحة للمشرف فقط لأنها تكتب. ورف الزائر هو اللوحة، على أي ملاحظة اخترت أن تنشرها فيها.

في أوبسيديان

tracker امتداد من أسطرلاب، لا ميزة في أوبسيديان. افتح الخزانة نفسها في أوبسيديان يعود السياج إلى ما هو عليه في الأصل: كتلة كود مسمّاة، كل أسطرها مقروءة. لا يُحوَّل شيء ولا يضيع شيء، وتظل الملاحظة تقول كل ما قالته هنا. وكذلك السِّجِلّ؛ أما الرسمة فهي ملف إضافة Excalidraw نفسه، والمدار يكتب مواعيده بصيغة إضافة التكرار المتباعد نفسها.

حرّر هذه الصفحة على GitHub

أسطرلاب برنامج حر. هذه الصفحات مبنية من ملفات Markdown في مجلد docs بالمستودع.