سؤال

أنا أبدأ مع جيكل مولد موقع ثابت وأود أن استخدامها تحديث مباشر معها.أعلم أن Jekyll لديه أوامر منشئ وخادم، ويمكن لـ Live Reload تشغيل العديد من المترجمين والأوامر المخصصة.كيف يمكنني تكوين هذه للعمل معًا؟

هل كانت مفيدة؟

المحلول

إن أبسط طريقة وجدتها ناجحة هي استخدام نافذتين طرفيتين:واحدة لأجل jekyll serve --watch وواحد ل guard.

حاولت نهج Guard-jekyll-plus الذي اقترحه نوبو ولكن كان لدي مجموعة من الأخطاء.

مثل وأشار شوموشين, ، يمكن لـ Jekyll التعامل مع عملية إعادة البناء التلقائية، ما عليك سوى تشغيلها باستخدام jekyll serve --watch

الآن للحصول على LiveReload يعمل حارس التشغيل مع Guard-livreload في نافذة طرفية ثانية.هذا هو في الأساس نفس إجابة جان سيجري, ، لكن بدون guard-jekyll.

لي Guardfile يشبه هذا:

guard 'livereload' do
  watch(/^_site/)
end

و الخاص بي Gemfile:

gem 'jekyll'
gem 'guard'
gem 'guard-livereload'

ملحوظة:لا تزال بحاجة إلى تضمين البرنامج النصي للتحميل المباشر في ملف index.html صفحة؛إنه "الغراء" الذي يربط guard-livereload والمتصفح معا.

<script src="http://localhost:35729/livereload.js"></script>

نصائح أخرى

لاستخدام jekyll 1.0+:

Genacodicetagpre

راجع Jekyll: الاستخدام الأساسي لمزيد من التفاصيل والخيارات.

هناك guard-Livereload يمكنك استخدامه مع guard-jekyll ومركزة عملية المشاهدة باستخدام guard ، على سبيل المثال (لم أختبره):

  • تثبيت guard-jekyll ، إما من خلال الأحجار الكريمة أو المجمِّع
  • تثبيت guard-Livereload ، إما من خلال الأحجار الكريمة أو المجمع

Init guard-jekyll

Genacodicetagpre

أضف هذا إلى ملف الحراسة الخاص بك: Genacodicetagpre

يمكنك تكييف ما سبق ليناسب مشروعك بشكل أفضل ، و ربما تعلم بالفعل أنه يجب عليك تضمين الكبد البرنامج النصي على صفحتك: Genacodicetagpre

أوه ، لبدء فوضى المشاهدة بأكملها: Genacodicetagpre

LiveReload مدمج في Jekyll 3.7+.

jekyll serve --livereload

يمكنك أيضًا تعيين منفذ LiveReload والتأخير والملفات المتجاهلة.يرى jekyll help serve.

تحديث: لم يعد هذا يعمل مع أحدث إصدار من Jekyll

Genacodicetagpre

يشرح هذا المنشور طريقة أنظف - إعداد LiveReload مع Jekyll

ملف جيمفيل:

gem 'jekyll'
gem 'guard'
gem 'guard-jekyll-plus'
gem 'guard-livereload'

ملف الحماية:

guard 'jekyll-plus', :serve => true do
  watch /.*/
  ignore /^_site/
end

guard 'livereload' do
  watch /.*/
end

ثَبَّتَ أي ملحق متصفح LiveReload.ثم اركض guard.

لقد كتبت البرنامج المساعد Jekyll يسمى هوكينز الذي يدمج LiveReload في Jekyll watch عملية.يعمل مع جيكل 3.1 وما فوق.

أضف ببساطة

group :jekyll_plugins do
  gem 'hawkins'
end

إلى Gemfile الخاص بك (ثم ملف bundle install).من هناك يمكنك الركض jekyll liveserve.سيقوم هوكينز بتعديل head أقسام صفحاتك لتشمل المكونات الضرورية لـ LiveReload، وعندما يكتشف Jekyll تغييرًا في الصفحة، سيرسل Hawkins رسالة إلى متصفحك عبر WebSockets.يرجى ملاحظة أنك سوف تحتاج إلى متصفح يدعم WebSockets.ولعمليات إعادة تحميل سريعة جدًا، يمكنك استخدام الإصدار الجديد من Jekyll --incremental الخيار الذي سيؤدي فقط إلى إعادة إنشاء الصفحات التي تم تغييرها.

ابدأ بتشغيل jekyll بشكل طبيعي في مجلد موقعك:

cd your/site/folder
jekyll

بشكل افتراضي، يقوم Jekyll بإنشاء مجلد يسمى _site داخله (your/site/folder/_site).

أخبر LiveReload بمشاهدة ذلك _site مجلد.

I just started using GitHub Pages today, and wanted to be able to use live reload with Jekyll. Got it working & written my first post on Creating GitHub Pages with Jekyll & LiveReload.

It uses Grunt with the grunt-contrib-watch plugin instead of Jekyll's serve command - works well for me. Hope it works for you as well.

You can use just jekyll serve -w, an option I prefer as I am lazy.

For Live Reload, Remove Jekyll Admin from Gemfile in the root directory of your project and it works like charm.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top