هوغو تجربة موقع مولد ثابت

أشارك سنتين من الخبرة في استخدام مولد موقع ثابت Hugo . هذا المنشور مخصص للمبتدئين ، لكن هذا المنشور لن يقدم إرشادات حول كيفية تثبيت Hugo أو كيفية إنشاء أول منشور. سيكون هذا المنشور مفيدًا لمن يختارون ويقارن بدائل التدوين.


لماذا مولد موقع ثابت وهوغو


مولد الموقع الثابت هو برنامج يقوم بمعالجة الملفات المصدر المهيكلة (النصوص والصور والقوالب) ويقوم بإنشاء موقع HTML ثابت يمكن تحميله على الخادم.


مصادر الموقع هي مجموعة من المجلدات على الكمبيوتر:


هوغو المجلد الجذر


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


على الرغم من العداء الظاهر ، فإن هذا النهج ، على عكس CMS ، مناسب لأولئك الذين لديهم بعض المعرفة في HTML و CSS وتقنيات الويب الأخرى ، لكنهم يريدون أن تظل المدونة بدائية تقنيًا.


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


قيود المواقع الثابتة هي أنه لا توجد وسيلة لاستخدام الوظائف المرتبطة بالمستخدمين. كمثال ، يجب عليك استخدام نظام تعليق تابع لجهة خارجية. للمدونة ، هذه القيود ليست حرجة.


بالنسبة للمواقع الثابتة ، يسهل العثور على الاستضافة وتكوينها


في حين أن الاستضافة الثابتة ، على الرغم من أن الموقع لا يحتوي على عدد كبير من الزيارات ، مثل Google ، فقد تم تكوينه بطريقة أسهل من المواقع الديناميكية ، وفي كثير من الحالات يكون ذلك مجانًا.


أحتفظ بالشفرة المصدرية والمدونة نفسها على GitLab. إليك كيف تعمل:


  1. يحتوي مستودع بوابة GitLab الخاص على الكود المصدري للمدونة.
  2. عند تحديث المستودع ، يبدأ GitLab CI بشكل مستقل في إنشاء إصدار جديد من الموقع ووضعه على صفحات GitLab.

مخطط كيف يعمل:


مخطط


في نهاية الحزمة ، يتم استخدام Cloudflare لتنظيم شهادة SSL لإصدار https للمدونة.


يستغرق تحديث الموقع من إجراء تغييرات على مدى توفر الإصدار الجديد من المدونة عبر الإنترنت في تكوين Hugo-GitLab ما بين 0.5 و 1 دقيقة. في معظم الأوقات ، تنفق Gitlab CI الاستعداد لبناء الموقع. مباشرة إنشاء موقع يستغرق 1-2 ثواني. سيكون لمولدات المواقع الأخرى معدل تحديث مختلف. على سبيل المثال ، مع منشئ موقع Jekyll الشهير الآخر ، يمكن أن يكون إنشاء صفحات لإصدار جديد من الموقع أبطأ عدة مرات .


يمكن تقسيم المصادر والاستضافة - إنشاء صفحات الموقع على الكمبيوتر المحلي ، وتحميل ملفات HTML الناتجة فقط إلى الاستضافة. بالنسبة للإحصائيات ، هناك خدمات استضافة مريحة ، على سبيل المثال ، Netlify. عملت صفحات جيثب سابقا على هذا المبدأ. منذ بعض الوقت ، قدمت GitHub أدوات أتمتة CI ، مثل GitLab.


لا حاجة للتفكير في دعم الصحة بلوق


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


الحفاظ على السيطرة الكاملة على المصدر


كل منشور هو مجلد منفصل مع النص تخفيض السعر والكذب على الفور ملفات الصور.


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


هذا هو ما يبدو عليه مجلد البيانات لمدونة واحدة:


مجلد المشاركة


وهذا هو تحرير المنشور نفسه في نص سامية وصفحة الإخراج:


تحرير منشور في نص سامية


إذا قمت بإضافة التعليمات البرمجية المصدر إلى نظام التحكم في الإصدار ، يمكنك مشاهدة محفوظات التغييرات في المدونة. تعرض لقطة الشاشة أدناه مراجعة لسجل التغيير بدءًا من مايو 2018 في Sublime Merge:


سامية دمج التغييرات


تم اختيار Hugo بين مولدات مختلفة نظرًا لشعبيتها وسرعتها وسهولة التركيب


يعد Hugo من بين أفضل 3 منشئين للمواقع على الإنترنت من خلال عدد النجوم على GitHub.


البرنامج نفسه هو ملف exe 1. لا يتطلب بدء تشغيل المولد تثبيتًا ، ولكن للاتصال به باستخدام الأمر hugo ، تحتاج إلى تسجيل المسار إليه في متغير نظام PATH.


لقد كتبت بالفعل عن سرعة العمل أعلاه - Hugo أسرع بكثير من العديد من المولدات الأخرى ، والتي تصبح مهمة مع نمو حجم الموقع.


الصعوبات التي تواجهها


تحتاج على الأقل إلى فهم بسيط للبرمجة أو البرامج النصية


HUGO والمولدات الأخرى ليس لديها واجهة مستخدم مألوفة. يتم بدء تحديث الموقع من خلال مجموعة من الأوامر أو ملف مضرب واحد.


"واجهة":


لقطة شاشة للنشر المطلق


إذا قمت بتحميل موقع عبر GitLab CI ، فأنت بحاجة إلى أن تكون قادرًا على تحرير ملف تكوين CI قليلاً.


يقدم GitLab عددًا من الملفات الجاهزة للمولدات المختلفة ، والتي يمكن اعتبارها قاعدة:


قوالب Gitlab


ولكن لا يزال لديك لتغرق في التكوين لإصلاح شيء ما. على سبيل المثال ، في التكوين القياسي (في لقطة الشاشة أدناه) ، أوصي على الأقل بتغيير إصدار Hugo (سأقوم بتحليل الأسباب لاحقًا):


التكوين GitLab الصفحات القياسية لهوغو


يجب عليك تعديل السمة المحددة يدويًا بنفسك ، فأنت بحاجة إلى معرفة HTML


مجتمع Hugo الناطق باللغة الروسية ليس كبيرًا جدًا ، لذلك هناك عدد قليل جدًا من الحلول الجاهزة التي تأخذ بعين الاعتبار خصوصيات الجمهور الروسي. لا توجد سمات باللغة الروسية ، ويتم تكييف الأزرار الاجتماعية للشبكات الأجنبية ، وتركز السمات على استخدام تعليقات Disqus فقط ، وما إلى ذلك. اضطررت إلى إعادة كتابة نقوش النظام بشكل مستقل باللغة الروسية ووضع مجموعات من الأزرار الاجتماعية مع الشبكات التي تحظى بشعبية بين الجمهور الناطق باللغة الروسية.


حتى لو لم تكن مطورًا للواجهة الأمامية ، مرحبًا بك في عالم قوالب HTML مع إدراج على Go:


تحرير الموضوع


في Hugo ، حتى وقت قريب ، لم يكن هناك شيء اسمه الإضافات. يجب إجراء جميع التعديلات في الكود المصدري للموضوع. على سبيل المثال ، إذا كنت بحاجة إلى تصحيح النص في تذييل الصفحة ، فيجب عليك تحرير قالب سمة HTML.


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


في لقطة الشاشة أدناه ~ 1/3 من قائمة التغييرات:


تغيير القائمة


من الصعب معرفة كيفية عمل محرك المولد.


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


ليس من الممكن دائمًا إيجاد حل للمشكلة


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


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


خطر التحديثات وأسباب ارتكاب نسخة من هوغو


ليس هناك ما يضمن أن إعداداتك ومستنداتك والسمات النهائية ستعمل بشكل صحيح بدون تغييرات في الإصدار الجديد من Hugo.


على سبيل المثال ، في الإصدار Hugo 0.57.0 ، لم تعد الصفحة الرئيسية مضمّنة بشكل صحيح. لم أستطع أن أفهم ماهية المشكلة: في أخطاء الإصدار الجديد من المولد ، أو في موضوع غير مفتوح أو في هيكل المصدر الخاص بي. قررت البقاء على الإصدار 0.56. ثم اتضح أن المطورين قاموا بإجراء تغييرات غير مسبوقة على تهيئة خوارزمية إنشاء الصفحات.


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


أسئلة من منتدى هوغو الرسمي


على GitLab CI ، في إعدادات البرنامج النصي ، أوصي بأن تقوم بإصلاح إصدار Hugo الثابت.


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


التاريخ Feedly


لتلخيص


مولد للمواقع الثابتة - مناسب لأولئك الذين هم بالفعل ضليعين في الواجهة الأمامية ، ويريد مع غمر محدود في الجوانب التقنية للحصول على موقع / مدونة بسيطة من الناحية الفنية.


يعد Hugo اختيارًا جيدًا إذا كانت السرعة وسهولة التركيب أولوية.


لا يمكنك الاستغناء عن المعرفة التقنية. هنا وهناك يجب أن تغمر نفسك في HTML و CSS وغيرها من المشكلات الفنية. من ناحية أخرى ، بمجرد تكوين موقع يتطلب جهدا أقل بكثير للمحافظة عليه.

Source: https://habr.com/ru/post/ar473656/


All Articles