перенос захваченных переменных Jekyll 3.8.6 на 4.0 из импорта больше не расширяется

У меня есть сайт Jekyll со статьями о продуктах. В верхней части каждого post.md я добавляю файл с {%- include vars -%}. vars — это включаемый файл, содержащий {%- include varfiles/product.html id=page.product -%}. Он автоматически захватывает номер продукта на странице, а затем передает его product.html в папку varfiles. Далее product.html

{%- assign product = site.data.products | where:"id",include.id | first -%}

<!-- product name -->
{%- if product.name -%}
  {%- capture product-name -%}
    {{ product.name }}
  {%- endcapture -%}
{%- endif -%}


plus a lot more similar to the code above

Файл, по сути, представляет собой множество типов создателей имен переменных на основе свойств продукта, извлеченных из файла данных продуктов, который представляет собой список продуктов. В результате, когда я добавляю {%- include vars -%} вверху любого post.md, автоматически генерируются более простые для запоминания/использования имена переменных на основе идентификационного номера продукта во вступительной части. Затем я могу включить имена переменных в статью, например {{ product-name }}, и она автоматически разрешается из переменных, созданных из включения vars.

ПРОБЛЕМА: когда я обновляю jekyll до версии 4.0, все переменные пусты. Если поместить {{ product-name }} где-нибудь в post.md под vars, он автоматически преобразует его в название продукта. На 4.0 становится пусто. Единственное изменение, которое я делаю, это обновление до Jekyll 4.0. Если я понизил, все переменные работают нормально.


person DigitalDisaster    schedule 24.03.2020    source источник
comment
Я воспроизвел это, и это ошибка Jekyll. Вы можете заполнить ошибку здесь: github.com/ джекил/джекил/проблемы/   -  person David Jacquel    schedule 25.03.2020
comment
Это круто, спасибо за проверку. Я отправлю вопрос, когда у меня будет время   -  person DigitalDisaster    schedule 25.03.2020
comment
Похоже, что эта ошибка устранена этим патчем. Осталось дождаться нового релиза.   -  person David Jacquel    schedule 26.03.2020
comment
ахххх круто. мой обходной путь продвинул меня вперед, но рад слышать, что они все еще работают над этим.   -  person DigitalDisaster    schedule 26.03.2020


Ответы (1)


Обходной путь, который, кажется, работает, заключается в изменении

{%- assign product = site.data.products | where:"id",include.id | first -%}

to

{%- assign product = site.data.products[include.id] -%}

понятия не имею, почему это работает.

person DigitalDisaster    schedule 25.03.2020