0

我是第一次使用 Grav,所以 Twig Sytnax 等对我来说仍然很新。
我应该设置导航的样式,以便首先显示单词的一部分或页面名称,
然后在悬停时显示单词的其余部分。(例如:您可以看到“Ab”,悬停在“About”上)。

我不确定如何访问各个页面的名称并将它们划分。据我了解,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>
4

1 回答 1

0

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

如果您按照这种方式构建您的网站,您将获得所需的导航。

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

于 2019-06-25T03:14:13.150 回答