новые пользователи «jekyll» - трудности с пониманием темы «bootstrap»

Я первый раз jekyll и ruby пользователь - 0 опыта в любом из них. Я занимаюсь ими, потому что, честно говоря, я просто хочу.

Я отправляю свой фактический вопрос вверху, так как это много для чтения. Все подробности приведены ниже;

АКТУАЛЬНЫЙ ВОПРОС

  1. Что здесь происходит?
  2. Как я могу воспроизвести это для моей темы Lanyon, чтобы мне не требовалось полное имя?
  3. Как я могу объединить 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

Итак, они говорят заменить эти значения информацией, относящейся к вашему сайту. Вот тут я сбиваюсь с толку.

  1. Если я загружаю другую тему jekyll, она выглядит немного иначе. Я цитирую другой пост, который я сделал на stackoverflow относительно Lanyon, в котором нет ни пути к базе, ни пути к активу. Тем не менее, я проверил другие темы, и у некоторых это есть, у некоторых нет, но согласованности нет.

  2. Если вы продолжите исследовать тему 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 %}


person Ciel    schedule 18.07.2014    source источник


Ответы (1)


Что здесь происходит?

JB/setup просто вычисляет BASE_PATH, HOME_PATH и ASSET_PATH в зависимости от ваших настроек в глобальных переменных site.JB. Это ярлыки, которые вы будете использовать в своих шаблонах.

Как воспроизвести это для моей темы Lanyon, чтобы мне не требовалось полное имя?

Как мне объединить BASE_PATH и ASSET_PATH в мою тему Lanyon?

Поскольку Lanyon создан для работы с базовым Jekyll, а не с Jekyll Bootstrap, для работы в качестве темы ему требуется некоторая интеграция. Jekyll Bootstrap Theme API объясняет этот процесс.

Поскольку это немного обидно, я разместил пример интеграции на моем Github. Первая фиксация — это база JB, а последняя фиксация — интеграция с Lanyon.

person David Jacquel    schedule 18.07.2014
comment
Да, это прекрасно отвечает! Большое спасибо. Это сводило меня с ума. - person Ciel; 19.07.2014