_breadcrumb.html (2258B)
1 {% from "_listing.html" import crumb_container, crumb_link, crumb_collapsed, copy_btn %} 2 {#- Breadcrumb trail under the header. Folder pages get theirs from the instant-folders shell, which is why 3 the skeleton leaves a slot here instead of rendering it. -#} 4 {% if skeleton %}<!--@breadcrumb-->{% elif not (page == 'listing' and not path) %} 5 {% set current = namespace(val='') %} 6 {% set ns = namespace(items=[{'name': 'root', 'href': '/'}]) %} 7 {% if path %} 8 {% set path_parts = path.split('/') %} 9 {% if page == 'file' %}{% set path_parts = path_parts[:-1] %}{% endif %} 10 {% for part in path_parts %} 11 {% set current.val = current.val + part + '/' %} 12 {% set ns.items = ns.items + [{'name': part, 'href': '/' + current.val[:-1]}] %} 13 {% endfor %} 14 {% endif %} 15 {% set leaf = {'upload': ('new', '/new'), 'search': ('find', '/find'), 'history': ('history', '/history'), 16 'stats': ('stats', '/stats'), 'documentation': ('documentation', '/documentation'), 17 'gh-sync': ('gh-sync', '/gh-sync'), 'shorten': ('shorten', '/shorten')} %} 18 {% if page in leaf %} 19 {% set ns.items = ns.items + [{'name': leaf[page][0], 'href': leaf[page][1]}] %} 20 {% elif page == 'file' %} 21 {% set ns.items = ns.items + [{'name': filename, 'href': none}] %} 22 {% endif %} 23 24 {% set crumbs %} 25 {% if ns.items|length > 4 %} 26 {% set hidden = ns.items[1:-2] %} 27 {{ crumb_link(ns.items[0].href, ns.items[0].name) }} 28 {% set menu %} 29 {% for c in hidden %} 30 {{ crumb_link(c.href, c.name) }} 31 {% endfor %} 32 {% endset %} 33 {{ crumb_collapsed(menu) }} 34 {% for c in ns.items[-2:] %} 35 / {% if c.href %}{{ crumb_link(c.href, c.name) }}{% else %}{{ c.name }}{% endif %} 36 {% endfor %} 37 {% else %} 38 {% for c in ns.items %} 39 {% if loop.first %}{{ crumb_link(c.href, c.name) }} 40 {% else %}/ {% if c.href %}{{ crumb_link(c.href, c.name) }}{% else %}{{ c.name }}{% endif %} 41 {% endif %} 42 {% endfor %} 43 {% endif %} 44 {% endset %} 45 {{ crumb_container(crumbs, cdn_base_url, copy_btn(path) if (path or page == 'file') else '') }} 46 {% endif %}