Я начинаю с статический генератор сайтов Jekyll, и я хотел бы использовать Live Reload. Я знаю, что у Jekyll есть команды генератора и сервера, а Live Reload может запускать различные компиляторы и настраиваемые команды. Как настроить их для совместной работы?
Использование Live Reload с Jekyll
Ответ 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>
Ответ 2
Для jekyll 1.0+ используйте:
jekyll serve --watch
Подробнее см. Jekyll: Основное использование.
Ответ 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
Ответ 5
В этом сообщении объясняется более чистый способ - Настройка LiveReload с Jekyll
Gemfile:
gem 'jekyll'
gem 'guard'
gem 'guard-jekyll-plus'
gem 'guard-livereload'
Guardfile:
guard 'jekyll-plus', :serve => true do
watch /.*/
ignore /^_site/
end
guard 'livereload' do
watch /.*/
end
Установите любое расширение браузера LiveReload. Затем запустите guard
.
Ответ 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
, вариант, который я предпочитаю, поскольку я ленив.