Я использую 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>