Почему переменные сайта в файле `_config` Jekyll remote_theme недоступны? - PullRequest
0 голосов
/ 13 января 2020

Согласно этому , «Jekyll будет считывать _config.yml в root из темы-драгоценного камня и объединять его данные с существующими данными конфигурации сайта». Но я создал тему с конфигурацией, которая выглядит следующим образом: image

И я ссылаюсь на переменные, подобные этой, в css моей темы: (Обратите внимание на пустой frontmatter и жидкостный тег в последней строке .) image

И результат получается на визуализированном сайте следующим образом: (Обратите внимание на пустую строку, где раньше был мой жидкий тег.) image

Если я поместил переменные в _config моего сайта, а не в теме, все работает как положено. Но я хочу, чтобы эти переменные были привязаны к теме.

Чтобы сделать вещи более загадочными, я могу найти примеры в общей minimal-mistakes theme , где переменные сайта определяются в теме и затем используются Так же, как я использовал их, в файлах темы без проблем. (Обратите внимание на site.yadda.yadda, которые определены в каталоге root config.yml.)

Я не создаю полный гем; Я использую функцию github-pages 'remote_theme. Я подозреваю, что это было причиной, за исключением того, что такие темы, как minimal-mistakes, отлично работают этим методом.

Что происходит?

1 Ответ

0 голосов
/ 13 января 2020

Я также задал этот вопрос над на GitHub Jekyll и смог получить некоторые ответы:

Эта функция не работает на страницах GitHub, поскольку она использует Jekyll 3.8.6 развернуть, а не 4.0.0, и эта возможность использовать переменные из _config.yml темы является новой функцией в новой версии.

Минимальные ошибки и другие темы определяют переменные в своих файлах конфигурации только в качестве примеров что вы, пользователь, можете делать в конфигурационном файле вашего сайта, и поэтому index.html и другие демонстрации, определенные в самом каталоге темы, могут ссылаться на них, когда они jekyll serve d. В некоторых случаях вам действительно нужно указать эти значения, иначе темы не будут выглядеть так, как задумано. В других случаях тема _includes имеет условные теги Liquid, поэтому целые части страницы просто не отображаются, если на дочернем сайте отсутствуют переменные.

Решения?

  1. Подождите, пока GitHub будет использовать 4.0.0, который выглядит так, как будто люди спрашивают о нем и ждут почти год.
  2. Определите все переменные в дочернем сайте. Невозможно выполнить, если вам действительно нужно, чтобы тема включала эту информацию, чтобы ее можно было повторно использовать на нескольких сайтах, например, этот вариант использования .
  3. Вместо использования переменных и жидкого кода, значения жесткого кода везде появляется переменная.
  4. Локальная сборка с Jekyll 4.0.0 и pu sh артефактов _site до ветки gh-pages вручную или с непрерывной интеграцией. (Трудоемкий в настройке, не очень работоспособный для сайта пользовательских страниц, потому что он обрабатывает от master, и в настоящее время невозможен с remote_theme s, потому что он сломан для 4.0.0 )
  5. Используйте для развертывания другой сервис, который поддерживает Jekyll 4.0.0, например Netlify. Но такой вид поражает цель сделать это бесшовным с моими репозиториями GitHub для отображения моей работы .

Поскольку у меня не так много переменных, я иду с трудом -кодирование на данный момент и просто ожидание Jekyll 3.8.6 / 4.0.0.

...