Jekyll обнаружил файл sass с именем yaml в качестве страницы
Я сделал жидкий шаблон для меню навигации и попытался добавить активное правило CSS к текущему активному пункту меню.
Вот мой жидкий тег для отображения пункта меню:
<ul class="list-inline float-right">
{% assign menu_pages = site.pages | sort: 'index' %}
{% for p in menu_pages limit 3 %}
{% if page.menu_title and page.url == p.url %}
<li class="active"><a href="{{ p.url | prepend: site.baseurl }}">{{ p.menu_title }}</a></li>
{% else %}
<li><a href="{{ p.url | prepend: site.baseurl }}">{{ p.menu_title }}</a></li>
{% endif %}
{% endfor %}
</ul>
index
переменная основного текста yaml для сортировки пунктов менюmenu_title
переменная основного текста yaml для добавления пользовательского заголовка меню, отображаемого в строке меню.
Я добавляю эти две передние переменные непосредственно к моему .html
файл в корне, которые будут отображаться в виде страниц.
Но когда я проверил это в браузере, у меня появились другие пустые пункты меню, которые связывают меня с моими файлами main.css и framework.css.
Вот визуализированный HTML:
<ul class="list-inline float-right">
<li><a href="/css/main.css"></a></li>
<li><a href="/css/framework.css"></a></li>
<li class="active"><a href="/">Home</a></li>
<li><a href="/works/">Works</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
Это произошло сразу после того, как я включил свои файлы main.sass и framework.sass в ресурсы Jekyll, расположенные в css
папка в то время как частичный файл SASS в _sass
папка. Я предполагаю, что передний вопрос делает эти два файла sass визуализированными как страницы, и это из-за того, что я добавил к своему файлу два sass. Я пытался удалить двойной ---
поверх них я обновляю localhost и пустые пункты меню пропали.
У меня есть три пункта меню для рендеринга:
- Главная
- Работает
- Блог
но результат пять!
Так правда ли, что это потому, что вопрос о ямле? Как я могу это исправить при использовании конвейера активов Sass Jekyll?
2 ответа
В этом случае вам лучше использовать site.html_pages
вместо:
{% assign menu_pages = site.html_pages | sort: 'index' %}
С https://jekyllrb.com/docs/variables/, site.html_pages
является:
Подмножество
site.pages
перечисляя те, которые заканчиваются.html
,
Ваше условие if фильтрует по menu_title, но предложение else не фильтрует. Вы можете изменить свое состояние на:
{% if page.menu_title %}
<li{% if page.url == p.url %} class="active">{% endif %}
<a href="{{ p.url | prepend: site.baseurl }}">{{ p.menu_title }}</a>
</li>
{% endif %}