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

قارئ الكتب

كل ملف PDF وكل ملف EPUB في الخزانة، يُقرأ في عارض يستجيب للوحة المفاتيح، ويتذكر مكانك، ويحوّل التظليل إلى ملاحظة.


انقر ملف .pdf في الشجرة يُفتح كتابًا: قارئ من غير شريط أدوات دائم، تقوده المفاتيح كما تقود zathura وvim، يحفظ مكانك وإن أغلقت التطبيق أو غيّرت اسم الملف، ويسلّم ما تظلّله فيه إلى الملاحظة التي بجانبك مباشرة. وهو تبويب في مساحة العمل كأي ملاحظة، فيستطيع الكتاب أن يجلس في لوحة بجانب الملاحظات التي تكتبها عنه. ورف كل الكتب التي في الخزانة على /library في التطبيق (وتحت مكتبة في الخزانة في الجولة).

الرف

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

القراءة

تبقى أدوات التحكم بعيدة عن طريقك: يظهر شريط عنوان وسطر حالة حين يتحرك المؤشر أو يُضغط مفتاح، ثم يتلاشيان بعد ثانيتين. ويحمل سطر الحالة عدّاد الصفحات (وهو زر يفتح اذهب إلى)، والتكبير، وعدّاد البحث، ومربعًا بلون الحبر الذي سيستعمله h.

مفاتيح تعمل على أي تخطيط للوحة المفاتيح:

المفتاحيفعل
↓ / ↑تمرير بمقدار أربعة أسطر من خط المتن
PageDown / PageUp، Space / Shift Space، Enterشاشة إلى الأسفل أو الأعلى
Home / Endالصفحة الأولى / الأخيرة
Ctrl/Cmd D / Ctrl/Cmd Uنصف شاشة إلى الأسفل / الأعلى
Escإغلاق أي طبقة مفتوحة، وإلا مسح تظليل البحث

وتتبع مفاتيح الحروف الحروفَ اللاتينية المطبوعة على لوحة مفاتيحك، فتعمل على تخطيط عربي أو روسي أيضًا (انظر لوحات المفاتيح غير اللاتينية). والرقم الذي تكتبه أولًا عدد: 5j يمرّر خمس خطوات.

المفتاحيفعل
j / kتمرير إلى الأسفل / الأعلى (5j خمس خطوات)
J / Kالصفحة التالية / السابقة (5J خمس صفحات)
gg / Gالصفحة الأولى / الأخيرة؛ 12G يذهب إلى الصفحة 12
pاذهب إلى: رقم صفحة، أو +3، أو 40%، أو اسم فصل، مع المحتويات مسرودة تحت الحقل
oالمحتويات (مخطط ملف PDF نفسه)
/ ثم n / Nبحث من هذه الصفحة إلى الأمام مع الالتفاف؛ المطابقة التالية / السابقة
+ / = / -تكبير / تصغير
a / sملاءمة العرض / ملاءمة الصفحة كاملة
dصفحتان جنبًا إلى جنب
iالوضع الليلي: معطّل ← ليلي ← مقلوب
r / Rتدوير ربع دورة
m<c> / '<c>ضع علامة في هذه الصفحة / اقفز إليها؛ تُسمّى بالحرف الذي تكتبه، فـmج تُستدعى بـ'ج
h / Hظلّل التحديد بالحبر الحالي / انتقل إلى التالي من الأحبار الستة
c / Cاستشهد بالتحديد في الملاحظة التي بجانبك / اختر أولًا أي ملاحظة مفتوحة
eاكتب ملاحظة في هامش التحديد أو التظليل الذي تحته
xأزل علامة المقطع الذي تحت التحديد (تراجع في الرسالة)
Aالمقاطع المعلَّمة: كل تظليل بحبره وصفحته ونصه وملاحظته
:سطر الأوامر
zوضع التركيز: الكتاب وحده على الشاشة
l / qعودة إلى الرف / إغلاق الكتاب
?ورقة مفاتيح القارئ الخاصة

للوضع الليلي ثلاث حالات لا حالتان. يرسم الليلي الصفحة عبر مرشح داكن ثم يعيد رسم كل صورة فوقها من غير مرشح، فينقلب لون الحروف ولا تنقلب الصور واللوحات والأشكال؛ وكتاب الفن أو الأطلس هو بالضبط ما يفسده القلب البسيط. أما المقلوب فيقلب كل شيء، وهو ما يريده الكتاب الممسوح ضوئيًا.

وتُكتشف الكتب المكتوبة من اليمين إلى اليسار من نصها (تؤخذ عيّنة من منتصف الكتاب، بعيدًا عن صفحة الحقوق) وتُحفظ؛ ويتجاوز :rtl و:ltr هذا التخمين. وفي وضع الصفحتين يضع الكتاب العربي الصفحة 2 على يسار الصفحة 3. وتنعكس الصفحتان مع الكتاب؛ وتنعكس اللوحة التي حولهما مع لغة الواجهة.

سطر الأوامر

يفتح : سطر أوامر على طريقة vi. وتطابق الكلمة أول أمر تختصره، فـ:z تكبير و:h مساعدة، ولا تعني التظليل أبدًا:

:212 · :+3 / :-3 · :40% · :page · :quit (:q) · :library (:lib) · :zoom 150 (:z؛ و:zoom وحده 100%) · :zen · :fit width|page|height · :rotate [90|180|270] · :dual on|off|toggle · :invert off|night|flip · :rtl / :ltr · :mark <c> · :jump <c> · :search <text> · :outline · :forget · :end · :help · :highlight · :ink [1-6] · :cite · :note · :annotations

وتُقرأ الأرقام بالأرقام اللاتينية والعربية المشرقية والفارسية سواء: :٢١٢ هي الصفحة 212.

مكانك محفوظ

يتذكر القارئ الصفحة والموضع داخل الصفحة، والملاءمة، والتكبير، ووضع الصفحتين، والتدوير، والوضع الليلي، والاتجاه، وعلاماتك، لكل كتاب، في books.json، المحفوظ في مجلد البيانات والمنسوخ إلى مجلد .astrolabe/ داخل الخزانة، فيفتح كل خادم فوق الخزانة الكتاب حيث تركته (الإعدادات تسافر مع الخزانة). والمفتاح الذي يُحفظ به هذا كله بصمة من محتوى الملف لا اسمه ولا مكانه، فإعادة تسمية كتاب أو نقله في أوبسيديان أو Syncthing أو الطرفية لا تفقدك شيئًا: الصفحة 612 ما زالت 612، وكذلك التظليلات والاستشهادات التي تشير إليها. ويُحفظ التمرير بعد لحظة من توقفك؛ ويُحفظ التكبير أو التدوير فورًا وتبقى الصفحة في مكانها، فلا يضيّع مكانك تكبيرٌ فعلته لتقرأ حاشية. وينسى :forget موضع القراءة.

التظليلات والاستشهادات وملاحظات الهامش

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

واضغط c يُستشهد بالمقطع في الملاحظة التي بجانبك. ويُعاد بناء الاقتباس من مواضع الكلمات على الصفحة لا من الترتيب الداخلي لملف PDF: تُكتشف الأعمدة، وتُجمَّع الأسطر، ويجري السطر العربي من اليمين إلى اليسار، وتُوصل الشرطة التي في آخر السطر (sig- / nificant) بينما تبقى Anglo-Saxon و1990-1995 على حالها. ويظهر الاقتباس في حقل قابل للتحرير قبل أن يبلغ الملاحظةَ حرف واحد، لأن المجمّع يخمّن، والجملة التي لم يكتبها المؤلف قط لا يجوز أن تحطّ في ملاحظاتك في صمت. ويُلحق بالملاحظة تنبيهَ > [!quote] يتبعه رابط إلى الموضع بالضبط، [[Book.pdf#page=42&rect=…|Book, p. 42]]، بأرقام النسخة نفسها. وتمرّ الكتابة عبر المحرر حين تكون الملاحظة مفتوحة فيه، فتكون خطوة واحدة قابلة للتراجع، وتحمل الرسالة تراجعًا. ويسألك C أولًا أي ملاحظة مفتوحة تريد.

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

ويلحق e ملاحظةً بتظليل؛ ويسرد A كل مقطع معلَّم في الكتاب؛ ويجدها بحث الرف في الخزانة كلها.

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

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

أغلق الكتاب (q أو ✕ أو إغلاق التبويب نفسه)، أو اضغط إنهاء الجلسة في شريط العنوان، أو اكتب :end، فتُسجَّل الجلسة:

قرأتَ 27 صفحة في 41 د؛ سُجِّلت في المقدمة · تراجع

تذهب إلى ملاحظة المتتبع الخاص بالكتاب ولا مكان سواها: سطر واحد في كتلة sessions: في السياج، ويتحرك التقدّم بعدد الصفحات المقروءة حين يعدّ المتتبع بالصفحات (أما شريطٌ يُعدّ بالفصول أو بنسبة مئوية مجرّدة فتحريكه لك؛ وفي آخر الكتاب يقف الشريط عند المجموع، ولا يُرجع التراجع إلا ما حرّكه). ويُعثر على المتتبع بسطر file: حين يسمّي هذا الملف، وبعنوانه في غير ذلك (عنوان الملف نفسه، وإلا فاسمه، بين متتبعات kind: book). والكتاب الذي لا متتبع له تخبرك رسالة بذلك وتعرض تتبَّعه، فتُكتب ملاحظة Media/Books/<العنوان>.md كما تكتبها صفحة الوسائط، فيها file: يشير إلى هذا الملف والجلسة مسجّلة فيها. وتراجع يُخرج السطر والدفعة من الملاحظة كما هي حينئذ.

وإن كان في سِجِلّ فترةٌ اليوم تربط بملاحظة المتتبع أو بالملف (evening: 20 pages of [[المقدمة]])، أو كان سطر book: في الخطة يسمّي المتتبع، عُلِّمت الفترة عنك؛ ومهمة book: لا تُعلَّم إلا إذا بلغت الجلسة وتيرة اليوم. والتراجع يزيل التعليم.

ومن الجلسات تقرأ بطاقة المتتبع سرعة الكتاب نفسه على آخر خمس جلسات وتقول نحو 1.6 صفحة في الدقيقة هنا؛ بقي 4 س 20. «هنا» لأنها وتيرة هذا الكتاب: فالشرح الكثيف والرواية لا يُقرآن بسرعة واحدة.

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

الاقتباسات ← ملاحظة

في الرف، لكل بطاقة الاقتباسات ← ملاحظة. يكتب ملاحظة واحدة بجوار الملف: Books/Muqaddimah.pdf تأخذ Books/Muqaddimah — اقتباسات.md، بعنوان لكل فصل من فهرس الملف نفسه حين يكون له فهرس (أدنى مستوى فيه مدخلان على الأقل)، وإلا فقائمة واحدة، وكل مقطع معلَّم كتلةَ > [!quote] نفسها التي يكتبها الاستشهاد، ورابطها يفتح الكتاب على الصفحة وينبض المقطع. وتتبع ملاحظةُ الهامش مقطعَها نثرًا عاديًا.

وتقع الكتلة بين علامتين:

<!-- astrolabe:highlights -->
…
<!-- /astrolabe:highlights -->

شغّل الإجراء ثانية فلا يُعاد كتابة إلا ما بين العلامتين؛ وكل ما كتبته فوقهما أو تحتهما أو بينهما يبقى. والملاحظة التي لا علامات فيها (كتبتها بيدك) تُلحق بها الكتلة ولا تُستبدل أبدًا. وتعرض الرسالة افتح.

البحث داخل كتاب

يبحث / في نص الكتاب من الصفحة الحالية إلى الأمام ويلتف إلى البداية، فيجد التالي من هذا لا الأول في الكتاب. وينتقل n وN بين المطابقات، ويقرأ العدّاد 3 من 41. وتُلوَّن المطابقة من غير أن يُمسّ نص الصفحة، وتصير هي التحديد، فـ/عبارة ثم h يعلّم بالضبط ما وُجد. ويطوي المطابق الحركات العربية وأشكال الحروف كأي بحث آخر في المنتج.

البحث داخل كل كتاب

يجيب صندوق البحث في الشريط الجانبي من صفحات كل ملف PDF على الرف كما يجيب من الملاحظات. ويعرض صف الكتاب عنوان الكتاب (من /Title الخاص به، أو اسم الملف)، والصفحة (ص 42، بأرقام النسخة)، ونص الصفحة حول المطابقة؛ والنقر عليه يفتح القارئ على تلك الصفحة. ويجب أن تظهر كل كلمة في الصفحة، كما مع المعاملات؛ ويضيّق path:Books بحسب المجلد؛ أما معاملات الملاحظات (tag: وis: والتواريخ والروابط) فأسئلة عن الملاحظات، وتُبقي الكتب خارج الجواب. ومعاملان يختاران جانبًا:

النوعيجد
in:booksصفحات كتب الرف وحدها؛ ووحده يعدّد صفًّا لكل كتاب
in:notesالملاحظات وحدها، كما كان الصندوق يبحث دائمًا

ويحمل الجواب المختلط حتى عشرين صفحة كتاب، خمسًا على الأكثر من الكتاب الواحد، بجانب الملاحظات؛ ويعدّد in:books حتى خمسين. ولا يحصل الزوار على صفوف كتب أبدًا: فالرف للمالك.

ويُقرأ النص مرة واحدة، في الخلفية بعد بدء الخادم، كتابين في كل مرة، ويُحفظ في ASTROLABE_DATA/pdftext.json تحت البصمة نفسها التي يُحفظ بها موضع قراءتك، فالكتاب المعاد تسميته أو نقله يحتفظ بنصه، والكتاب المحفوظ من جديد (بعد تمريرة OCR مثلًا) يُقرأ من جديد. والكتاب الذي لا يمكن قراءته (تالف، أو محمي بكلمة سر، أو أكبر من 256 ميغابايت) يُذكر على أنه كذلك ولا يُعاد حتى تتغير بايتاته. ويحفظ المخزن لكل كتاب 2,000 صفحة على الأكثر، و8,000 حرف للصفحة، ومليونًا ونصف المليون حرف في المجموع؛ ويتوقف المخزن كله عند 40 مليون حرف، ويقول سطر بدء الخادم كم كتابًا يحمل. والكتاب الممسوح ضوئيًا من غير طبقة نص لا شيء فيه يُعثر عليه، تمامًا كما في / القارئ نفسه. ويوقف صف البحث داخل الكتب في الإعدادات ← القراءة ← البحث داخل الكتب (أو PDF_SEARCH=off) الأمر كله، ويوقف تمريرة جارية.

EPUB

ملف .epub في الخزانة كتاب كما ملف .pdf: على الرف نفسه، ويُفتح بالنقرة نفسها، ويُحفظ مكانك فيه بالطريقة نفسها، وتُسجَّل جلستك فيه في المتتبِّع نفسه. والذي يختلف هو ما يكونه الكتاب في هذه الصيغة — وهذا الاختلاف هو سبب وجود هذه الميزة.

ملف PDF صورةٌ للحروف. قُطعت السطور فيه مرة واحدة، قطعها ما صنع الملف؛ وتجمّد العرض؛ وتجمّد معه تشكيل الحروف ووصلها. وهذه هي المشكلة كلها في العربية: ملف PDF لشعر عربي لا يكون أبدًا أحسن صفًّا من الأداة التي صنعته، والتكبير يعطيك صورة أكبر لا حرفًا أكبر. أما EPUB فهو ترميز، يصفّه متصفحك — بخط النسخ الذي يحمله هذا التطبيق أصلًا، وبالحجم الذي تطلبه، وبالعرض الذي تعطيه نافذتك. والمطبوعات العربية التي «تبدو خاطئة» في PDF تُقرأ هنا على وجهها غالبًا.

ولذلك ليس في قارئ EPUB صفحات، وهو لا يتظاهر بها:

  • المكان فصلٌ ومقدارُ ما نزلتَ فيه. يقول سطر الحالة الفصل ٧ من ٢٩٨، ويقول العنوان #ch=OEBPS/ch07.xhtml&at=0.42، وكلاهما يبقى وإن غيّرت حجم الخط أو أدرتَ الهاتف أو فتحت الكتاب على جهاز آخر. ورقم الصفحة لا يبقى.
  • حجم الخط لك. + و− (وCtrl/Cmd مع + و− و0، يأخذها القارئ من المتصفح)، أو الزران في شريط العنوان. والنسبة في سطر الحالة زرٌّ يعيدها إلى أصلها. ويبقى طول السطر محدودًا بعرض مريح مهما اتسعت النافذة.
  • محتويات الكتاب نفسه. يفتحها o من nav.xhtml أو toc.ncx في الكتاب؛ والمدخل الذي يشير إلى وسط فصل ينزل هناك. وفي كتاب يُقرأ من اليمين إلى اليسار ينعكس السطح كله، ولوح المحتويات معه.
  • / يبحث في الكتاب كله، على الخادم، عبر الطيّ العربي نفسه الذي في كل مكان — فتجد «المقدمة» صفحةً تطبع «الْمُقَدِّمَة». ويخطو n وN بين النتائج؛ وتُمرَّر النتيجة إلى الشاشة وتومض.
  • روابط الحواشي والإحالات تعمل داخل الكتاب. أما الرابط الذي يشير خارج الكتاب فيحتفظ بكلماته ويفقد رابطه: الكتاب ملف من الإنترنت، وليس له أن يطلب شيئًا من داخل خزانتك.
  • c ينسخ استشهادًا بما حدّدته — [[Adonis.epub#ch=OEBPS/ch07.xhtml&q=هذه محاولة أخرى]] — والنقر على ذلك الرابط بعد حين يفتح الكتاب ويجد الكلمات. ويحمل الاستشهاد الكلماتِ لا موضعًا رقميًّا، لأن النص المتدفق ليس فيه مواضع تبقى إذا أعاد الناشر إصدار الملف.

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

وتُطبَّق ورقة أنماط الكتاب نفسه محصورةً في القارئ — فتبقى مسافاته البادئة، وتنسيق أبياته، وحروفه الاستهلالية، وتُسقَط القواعد التي تصارع التطبيق (خطوطه، ولون حبره وورقه، وكل ما قد يطلي فوق الواجهة)، فيُقرأ الكتاب على وجهه في كل سمة.

وما ليس هنا بعد: التظليلات وملاحظات الهامش، إذ يربطها قارئ PDF بمستطيل على صفحة — وهذا ما لا وجود له في EPUB. فـc يعطيك استشهادًا بمقطع؛ أما تعليمه فجولة لاحقة.

سماع مقطع

حدّد نصًّا في طبقة النص في صفحة PDF أو في فصل EPUB فيظهر تحته زر اقرأ بصوت عالٍ (أو اضغط Ctrl/Cmd Shift .): يُقرأ المقطع جملةً جملة، بلغته، بأصوات على معالج جهازك نفسه، وتُضاء في الصفحة الجملة التي تُقرأ. ملف PDF الممسوح ضوئيًا بلا طبقة نص لا شيء فيه يُحدَّد، فلا شيء فيه يُقرأ. انظر القراءة بصوت عالٍ.

على الهاتف

على الهاتف (تخطيط الهاتف) المكتبة قائمة — كل كتاب بمؤلفه أو مجلده وكم قرأت منه، وما كنت تقرؤه أولًا — ويُفتح الكتاب على الشاشة كلها بشريط واحد خاص به: طريق الرجوع، والعنوان، ومنزلق يتنقّل في صفحات PDF أو فصول EPUB ويقفز حين تُفلته، و**⋯. وتحت ⋯ المحتويات (ورقةً: انقر فصلًا لتذهب إليه)، والبحث، والانتقال إلى صفحة، والوضع الليلي، واقتباس التحديد إلى ملاحظة، والمقاطع المعلَّمة، وملء العرض، وإنهاء جلسة القراءة. ويُفتح PDF بعرض الشاشة؛ قرّب بإصبعين، أو استعمل − و+** في الزاوية (وفي EPUB يغيّران حجم الخط). وإيماءة الرجوع تغلق سطر البحث أو المحتويات أو أي لوحة قبل أن تغلق الكتاب.

ما لا يفعله

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

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

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