我是第一次与Grav合作,所以Twig Sytnax等对我来说仍然很新。
我应该设置导航的样式,以便首先显示单词或页面名称的一部分
悬停时,其余单词应出现。 (例如:您可以看到“ Ab”,将鼠标悬停在“关于”上)。
我不确定如何访问各个页面的名称并将其分开。据我了解,navigation.html.twig拉名称和各个页面的链接。如何分别划分这些名称?最好编写自己的静态导航,以便可以分别编辑各个名称吗?我该怎么做?
代码:navigation.html.twig
{% macro loop(page) %}
{% for p in page.children.visible %}
{% set current_page = (p.active or p.activeChild) ? 'active' : '' %}
{% if p.children.visible.count > 0 %}
<a class="has-children sidebar-nav-item {{current_page }}" href="{{ p.url }}">
{% if p.header.icon %}<i class="fa fa-{{ p.header.icon }}"></i>{% endif %}
{{ p.menu }}
</a>
<a>
{{ _self.loop(p) }}
</a>
{% else %}
<a class="sidebar-nav-item {{ current_page }}" href="{{ p.url }}">
{{ p.menu }}
</a>
</a>
{% endif %}
{% endfor %}
{% endmacro %}
{% if theme_config.dropdown.enabled %}
{{ _self.loop(pages) }}
{% else %}
{% for page in pages.children.visible %}
{% set current_page = (page.active or page.activeChild) ? 'selected' : '' %}
<a class="sidebar-nav-item {{current_page}}" href="{{ page.url }}">
{{ page.menu }}
</a>
{% endfor %}
{% endif %}
{% for mitem in site.menu %}
<a class="sidebar-nav-item" href="{{ mitem.url }}">
{{ mitem.text }}
</a>
{% endfor %}
代码sidebar.html.twig:
<nav class="sidebar-nav">
{% include 'partials/navigation.html.twig'%}
</nav>
答案 0 :(得分:0)
上面的导航循环假定您要嵌套/排列页面,以使它们进入导航。然后,它将顶级/根页面作为导航的第一个“级别”,并且假设您的主题具有dropdown.enabled
({% if theme_config.dropdown.enabled %}
),该页面的所有子级将出现在父级的子导航中。并且子页面设置为可见。这也将递归执行此操作,因此,如果孩子们也有孩子,他们也将被包括在内。
如果您以此方式构建网站,则将实现所需的导航。
还有其他方法可以使用主题中的自定义配置来创建其他导航。如果您需要更多帮助,我可以为您指明正确的方向。