Я первый раз jekyll
и ruby
пользователь - 0 опыта в любом из них. Я занимаюсь ими, потому что, честно говоря, я просто хочу.
Я отправляю свой фактический вопрос вверху, так как это много для чтения. Все подробности приведены ниже;
АКТУАЛЬНЫЙ ВОПРОС
- Что здесь происходит?
- Как я могу воспроизвести это для моей темы Lanyon, чтобы мне не требовалось полное имя?
- Как я могу объединить
BASE_PATH
иASSET_PATH
в моей теме Lanyon?
ДЕТАЛИ
Я выполнил все инструкции здесь; краткое руководство пользователя jekyll
и по большей части я не такой потерянный, как я думал. Но на этом все заканчивается. У меня очень большое несоответствие между несколькими вещами, не в последнюю очередь из-за того, как работают эти global variables
. Я имею в виду BASE_PATH
и ASSET_PATH
.
Если вы посмотрите в файл _config.yml
из jekyll-bootstrap
, общая структура будет выглядеть так, с удаленными комментариями;
JB: version: 0.3.0 BASE_PATH: false ASSET_PATH: false
Итак, они говорят заменить эти значения информацией, относящейся к вашему сайту. Вот тут я сбиваюсь с толку.
Если я загружаю другую тему jekyll, она выглядит немного иначе. Я цитирую другой пост, который я сделал на stackoverflow относительно Lanyon, в котором нет ни пути к базе, ни пути к активу. Тем не менее, я проверил другие темы, и у некоторых это есть, у некоторых нет, но согласованности нет.
Если вы продолжите исследовать тему
jekyll-bootstrap
, вы можете найти в_includes/JB/
своеобразный файл под названиемsetup
. Содержимое этого файла следующее;
{% capture jbcache %} <!-- - Dynamically set liquid variables for working with URLs/paths --> {% if site.JB.setup.provider == "custom" %} {% include custom/setup %} {% else %} {% if site.safe and site.JB.BASE_PATH and site.JB.BASE_PATH != '' %} {% assign BASE_PATH = site.JB.BASE_PATH %} {% assign HOME_PATH = site.JB.BASE_PATH %} {% else %} {% assign BASE_PATH = nil %} {% assign HOME_PATH = "/" %} {% endif %} {% if site.JB.ASSET_PATH %} {% assign ASSET_PATH = site.JB.ASSET_PATH %} {% else %} {% capture ASSET_PATH %}{{ BASE_PATH }}/assets/themes/{{ page.theme.name }}{% endcapture %} {% endif %} {% endif %} {% endcapture %}{% assign jbcache = nil %}
Теперь, пожалуйста, помните, что у меня нулевой опыт работы с этим языком, поэтому я исхожу из чистых, 100% предположений, но мне похоже, что это какое-то слияние между BASE_PATH
и ASSET_PATH
, чтобы сделать ASSET_PATH
одним и тем же плюс доп. Если я прав, это будет означать, что если бы у вас был ..
`BASE_PATH: "/myblog"` `ASSET_PATH: "/assets"`
А то вы пытались вызвать это..
<link rel="stylesheet" href="{{ ASSET_PATH }}/css/site.css" />
Вы получите правильный путь, который равен /assets/themes/bootstrap-3/bootstrap/css/site.css
, или, в случае другой темы, например моей lanyon
, /assets/themes/lanyon/css/site.css
.
Это похоже на ожидаемое поведение, но именно этот файл setup
сбивает меня с толку и искажает ситуацию.
В соответствии с другой темой в stackoverflow; Мне сказали, что вместо этого я должен называть ASSET_PATH
с квалификатором его темы, вот так;
{{ site.Lanyon.ASSET_PATH }}
.
Или, в случае с оригинальной темой bootstrap
, я полагаю, это было бы...
{{ site.JB.ASSET_PATH }}
Теперь вернемся к файлу setup
; в теме jekyll-bootstrap
мы можем перейти к _layouts/page.html
, и мы совершенно ясно видим, что файл setup
используется вот так..
{% include JB/setup %}