Предисловие:
У меня есть сайт Jekyll, который использует collections
с именем collection
.Он размещен на Gitlab.У меня есть файл с именем relBase.html
в каталоге _includes
со следующим кодом:
{% comment %}
Credits: Ketrel - https://gist.github.com/Ketrel/1f36fca6b4148f7263b3ee8fdb0923e7
{% endcomment %}
{% assign relBase = "" %}
{% assign tempDepth = page.url | split: "/" | size | minus: 1 %}
{% for i in (1..tempDepth) %}
{% assign relBase = relBase | append: "../" %}
{% endfor %}
{% if relBase == "" %}
{% assign relBase = "./" %}
{% endif %}
У меня есть 2 файла в каталоге _layouts
: default.html
и collection.html
.
collection.html
использует макет default.html
.
Я включил relBase.html
в default.html
с {% include relBase.html %}
.
У меня есть <link>
и <script>
теги в default.html
, которые ссылаются на CSS и JS для сайта,
Я использовал переменную {{ relBase }}
в атрибутах href
и src
тегов <link>
и <script>
соответственно, и они работают нормально.
В _config.yml
Я установил:
collections:
collection:
output: true
permalink: /collection/:title/
defaults:
-
scope:
path: ""
type: "collection"
values:
layout: "collection"
Поэтому все файлы, хранящиеся в каталоге _collection
с расширением .md
и имеющие frontmatter, отображаются на веб-страницах и используют макет collection.html
.
Цель:
Теперь я хотел использовать {{ relBase }}
в collection.html
, но я не получил желаемых результатов, скорее он ведет себя так, как будто там не написано {{ relBase }}
.
Если я включу relBase.html
в collection.html
, {{ relBase }}
распознается и работает как положено.
Что я пробовал:
- Переименование
relBase.html
с relBase.liquid
вместе с соответствующими изменениями в теге include в default.html
.
Вопрос
Существует ли какое-то ограничение на объем включаемых файлов?Есть ли способ предотвратить двойное использование тега include?