Подтвердить что ты не робот

Использование Live Reload с Jekyll

Я начинаю с статический генератор сайтов Jekyll, и я хотел бы использовать Live Reload. Я знаю, что у Jekyll есть команды генератора и сервера, а Live Reload может запускать различные компиляторы и настраиваемые команды. Как настроить их для совместной работы?

4b9b3361

Ответ 1

Самый простой подход, который я нашел, заключается в использовании двух окон терминала: один для jekyll serve --watch и один для guard.

Я попробовал подход guard-jekyll-plus, предложенный Nobu, но у меня было множество ошибок.

В качестве шумушин указал, Jekyll может обрабатывать процесс автоматической перестройки, вы просто запускаете его с помощью jekyll serve --watch

Теперь, чтобы запустить рабочий режим LiveReload с функцией guard-livereload во втором окне терминала. Это в основном то же самое, что ответ Jan Segre, но без guard-jekyll.

Мой Guardfile выглядит следующим образом:

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

И мой Gemfile:

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

Примечание. Вам по-прежнему нужно включить функцию загрузки script на странице index.html; это "клей", который связывает guard-livereload и браузер вместе.

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

Ответ 3

Здесь guard-livereload, который вы можете использовать с guard-jekyll и централизовать процесс просмотра guard, примером может быть (я его не тестировал):

  • Установите защитную оболочку, либо через драгоценный камень, либо с помощью связки
  • Установите защитную пелену, либо через жемчужину, либо в комплект поставки

Init guard-jekyll

guard init jekyll

Добавьте это в свой файл Guard:

guard 'livereload' do
  watch(%r{_site/.+})
end

Вы можете адаптировать вышеуказанное, чтобы лучше соответствовать вашему проекту, и вы, вероятно, уже знаете, что вам нужно включить script на вашей странице:

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

О, и начать весь смотрящий беспорядок:

guard

Ответ 4

UPDATE: это больше не работает с последней версией Jekyll

cd your/site/folder
jekyll --server --auto

Ответ 6

Я написал Jekyll-плагин под названием Hawkins, который включает LiveReload в процесс Jekyll watch. Он работает с Jekyll 3.1 и выше.

Просто добавьте

group :jekyll_plugins do
  gem 'hawkins'
end

в ваш Gemfile (а затем a bundle install). Оттуда вы можете запустить jekyll liveserve. Хокинс будет изменять разделы head ваших страниц, чтобы включить необходимые компоненты для LiveReload, а когда Jekyll обнаруживает изменение страницы, Hawkins будет выталкивать сообщение в ваш браузер через WebSockets. Обратите внимание, что вам понадобится браузер, который поддерживает WebSockets. Для очень быстрой перезагрузки вы можете использовать новую функцию --incremental Jekyll, которая будет восстанавливать только измененные страницы.

Ответ 7

Начните с запуска jekyll обычно в папке вашего сайта:

cd your/site/folder
jekyll

По умолчанию Jekyll создает внутри него папку с именем _site (your/site/folder/_site).

Скажите LiveReload, чтобы посмотреть, что папка _site.

Ответ 8

Я только начал использовать GitHub Pages сегодня и хотел иметь возможность использовать живую перезагрузку с Jekyll. Получил его работу и написал свой первый пост на Создание страниц GitHub с Jekyll и LiveReload.

Он использует Grunt с плагином grunt-contrib-watch вместо команды Jekyll serve - хорошо работает для меня. Надеюсь, это сработает и для вас.

Ответ 9

Вы можете использовать только jekyll serve -w, вариант, который я предпочитаю, поскольку я ленив.