استخدام التحديث المباشر مع Jekyll
سؤال
أنا أبدأ مع جيكل مولد موقع ثابت وأود أن استخدامها تحديث مباشر معها.أعلم أن 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.