التنقل: كيف تعمل الملفات المولَّدة
لكل لغة، تُولَّد أربعة عناصر تنقل من مواضيع تلك اللغة، لا تُكتب يدويًا (إضافة
إلى README.md الذي يُولَّد مرة واحدة للمحلية المرجعية en-gb-oxendict):
README.md(جدول المحتويات في الصفحة الرئيسية للمستودع؛ للمحلية المرجعية فقط)locales/<locale>/index.md(الصفحة الرئيسية للموقع المنشور)locales/<locale>/front-matter/table-of-contents.mdlocales/<locale>/topics/09-07-index.md(الفهرس الموضوعي، مع الروابط)
تنتجها tools/gen_nav.py.
لا تحرّرها يدويًا، لأن التوليد التالي سيستبدل تغييرك.
متى تعيد التوليد
شغّل just nav (أو python3 tools/gen_nav.py) كلما:
- أضفت موضوعًا أو أزلته أو أعدت تسميته أو ترقيمه، أو
- غيّرت عنوان موضوع
# N.M Title(يستخدمه جدول المحتويات).
شغّل python3 tools/localize.py أولًا إذا غيّرت أي شيء تحت locales/en-gb-oxendict/، حتى تكون مواضيع المحليات الثلاث الأخرى (وعناوينها
المولَّدة) محدّثة قبل أن يقرأها gen_nav.py؛ انظر spec/locales.md.
كيف يعمل
لكل محلية، يقرأ gen_nav.py كل ملف locales/<locale>/topics/*.md، ويرتّب
بحسب الرقم العشري، ويجمّع بحسب الجزء، ثم:
- يبني جدول المحتويات جزءًا بجزء من عنوان H1 لكل موضوع،
- يكتبه في
locales/<locale>/index.mdوlocales/<locale>/front-matter/table-of-contents.md(وفيREADME.mdللمحلية المرجعية فقط)، - يمسح المواضيع الجوهرية (الأجزاء من 1 إلى 8) بحثًا عن قائمة ثابتة من المصطلحات
الأساسية ويكتب الفهرس الموضوعي في
locales/<locale>/topics/09-07-index.md.
أما النص المشترك (الفقرة التمهيدية، و”كيف تقرأ هذا الكتاب”، و”موضوعات شاملة”،
وعناوين الأجزاء) فيُوطَّن بالطريقة نفسها التي يُوطَّن بها نثر المواضيع، عبر
دوال المحلية في tools/localize.py، فتُقرأ الصفحات المولَّدة طبيعيةً في كل محلية.
تقيم عناوين الأجزاء في القاموس PART_TITLES قرب أعلى السكربت. ويستخدم المولِّد
عناوين أجزاء بنمط النقطتين الرأسيتين (“Part 2: Delivery and Flow Metrics”)،
ولا يستخدم الشرطات الطويلة أبدًا.
أما اللغات المترجمة يدويًا، فصفحتها الرئيسية وصفحة جدول المحتويات تُكتبان
يدويًا (العناوين المترجمة وسطر المقدمة N.0 لكل جزء)، وتجدّد tools/gen_translated_nav.py قوائم المواضيع من عناوين H1 في مواضيع تلك اللغة.
ما لا يمسّه
المواصفات في جذر المستودع (spec/index.md وspec/structure.md وملحقاتها) هي
مصدر الحقيقة المكتوب يدويًا. لا يكتبها المولِّد، وليست جزءًا من الموقع المنشور.
إذا غيّرت البنية، فحدّث spec/structure.md بنفسك، ثم شغّل just nav للملفات
المشتقة وjust test للتأكد من اتساق كل شيء.