Есть много тем для Jekyll, например. https://github.com/jekyll/jekyll/wiki/Themes.
Каков самый простой способ перехода на новую тему в СУЩЕСТВУЮЩЕЙ установке Jekyll?
Есть много тем для Jekyll, например. https://github.com/jekyll/jekyll/wiki/Themes.
Каков самый простой способ перехода на новую тему в СУЩЕСТВУЮЩЕЙ установке Jekyll?
Пока вы могли переноситься на существующую установку, открывая новую тему, а затем вручную копируете и вставляете ресурсы, такие как CSS, JS, HTML, в _includes
, _layouts
и другие файлы, которые вы может потребоваться, это, вероятно, не является отличной идеей, так как вы в конечном итоге имеете размытие старых и новых ресурсов, которые могут быть не одного и того же имени, но в том сценарии, которым они являются (например, вы не перезаписывали старая таблица стилей, которая ссылается на ваши сообщения), это вызовет смешанные стили CSS, которые вам придется отлаживать и медленно исправлять.
Поскольку я предполагаю, что у вас есть установка Jekyll с Git (если вам это действительно не нужно), вы можете создать ветвь с именем new-theme
и переключиться на эту ветку с master
в качестве рабочей ветки. (Простой способ иметь что-то вроде этого - просто скопировать всю установку Jekyll и вставить ее в другое место как old-Jekyll-install
, если вы не хотите иметь дело с ветвями Git (но на самом деле вам нужно. Вот учебник, который помог мне учиться)
_posts
и ваши индивидуальные изменения._config.yml
, вручную сравнивая их и перемещая то, что необходимо.<br \>
для интервала, и вы не хотите этого в новой теме).master
(или нажать его для производства)Сказано, что все это довольно ручно и больно, но по крайней мере вам не придется иметь дело с конфликтами в ресурсах. Недостаток заключается в том, что ваш репозиторий не будет синхронизироваться с темой темы репо. Таким образом, вы не сможете получать обновления. Я бы по-прежнему предлагал вам fork тему репо, порт по вашим личным настройкам для вашего сайта Jekyll, а затем переименовать это репо для производства. (это, конечно, уже не будет использовать "существующую" установку Jekyll)
Это то, что я сделал, чтобы изменить тему существующей установки Jekyll. Отрегулируйте эти инструкции в соответствии с вашими потребностями.
Мы создаем новую сиротскую ветвь newtheme
и не будем пустым.
git checkout --orphan newtheme
git rm -rf .
git clean -dfx
Затем мы вставляем в него файлы тем, добавляя тему в качестве восходящего пульта. В этом примере я вытягиваю ветку темы master
John Otander Pixyll.
git remote add upstream https://github.com/johnotander/pixyll.git
git fetch upstream
git pull upstream master
Создайте тему и протестируйте ее.
bundler install
jekyll serve
Теперь мы объединяем наши сообщения, настройки и т.д. Вы можете использовать Git checkout
для копирования файла или папки со своего старого сайта Jekyll. Обратите внимание, что это будет перезаписывать файл темы, если он существует.
git checkout master -- _posts
В качестве альтернативы вы можете скопировать файл под новым именем, например, чтобы объединить его вручную.
git show master:_config.yml > _config.yml.old
Если вы случайно перезаписали файл темы, вы можете восстановить его.
git checkout upstream/master -- about.md
Это файлы, которые мне пришлось копировать, объединять, настраивать или удалять:
_posts
._drafts
._config.yml
.Gemfile
gem.CNAME
(для страниц GitHub).Rakefile
(если есть).Зафиксируйте свои изменения и не забудьте снова протестировать тему.
Наконец, мы заменим существующую ветвь master
новой ветвью newtheme
. Предполагая, что мы находимся на ветке newtheme
:
git checkout newtheme
git merge -s ours master
git checkout master
git merge newtheme
Нажмите изменения.
git push
И очистите локальную ветвь newtheme
.
git branch -d newtheme
Что это! Вы успешно заменили свою тему. Если есть что-то, что я пропустил, или у вас есть что добавить, пожалуйста, оставьте комментарий.
Если в любой момент вы хотите обновить тему, чтобы включить последние изменения в восходящем направлении, просто:
git pull upstream master
И исправить любые конфликты слияния. Здесь я предполагаю, что пульт upstream
по-прежнему установлен в репозиторий тем (вы можете проверить это с помощью git remote -v
).
Jekyll v3.2 представил темы на основе gem (для будущих планов см. здесь):
Темы, основанные на Gem, облегчают тем, чтобы разработчики темы делали обновления доступный всем, у кого есть тематический камень. Когда обновляется, разработчики темы нажимают обновление на RubyGems
Цель темы, основанной на драгоценных камнях, - дать вам возможность получить все преимущества надежной, постоянно обновляемой темы без наличия всех тем файлы на вашем пути и чрезмерное усложнение того, что может быть вашим основное внимание: создание контента.
Установка темы на основе gem проста:
gem "jekyll-theme-awesome"
bundle install
._config.yml
следующие темы: theme: jekyll-theme-awesome
bundle exec jekyll serve
Чтобы переключать темы, я считаю, что что-то вроде этого должно работать:
gem "jekyll-theme-new"
bundle install
_config.yml
для ссылки на новую тему: theme: jekyll-theme-new
bundle exec jekyll serve
bundle show jekyll-theme-awesome
) и удалите ее с помощью gem uninstall jekyll-theme-awesome
. Чтобы быть в безопасности, убедитесь, что его папка действительно удалена.Обновление тем, основанных на драгоценных камнях, легко:
Если у вас есть драгоценный камень темы, вы можете (если хотите) запустить
bundle update
для обновления всех драгоценных камней в вашем проекте. Или вы можете запуститьbundle update <THEME>
, заменив имя темы, напримерminima
, на просто обновите тему gem. Любые новые файлы или обновления темы разработчик сделал (например, таблицы стилей или включает) будет вытащен в ваш проект автоматически.
Важное примечание: во время записи страницы GitHub поддерживают определенный набор тематических тем: Архитектор, Кайман, Динки, Хакер, Височный день, Мерло, Полночь, Минимум, Минимальный, Модернистский, Шиферный, Тактильный и Время машины. Из них кажется, что только Minima ориентирована на блоги (например, она единственная со встроенной поддержкой Disqus). Тем не менее, вы должны иметь возможность использовать любую тему, если вы хотите запустить процесс сборки Jekyll.
Другой альтернативой является страницы GitLab (учебник, образец сайта).
I проверил это, но я сделал это с проектом, где у меня не было ничего, что я хотел бы сохранить, и с довольно простыми темами, поэтому это может не сработать с повышенной сложностью.
Для обеспечения безопасности создайте новую ветку
git checkout -b newtheme
Затем добавьте новую тему в качестве удаленного
git remote add new-theme-upstream https://github.com:drjekyllthemes/jekyll-minimal-theme.git
git pull new-theme-upstream HEAD
git status
, надеюсь, что эти конфликты должны быть только в файлах стиля, которые вы хотите перезаписать. Если есть файлы, которые вы хотите сохранить, вы можете отредактировать их с помощью текстового редактора: git будет отмечать изменения в файлеНажмите на начало координат
git push origin newtheme
git pull new-theme-upstream
Вы могли бы сохранить свои темы в подмодулях git, как отдельные папки, а затем символизировать ключевые элементы для jekyll. Этот не будет работать в gh-pages грубый пример
blog
|
+-- theme_1/
|
+-- theme_2/
| |
| +-- _layouts/
|
+-- _layouts ln - theme_2/_layouts
Таким образом, при смене тем темы не сталкиваются.
Самый простой способ переключить тему в существующую или новую установку jekyll - использовать следующий плагин: jekyll-remote-theme, который доступен с ноября 2017 года.
Хотя он в настоящее время находится в стадии бета-тестирования, он отлично работает и, самое главное, он уже включен в список на страницах Github, поэтому нет необходимости создавать локально, если только запрошенная тема не содержит неподдерживаемые драгоценные камни.
Поэтому, в случае простого веб-сайта со страницами и блогами, вы можете размещать и редактировать свой контент непосредственно в инфраструктуре Github и переключать тему своего сайта, введя адрес новой удаленной темы. Дополнительным преимуществом является то, что вы можете протестировать свой контент с несколькими существующими темами, прежде чем переходить к одному из них.
В дополнение к более простому переключению, метод jekyll-remote-theme должен автоматически вводить новую версию удаленной темы, как только вы вносите изменения, и есть новая версия сопровождающего темы. Если сопровождающий темы внесет коренные изменения, которые вам не нравятся, вы всегда будете в нескольких нажатиях от новой темы.
У меня есть несколько jekyll установок, и я уже использую его, не намереваясь переключаться в краткосрочной перспективе, поскольку это самое элегантное и будущее решение для решения.
Если ваша существующая установка jekyll чиста (т.е. Вы редактировали только страницы, сообщения, конфигурацию), то коммутатор является бесшовным. Если у вашей существующей темы есть специальные макеты (например, splash.html и у нее ее нет), ваши страницы, на которых используется соответствующий макет, становятся сиротами (т.е. Базовым html без специального форматирования). Я переключил существующую установку, которая была широко отредактирована, поэтому я получил несколько сиротских страниц, но у меня не было никаких конфликтов с объединением git, которые возможны с другими описанными здесь методами.