هناك ثلاثة مكونات رئيسية للدليل. سأشير إليهم بواسطة عناوين URL المحلية على www.midwinter.com.
القسم الأول ، وهو الجزء الأكبر من الموقع ، عبارة عن شجرة دليل من ملفات HTML الثابتة مع بعض ملفات HTML التي تُعرف عن الخادم (لتشمل جانب الخادم) ، بالإضافة إلى برنامج PHP قصير واحد.
داخل هذا الدليل توجد مجموعة من الدلائل الفرعية ، معظمها تقابل الأقسام الرئيسية في الموقع. سأصل إليهم بشكل فردي في لحظة ، لكن أولاً كلمة حول كيفية إنشاء بعض الملفات.
أكبر شيء يجب معرفته هو نص Python يسمى "Gen.py" ، وهو إصدار يعيش في كل من الدلائل التي تحتوي على ملفات HTML لكل حلقة. البرنامج النصي مسؤول عن تجميع ملف HTML ثابت من قسم الرأس (تم إنشاؤه لكل حلقة ؛ ويتضمن عنوان الحلقة من بين أشياء أخرى) ، وملف جسم ، وقسم تذييل.
تحتوي ملفات الجسم على لحم الصفحات. لديهم نفس أسماء الملفات مثل ملفات HTML ، ناقص امتداد .html. في معظم الحالات ، هذا هو مجرد رقم الحلقة المكون من 3 أرقام ، على سبيل المثال/lurk/guide/056.html يحتوي على ملف الجسم "056" من الدليل الفرعي. عندما أرغب في إضافة تعليق جديد إلى الصفحة للحلقة 33 ، على سبيل المثال ، أقوم بالقرص المضغوط في دليل الدليل ، وقم بتحرير الملف "033" ، ثم قم بتشغيل "gen.py 033". والنتيجة هي إصدار جديد من 033.html ، مع نقل الإصدار القديم جانبا إلى #033.html كإجراء وقائي.
شيء واحد آخر يفعل بعض إصدارات Gen.py هو إضافة الطابع الزمني إلى العناصر. الفكرة هي أنه عندما أقوم بتعديل صفحة ، أريد تسليط الضوء على التغيير حتى يتمكن الأشخاص الذين قرأوا بالفعل الإصدار السابق بسرعة إلى الأشياء الجديدة. تحقيقًا لهذه الغاية ، يبحث Gen.py عن رمز خاص "@@" (والذي يجب أن يليه المساحة البيضاء أو نهاية الخط) في ملف الجسم. عندما يجد الرمز المميز ، فإنه يحل محله بـ "@nnn" حيث يكون NNN هو الطابع الزمني الحالي بتنسيق unix time_t. تم إجراء هذا التغيير إلى ملف الجسم نفسه. ثم ، عندما يقوم Gen.py بإنشاء ملف HTML من ملف الجسم ، فإنه يدرج التاريخ بالخط العريض أينما ترى طابعًا زمنيًا حديثًا. مرة واحدة في اليوم ، يقوم البرنامج النصي بتجديد جميع ملفات HTML بحيث تختفي علامات التاريخ بعد فترة من الوقت (مما يجعلها في الصفحات تبدو قبيحة ويجعل من الصعب تحديد موقع العناصر الجديدة بسرعة).
عندما ترى ملف "Skel" ، فهو ملف جسم النموذج الأولي. أقوم بنسخ ذلك إلى اسم الملف المناسب عندما تكون حلقة/رواية/إلخ جديدة. يخرج.
في العديد من الدلائل الفرعية ، سترى نصًا "genall.csh". هذا مجرد اختصار يدير "gen.py" لكل حلقة. أنا فقط أستخدم هذا عندما أقوم بإجراء تغيير على بنية رؤوس/تذييلات الصفحة وأريد تطبيقه في كل مكان.
أيضًا ، في الدليل الأعلى ، يوجد نص "Gen". هذا يدير gen.py في كل من الدلائل الفرعية. أستخدم ذلك عندما ، على سبيل المثال ، أضيف صورة لحلقة وأريد عرضها على جميع الصفحات لتلك الحلقة.
"القصة حتى الآن" لكل حلقة من الفصول 1-4. الموسم 5 لا يزال يحتاج إلى كتابة. الملفات التي يمكن الوصول إليها من قبل المستخدم هنا هي جميع ملفات .shtml. ستلاحظ أنه لا يوجد أي ملفات جسم هنا. بدلاً من ذلك ، يستخدم الخلفية/gen.py بعض ملفات المصدر الأخرى. هناك العديد من الملخصات التمهيدية المختلفة ، والتي هي في ملفات SUM-*. على سبيل المثال ، يلخص SUM-66 القصة حتى الحلقة 66 وتشملها ، ويتم تضمينها كجزء أول من خلفيات الحلقات 67 وما بعدها. بعد تضمين ملف SUM-* المناسب ، يبدو Gen.py في Story.html. يحتوي هذا الملف على فقرات لكل حلقة يتم تضمينها في قسم "مؤخرًا ..." من صفحات الخلفية ، تحت مقدمات. يتم تضمين الفقرات فقط للحلقات بين الملخص والحلقة الحالية ، على سبيل المثال للحلقة 75 و Gen.Py يتضمن SUM-66 والفقرات للحلقات 67-74.
BIOS لبعض الشخصيات. ترتبط هذه من قسم "الكون". ملفات HTML مسطحة بسيطة.
توجيه الصفحات للسلسلة الهزلية. ملفات الجسم و gen.py.
ملف HTML الوحيد الموجود مباشرةً تحت هنا هو index.html ، وهي قائمة بجميع البلدان التي لدي معلومات جدولة لها. كل بلد لديه دليل فرعي تحت هنا (اسم الدليل هو عمومًا رمز البلد الذي يحمل أحرفًا في البلاد). إحدى الدول الزائفة من الملاحظة هي "Master" ، والتي تحتوي على قائمة الحلقة الرئيسية مع الحلقات بالترتيب الصحيح (كان ترتيب البث الأصلي الأمريكي خاطئًا قليلاً).
داخل دليل كل بلد ، يوجد ملف ePlist.html مع الجدول الزمني لهذا البلد ، بالإضافة إلى روابط رمزية لمختلف الدهون الفرعية للمديرة. باستخدام مسارات نسبية في عناوين URL الخاصة بي ، سمحت للمتصفح يتذكر الجدول الزمني للبلد الذي كان المستخدم ينظر إليه دون اللجوء إلى ملفات تعريف الارتباط (التي لم تكن موجودة بعد كمفهوم عندما يبدأ هذا الموقع لأول مرة!) على سبيل المثال ،/Lurk/Counly يحتوي SE/ePlist.html على رابط لـ "دليل/056.html" ، وهو حقًا نفس الملف مثل /lurk/guide/056.html منذ/lurk/country/se/guide هو synink to/lurk/dide. ولكن نظرًا لأن المتصفح لا يعرف ذلك ، فإن رابط 056.html مرة أخرى إلى صفحة الحلقة هو "../eplist.html" الذي يعود إلى الجدول السويدي.
index.html هو رابط لـ ePlist.html في الدلائل الريفية. يوجد نص "mkcontry.sh" لإعداد دليل ريفي جديد. هناك أيضًا قوائم حلقات هيكل عظمي لجميع المواسم الخمسة (Skel ، Skel2 ، Skel3 ، إلخ)
عندما أقوم بتحرير الجدول الزمني لبلد ، أستخدم البرنامج النصي "print-weks.py" ، الموصوف لاحقًا ، لذلك لا يتعين عليّ تواريخ من النوع اليدوي.
ائتمانات الحلقة.
البرنامج النصي القصير PHP يقوم بإجراء بحث بسيط عن اسم مجال المستخدم لمعرفة قائمة حلقة البلد التي سيتم عرضها. ربما أقل أهمية الآن بعد أن أصبح العرض بعيدًا عن الهواء ، ولكن عندما كانت المواسم المختلفة تظهر في بلدان مختلفة في وقت واحد ، كان هذا مفيدًا للمستخدمين.
Symlink إلى قائمة الحلقة الأمريكية ، بحيث ستذهب أي روابط إلى "../eplist.html" في الدلائل غير المستندة إلى البلاد إلى مكان مفيد. (انظر مناقشة دليل "البلدان" أعلاه.)
تذييل الصفحة القياسية المستخدمة في جميع أنحاء الموقع. لا تستخدم برمجيًا ، لكنني أقوم بتحميل هذا في محرر النصوص عندما أقوم بإنشاء صفحة جديدة.
البرنامج النصي الذي يدير Gen.py لحلقة في كل من الدلالات الفرعية المتعلقة بالحلقة.
جميلة الاستفسار. جميع الصور غير المتعلقة بالنادي تعيش هنا. (بعضها jpegs على الرغم من اسم الدليل.)
صفحات دليل الحلقة.
الأسئلة الشائعة حول الموقع. يشار إليه باسم "المساعدة" بدلاً من ذلك لتجنب الالتباس مع الأسئلة الشائعة بين Usenet B5.
symlink إلى lurker.html.
ملفات البيانات المستخدمة من قبل gen.py و cgis:
قائمة دليل الحلقة وصفحات الخلاصة ، التي طلبها وقت التعديل. تم إنشاؤها بواسطة الأداة المساعدة "lastupdate.py".
الصفحة الرئيسية بدون خلفية سوداء ، لأن بعض الناس يجدون خلفيات مخصصة مزعجة. يتم إنشاء هذا تلقائيًا من lurker.html عبر وظيفة cron التي تدير "جعل" في الدليل على المستوى الأعلى.
الصفحة الرئيسية.
مرة واحدة بعد ساعة يتم استخدام هذا makefile لإعادة بناء lurker-nobg.html ، ومرة واحدة في اليوم يتم استخدامها للتأكد من أنني لم تنس تشغيل gen.py على شيء ما. كما أنه يقوم بتحديث ملف B5TVList.txt في أرشيف FTP.
قسم "صنع B5" من الموقع. ملفات HTML المسطحة.
صور ل Navbar.
المستندات المتنوعة التي لا تتناسب في مكان آخر ، على سبيل المثال ، لسبب غادر كلوديا كريستيان العرض.
الصور الملاحية. تتمثل الوظيفة الثانوية في أن index.html هي صفحة "التحميل المسبق لذاكرة التخزين المؤقت للصور الخاصة بك هنا" ، والتي تسرع الموقع للأشخاص من خلال السماح لهم بالمعاناة من ألم تنزيل صورة NAV في طلقة واحدة.
صفحات دليل الرواية. هذا القسم غير مكتمل - لا توجد صفحات حتى الآن لأحدث جولة من الروايات.
نتائج استطلاع الرأي 5 المشاهدين لكل حلقة.
زر و NAV صور في نماذجها الأصلية غير المضغوطة.
قسم "المرجع" من الموقع. في الغالب ، تتضمن ملفات HTML مسطحة ، ولكن تحتوي بعض الصفحات على جانب الخادم التي تجلب ملفات نصية من منطقة FTP.
لم يعد يشير إلى المزيد ، ولكن ربما من التسلية التاريخية.
قسم "الموارد الأخرى" من الموقع. ملفات HTML المسطحة.
يحتوي على بعض رمز الدعم العشوائي. المزيد عن هذا لاحقًا.
ملخصات الحلقة.
خريطة الموقع.
قسم "الكون والأحرف" في الموقع. ملفات HTML المسطحة. الموسم 5 لا يزال بحاجة إلى كتابة.
تمرين في السذاجة ؛ انتهى بي الأمر كل هذا بنفسي!
رسالة JMS حول B5 التي يتم تصنيفها رقم 1 من قبل المشاهدين للتلفزيون عالي الجودة.
مقدمة إلى الموقع بعد التبديل إلى المظهر الحالي والشعور.
ما هي الصفحة الجديدة. عندما يصبح هذا كبيرًا ، أضع جميع العناصر القديمة في الأرشيف ما هو جديد وربطها في أسفل هذه الصفحة.
يستخدم Midwinter.com لاستضافة أرشيف FTP مع الملفات النصية والصور ؛ يمكن الوصول إليها الآن كلها من خلال دليل Lurker ويتم تخزينها في دليل "FTP".
راجع ملف فهرس FTP (متوفر في كل من النص و HTML) للحصول على أوصاف الملفات المختلفة في أرشيف FTP. يشير دليل Lurker إلى الملفات المختلفة هنا-بما في ذلك بعض المراجع من جانب الخادم.
هناك بعض الأدوات المساعدة التي ستجدها مصدرها في /lurk /src ما لم يذكر خلاف ذلك. تمت مناقشة بعضها أعلاه ، ولكن هنا قائمة:
يتم تشغيل هذا مرة واحدة في اليوم من وظيفة كرون. يجدد جميع صفحات التوجيه. إذا لم تختلف صفحة تم تجديدها عن الإصدار القديم ، فسيتم نقل الإصدار القديم إلى مكانه للحفاظ على تاريخ التعديل. والغرض من هنا هو انتهاء مدة الطوابع الزمنية على عناصر جديدة في صفحات التوجيه (انظر مناقشة البرنامج النصي Gen.Py أعلاه).
الركض مرة واحدة من كرون. هذا التحديثات /lurk/lastmod.html وهي محسوسة للغاية.