Шаблон MkDocs Jinja2 - ссылка не повторяется - PullRequest
0 голосов
/ 01 апреля 2020

Я использую MkDocs для создания сайта документации. MkDocs использует Jinja2 в качестве движка шаблонов. В пределах MkDocs навигационного объекта , который определен и настроен в вашем mkdocs.yml , вы можете иметь Разделы , Страницы и Ссылки .

Проблема, которую я пытаюсь выяснить, заключается в том, как получить параметр меню Раздел, чтобы связать его с первым дочерним элементом. Согласно документации по разделам:

Обратите внимание, что разделы не содержат URL-адресов и не являются ссылками любого рода. Однако по умолчанию MkDocs сортирует страницы индекса по верху, и первый дочерний элемент может использоваться в качестве URL-адреса для раздела, если тема решит это сделать.

Таким образом, в документации указано, что это возможно Мне просто нужно выяснить logi c, чтобы сделать это в моем шаблоне nav. html.

В настоящее время, когда я сохраняю свой шаблон и MkDocs пытается обновить sh сайт во время работы mkdocs serve, я получаю следующую ошибку:

File "C:\Users\username\Documents\Git\docs-site\templates/nav.html", line 10, in template
    {% for child in nav_item.children[0] if  child.is_page %}
TypeError: 'Link' object is not iterable

mkdocs.yml:

    site_name: My Site
    theme:
      name: null
      custom_dir: 'templates/'
    nav:
      - Home: index.md
      - Get Started:
        - Web: '/get-started/web.md'
        - Desktop: '/get-started/desktop.md'

nav. html:

    <header class="sub-nav" role="banner">
      <div class="grid-container flex phone-flex-column">
        <h1 class="flex flex-1 phone-flex-column sub-nav-title text-white">Documentation</h1>
        <nav class="sub-nav-list flex-0 flex tablet-hide" role="navigation" aria-labelledby="subnav">
          {% for nav_item in nav if nav_item.is_section %}
            {% if nav_item.active %}
              <a class="sub-nav-link is-active" href="#">{{ nav_item.title }}</a>
            {% else %}
              {% for child in nav_item.children[0] if  child.is_page %}
                <a class="sub-nav-link" href="{{ child.url|url }}">{{ nav_item.title }}</a>
              {% endfor %}
            {% endif %}
          {% endfor %}
        </nav>
      </div>
    </header>
...