{###################################### menu widget Provide the widget with a content page that contains your menu: {{ widgets::menu(content="_common/menus/main.md") }} If the content page has a translation, it will be automatically loaded in the current language, as long as your parent template has a `lang` variable set, like so: {% set lang = section.lang | default(value=page.lang) %} Separate entries with a thematic break: either ---, ~~~, ___ or
An entry can be either text, a link, or a submenu. A submenu is an actual list defined using Markdown or HTML. You cannot use

tags in the menu. ######################################} {% macro menu(content) %}

{% endmacro menu %} {%- macro i18n_path(path) -%} {% if lang == config.default_language %}{{ path }} {%- else -%} {%- set parts = path | split(pat=".md") -%} {%- for part in parts -%} {%- if part and not loop.first -%}.md{%- endif -%} {%- if not loop.last -%}{{ part }}{%- endif -%} {%- endfor -%} .{{ lang }}.md {%- endif -%} {%- endmacro i18n_path -%} {%- macro i18n_content(path) -%} {{ get_page(path=self::i18n_path(path=path)) | get(key="content") }} {%- endmacro i18n_content -%} {%- macro i18n_url(path) -%} {%- if lang == config.default_language -%}{{ get_url(path=path) }} {%- else -%} {%- set p = lang ~ "/" ~ path -%}{{ get_url(path=p) }}{%- endif -%} {%- endmacro i18n_url -%} {% macro translations(translations) %} ({{ lang }}) {% for t in translations %}{{ t.lang }}{% endfor %} {% endmacro translations %} {% macro bubble(content, v="bottom", h="right") %}
{{ content | safe }}
{% endmacro bubble %}