Как установить одну из тем Jekyll на Github Pages для предварительного просмотра?

Я пытаюсь установить Slate-тему Github Pages на мою CentOS 7 VM, чтобы я мог локально просмотреть мой новый сайт, используя bundle exec jekyll serve команда.

Я следовал инструкциям как можно лучше.

  • Я сменил тему minima в jekyll-theme-slate в моем _config.yml файл.
  • Потом я поменял gem "minima", "~> 2.0" в gem "github-pages", group: :jekyll_plugins в моем Gemfile файл.

После этого (так как это их единственные инструкции) я побежал bundle exec jekyll serve и он сказал мне, что у меня есть драгоценные камни, которые не были установлены (да), и предложил запустить bundle install,

  • Я побежал bundle install, который сказал мне, что был конфликт в типах версий зависимостей, и это предположило, что bundle update потенциально может решить эту проблему.
  • Нет проблем, я побежал bundle update, Несколько плагинов / функций на самом деле вернули сюда версии, но я установил тему Slate на мою машину, версия 0.0.4 для любой причины.

После этого я побежал bundle exec jekyll serve снова. Я получил эту ошибку:

Configuration file: /home/peri/my-site/_config.yml
Configuration file: /home/peri/my-site/_config.yml
jekyll 3.4.3 | Error:  Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.

В некотором смысле, эта ошибка имеет смысл. Чтобы пользовательская тема работала, мне, вероятно, нужен инструмент для запуска их пользовательских сценариев. Но сначала я заметил этот дополнительный раздел в инструкциях по установке темы, в котором прямо упоминается возможность локального предварительного просмотра сайта с этой темой.

  • Я скачал источник, вместо того, чтобы его клонировать... .git вещи я?
  • Я редактировал script/bootstrap файл, потому что /usr/local требует рута и использования sudo не знает ни о каком двоичном файле gem или же bundle, Я изменился gem а также bundle на их соответствующие абсолютные пути и побежал sudo ./script/bootstrap Внутри slate-master,

Дело в том, что это не сработало для моего home/peri/my-site каталог, когда я побежал bundle exec jekyll serve, Предположительно, это потому, что они предназначены для интеграции сайта пользователя в исходный код их темы? Это не кажется интуитивным или правильным. Итак, я исследовал ExecJS.

  • Я установил это. gem install execjs
  • я добавил gem "execjs", "2.7.0" к моему Gemfile файл.

Получил ту же ошибку, что и раньше.

Как я должен установить эту тему Jekyll?

1 ответ

Решение

Выполните следующие действия после изменения темы в _config.yml:

  1. Gemfile должен иметь только этот контент:

    source "https://rubygems.org"
    gem "github-pages"
    
  2. удалить текущий конфиг rm -r .bundle/

  3. удалить Gemfile.lock: rm Gemfile.lock

  4. Установите локальные зависимости в изолированной папке только для этого сайта: bundle install --path=vendor/bundle

  5. У тебя не будет post а также page а также home темы, вам нужно будет просто использовать default во всех ваших постах.

  6. Создайте и запустите сервер: bundle exec jekyll s

Другие вопросы по тегам