Как заставить части навигации появляться с использованием Grav - PullRequest
0 голосов
/ 26 апреля 2019

Я работаю с 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>

1 Ответ

0 голосов
/ 25 июня 2019

Приведенный выше цикл навигации предполагает, что вы вкладываете / размещаете страницы так, как хотите, чтобы они были в навигации. Затем он поместит верхний уровень / корневые страницы в качестве первого «уровня» навигации, и все дочерние элементы этой страницы появятся в суб-навигации ниже родительского, если ваша тема имеет dropdown.enabled ({% if theme_config.dropdown.enabled %}) и дочернюю страницу. установлено на видимое. Это также будет делать это рекурсивно, поэтому, если у детей также есть дети, они также будут включены.

Если вы структурируете свой сайт таким образом, вы добьетесь желаемой навигации.

Существуют альтернативные способы создания другой навигации с использованием пользовательской конфигурации в теме. Если вам нужна дополнительная помощь, я могу указать вам правильное направление.

...