如何使用Grav来显示导航的一部分

时间:2019-04-26 08:18:46

标签: css twig styling grav text-styling

我是第一次与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>

1 个答案:

答案 0 :(得分:0)

上面的导航循环假定您要嵌套/排列页面,以使它们进入导航。然后,它将顶级/根页面作为导航的第一个“级别”,并且假设您的主题具有dropdown.enabled{% if theme_config.dropdown.enabled %}),该页面的所有子级将出现在父级的子导航中。并且子页面设置为可见。这也将递归执行此操作,因此,如果孩子们也有孩子,他们也将被包括在内。

如果您以此方式构建网站,则将实现所需的导航。

还有其他方法可以使用主题中的自定义配置来创建其他导航。如果您需要更多帮助,我可以为您指明正确的方向。