Add files
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
<nav aria-label="Auxiliary" class="aux-nav">
|
||||
<ul class="aux-nav-list">
|
||||
{% for link in site.aux_links %}
|
||||
<li class="aux-nav-list-item">
|
||||
<a href="{{ link.last }}" class="site-button"
|
||||
{% if site.aux_links_new_tab %}
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
{% endif %}
|
||||
>
|
||||
{{ link.first }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
@@ -0,0 +1,96 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/breadcrumbs.html -%}
|
||||
Depends on: page, site.
|
||||
Includes: components/site_nav.html.
|
||||
Results in: HTML for the breadcrumbs component.
|
||||
Overwrites:
|
||||
nav_list_link, site_nav, nav_list_simple, nav_list_link_class, nav_category,
|
||||
nav_anchor_splits, nav_breadcrumbs, nav_split, nav_split_next, nav_split_test,
|
||||
nav_breadcrumb_link, nav_list_end_less, nav_list_end_count, nav_end_index, nav_breadcrumb.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- if page.url != "/" and page.parent and page.title -%}
|
||||
|
||||
{%- capture site_nav -%}
|
||||
{%- include_cached components/site_nav.html all=true -%}
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture nav_list_link -%}
|
||||
<a href="{{ page.url | relative_url }}" class="nav-list-link">
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture nav_list_simple -%}
|
||||
<ul class="nav-list">
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture nav_list_link_class %} class="nav-list-link">
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture nav_category -%}
|
||||
<div class="nav-category">
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- assign nav_anchor_splits =
|
||||
site_nav | split: nav_list_link |
|
||||
first | split: nav_category |
|
||||
last | split: "</a>" -%}
|
||||
|
||||
{%- comment -%}
|
||||
The ordinary pages (if any) and the collections pages (if any) are separated by
|
||||
occurrences of nav_category.
|
||||
|
||||
Any ancestor nav-links of the page are contained in the last group of pages,
|
||||
immediately preceding nav-lists. After splitting at "</a>", the anchor that
|
||||
was split is a potential ancestor link when the following split starts with
|
||||
a nav-list.
|
||||
|
||||
The array nav_breadcrumbs is the stack of current potential ancestors of the
|
||||
current page. A split that contains one or more "</ul>"s requires that number
|
||||
of potential ancestors to be popped from the stack.
|
||||
|
||||
The number of occurrences of a string in nav_split_next is computed by removing
|
||||
them all, then dividing the resulting size difference by the length of the string.
|
||||
{%- endcomment %}
|
||||
|
||||
{%- assign nav_breadcrumbs = "" | split: "" -%}
|
||||
|
||||
{%- for nav_split in nav_anchor_splits -%}
|
||||
{%- unless forloop.last -%}
|
||||
|
||||
{%- assign nav_split_next = nav_anchor_splits[forloop.index] | strip -%}
|
||||
|
||||
{%- assign nav_split_test =
|
||||
nav_split_next | remove_first: nav_list_simple | prepend: nav_list_simple -%}
|
||||
{%- if nav_split_test == nav_split_next -%}
|
||||
{%- assign nav_breadcrumb_link =
|
||||
nav_split | split: "<a " | last | prepend: "<a " |
|
||||
replace: nav_list_link_class, ">" | append: "</a>" -%}
|
||||
{%- assign nav_breadcrumbs = nav_breadcrumbs | push: nav_breadcrumb_link -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if nav_split_next contains "</ul>" -%}
|
||||
{%- assign nav_list_end_less = nav_split_next | remove: "</ul>" -%}
|
||||
{%- assign nav_list_end_count =
|
||||
nav_split_next.size | minus: nav_list_end_less.size | divided_by: 5 -%}
|
||||
{% for nav_end_index in (1..nav_list_end_count) %}
|
||||
{%- assign nav_breadcrumbs = nav_breadcrumbs | pop -%}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- endunless -%}
|
||||
{%- endfor -%}
|
||||
|
||||
<nav aria-label="Breadcrumb" class="breadcrumb-nav">
|
||||
<ol class="breadcrumb-nav-list">
|
||||
{%- for nav_breadcrumb in nav_breadcrumbs %}
|
||||
<li class="breadcrumb-nav-list-item">{{ nav_breadcrumb }}</li>
|
||||
{%- endfor %}
|
||||
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
{% if site.nav_error_report %}
|
||||
{{ nav_error_report }}
|
||||
{% endif %}
|
||||
|
||||
{%- endif -%}
|
||||
@@ -0,0 +1,90 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/children_nav.html -%}
|
||||
Depends on: page, site, nav_breadcrumbs.
|
||||
Results in: HTML for the children-navigation component.
|
||||
Includes: components/nav/sorted.html, toc_heading_custom.html.
|
||||
Overwrites:
|
||||
nav_ancestor_links, nav_top_node_titles, nav_child_candidates, nav_children,
|
||||
nav_child, nav_child_ok, nav_child_ancestor, nav_sorted.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- comment -%}
|
||||
Whether a page has any children is checked efficiently by inspecting the cached
|
||||
site_nav. If the page has no children, nav_children is set to an empty array;
|
||||
otherwise nav_children is left unset. (The site_nav is rendered the first time
|
||||
it is included, and that may overwrite various variables.)
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- if page.has_children == false -%}
|
||||
{%- assign nav_children = "" | split: "" -%}
|
||||
{%- else -%}
|
||||
|
||||
{%- capture site_nav -%}
|
||||
{%- include_cached components/site_nav.html all=true -%}
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- assign nav_children = nil -%}
|
||||
|
||||
{%- capture nav_list_link -%}
|
||||
<a href="{{ page.url | relative_url }}" class="nav-list-link">
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- capture nav_list_simple -%}
|
||||
<ul class="nav-list">
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- assign nav_child_start = site_nav
|
||||
| split: nav_list_link | last
|
||||
| split: "</a>" | slice: 1 | first -%}
|
||||
|
||||
{%- assign nav_child_test = nav_child_start
|
||||
| remove_first: nav_list_simple | prepend: nav_list_simple -%}
|
||||
|
||||
{%- if nav_child_start != nav_child_test -%}
|
||||
{%- assign nav_children = "" | split: "" -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- endif -%}
|
||||
|
||||
{%- unless nav_children -%}
|
||||
|
||||
{%- comment -%}
|
||||
The layout is assumed to include components/breadcrumbs.html before this file,
|
||||
otherwise it needs to be included here.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- assign nav_ancestors = "" | split: "" -%}
|
||||
{%- for nav_link in nav_breadcrumbs -%}
|
||||
{%- assign nav_title = nav_link | split: ">" | slice: 1 | first | append: ">" | remove: "</a>" -%}
|
||||
{%- assign nav_ancestors = nav_ancestors | push: nav_title -%}
|
||||
{%- endfor -%}
|
||||
|
||||
{%- assign nav_parenthood = site[page.collection] | default: site.html_pages
|
||||
| where_exp: "item", "item.title != nil" | group_by: "parent" -%}
|
||||
|
||||
{%- assign nav_top_nodes = nav_parenthood
|
||||
| where_exp: "item", "item.name == ''" | map: "items" | first -%}
|
||||
|
||||
{% assign nav_top_node_titles = nav_top_nodes | map: "title" -%}
|
||||
|
||||
{%- include components/nav/children.html node=page ancestors=nav_ancestors all=true -%}
|
||||
|
||||
{%- endunless -%}
|
||||
|
||||
{%- if nav_children.size >= 1 -%}
|
||||
|
||||
{%- if page.child_nav_order == 'desc' or page.child_nav_order == 'reversed' -%}
|
||||
{%- assign nav_children = nav_children | reverse -%}
|
||||
{%- endif -%}
|
||||
|
||||
<hr>
|
||||
{% include toc_heading_custom.html %}
|
||||
<ul>
|
||||
{% for nav_child in nav_children %}
|
||||
<li>
|
||||
<a href="{{ nav_child.url | relative_url }}">{{ nav_child.title }}</a>{% if nav_child.summary %} - {{ nav_child.summary }}{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{%- endif -%}
|
||||
@@ -0,0 +1,34 @@
|
||||
{% capture footer_custom %}
|
||||
{%- include footer_custom.html -%}
|
||||
{% endcapture %}
|
||||
{% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link or site.back_to_top %}
|
||||
<hr>
|
||||
<footer>
|
||||
{% if site.back_to_top %}
|
||||
<p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p>
|
||||
{% endif %}
|
||||
|
||||
{{ footer_custom }}
|
||||
|
||||
{% if site.last_edit_timestamp or site.gh_edit_link %}
|
||||
<div class="d-flex mt-2">
|
||||
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
|
||||
<p class="text-small text-grey-dk-000 mb-0 mr-2">
|
||||
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if
|
||||
site.gh_edit_link and
|
||||
site.gh_edit_link_text and
|
||||
site.gh_edit_repository and
|
||||
site.gh_edit_branch and
|
||||
site.gh_edit_view_mode
|
||||
%}
|
||||
<p class="text-small text-grey-dk-000 mb-0">
|
||||
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}{% if page.collection and site.collections_dir %}/{{ site.collections_dir }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</footer>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,11 @@
|
||||
<div id="main-header" class="main-header">
|
||||
{% if site.search_enabled != false %}
|
||||
{% include components/search_header.html %}
|
||||
{% else %}
|
||||
<div></div>
|
||||
{% endif %}
|
||||
{% include header_custom.html %}
|
||||
{% if site.aux_links %}
|
||||
{% include components/aux_nav.html %}
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
{% comment %}
|
||||
The complexity of this file comes from a breaking change in Mermaid v10; mermaid.init has been deprecated (and supposedly, didn't work earlier?).
|
||||
|
||||
So, we check whether the user's Mermaid version is >= 10; if not, we fall back to the previous init syntax.
|
||||
|
||||
If a user is using a custom mermaid file and doesn't specify a version, we default to the < v10 behaviour. Users who use version v10 or above should specify this in the version key.
|
||||
{% endcomment %}
|
||||
|
||||
{% if site.mermaid.version %}
|
||||
{% assign mermaid_major_version = site.mermaid.version | split: "." | first | plus: 0 %}
|
||||
{% else %}
|
||||
{% assign mermaid_major_version = 9 %}
|
||||
{% endif %}
|
||||
|
||||
{% if mermaid_major_version > 9 %}
|
||||
|
||||
<script type="module">
|
||||
{% if site.mermaid.path %}
|
||||
import mermaid from '{{ site.mermaid.path | relative_url }}';
|
||||
{% else %}
|
||||
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@{{ site.mermaid.version }}/dist/mermaid.esm.min.mjs';
|
||||
{% endif %}
|
||||
|
||||
var config = {% include mermaid_config.js %};
|
||||
mermaid.initialize(config);
|
||||
mermaid.run({
|
||||
querySelector: '.language-mermaid',
|
||||
});
|
||||
</script>
|
||||
|
||||
{% else %}
|
||||
|
||||
{% if site.mermaid.path %}
|
||||
<script src="{{ site.mermaid.path | relative_url }}"></script>
|
||||
{% else %}
|
||||
<script src="https://cdn.jsdelivr.net/npm/mermaid@{{ site.mermaid.version }}/dist/mermaid.min.js"></script>
|
||||
{% endif %}
|
||||
|
||||
<script>
|
||||
var config = {% include mermaid_config.js %};
|
||||
mermaid.initialize(config);
|
||||
window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid'));
|
||||
</script>
|
||||
|
||||
{% endif %}
|
||||
@@ -0,0 +1,48 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/nav/children.html node=node ancestors=title_array all=bool -%}
|
||||
Depends on: include.node, include.ancestors, include.all, nav_parenthood, nav_top_node_titles.
|
||||
Includes: components/nav/sorted.html.
|
||||
Assigns to: nav_children.
|
||||
Overwrites:
|
||||
nav_candidates, nav_child, nav_child_ok.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- assign nav_children = "" | split: "" -%}
|
||||
|
||||
{%- if include.all == true or include.node.has_children != false -%}
|
||||
|
||||
{%- assign nav_candidates = nav_parenthood
|
||||
| where: "name", include.node.title | map: "items" | first -%}
|
||||
|
||||
{%- for nav_child in nav_candidates -%}
|
||||
{%- assign nav_child_ok = true -%}
|
||||
|
||||
{%- if nav_child.grand_parent and nav_child.grand_parent != include.node.parent -%}
|
||||
{%- assign nav_child_ok = false -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if nav_child.ancestor and nav_child.ancestor != include.node.title -%}
|
||||
{%- unless include.ancestors contains nav_child.ancestor -%}
|
||||
{%- assign nav_child_ok = false -%}
|
||||
{%- endunless -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- comment -%}
|
||||
The following check rejects nav_child as 3rd-level when include.node is 2nd-level
|
||||
and nav_child can also be 2nd-level. This is for backwards compatibility with
|
||||
existing 3-level sites.
|
||||
{%- endcomment -%}
|
||||
{%- if nav_child.grand_parent == nil and nav_child.ancestor == nil and
|
||||
nav_top_node_titles contains nav_child.parent and include.ancestors.size >= 1 -%}
|
||||
{%- assign nav_child_ok = false -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- if nav_child_ok -%}
|
||||
{%- assign nav_children = nav_children | push: nav_child -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
||||
{%- endif -%}
|
||||
|
||||
{%- include components/nav/sorted.html pages=nav_children -%}
|
||||
{%- assign nav_children = nav_sorted -%}
|
||||
@@ -0,0 +1,53 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/nav/links.html pages=page_array ancestors=title_array all=bool -%}
|
||||
Depends on: include.pages, include.ancestors, include.all.
|
||||
Results in: HTML for the main navigation when all is nil or false;
|
||||
includes links to pages excluded from the main navigation when all is true.
|
||||
Includes: components/nav/sorted.html, components/nav/children.html, components/nav/links.html.
|
||||
Overwrites:
|
||||
node, nav_children, nav_ancestors.
|
||||
{%- endcomment -%}
|
||||
|
||||
<ul class="nav-list">
|
||||
{%- for node in include.pages -%}
|
||||
{%- if include.all == true or node.nav_exclude != true -%}
|
||||
|
||||
{%- if include.ancestors contains node.title -%}
|
||||
|
||||
<li class="nav-list-item">
|
||||
<a href="{{ node.url | relative_url }}" class="nav-list-link"> ∞ </a>
|
||||
</li>
|
||||
{%- capture nav_error_report -%}
|
||||
<blockquote class="warning">
|
||||
A page has the same title as its parent page or one of its ancestral pages!<br>
|
||||
This causes an incorrect link in the main navigation panel.<br>
|
||||
Page title: <code>{{ node.title }}</code>, location: <code>{{ node.path }}</code>.
|
||||
</blockquote>
|
||||
{%- endcapture -%}
|
||||
|
||||
{%- else -%}
|
||||
|
||||
{%- include components/nav/children.html node=node ancestors=include.ancestors all=include.all -%}
|
||||
|
||||
<li class="nav-list-item">
|
||||
{%- if nav_children.size >= 1 -%}
|
||||
<button class="nav-list-expander btn-reset" aria-label="toggle items in {{ node.title }} category" aria-pressed="false">
|
||||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
|
||||
</button>
|
||||
{%- endif -%}
|
||||
<a href="{{ node.url | relative_url }}" class="nav-list-link">{{ node.title }}</a>
|
||||
{%- if nav_children.size >= 1 -%}
|
||||
{%- if node.child_nav_order == 'desc' or node.child_nav_order == 'reversed' -%}
|
||||
{%- assign nav_children = nav_children | reverse -%}
|
||||
{%- endif -%}
|
||||
{%- assign nav_ancestors = include.ancestors | push: node.title -%}
|
||||
{%- include components/nav/links.html pages=nav_children ancestors=nav_ancestors all=include.all -%}
|
||||
{%- endif -%}
|
||||
</li>
|
||||
|
||||
{%- endif -%}
|
||||
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{%- comment -%}{%- endcomment -%}
|
||||
@@ -0,0 +1,23 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/nav/pages.html pages=page_array all=bool -%}
|
||||
Depends on: include.pages.
|
||||
Results in: HTML for the main navigation when all is nil or false;
|
||||
adds links to pages excluded from the main navigation when all is true.
|
||||
Includes: components/nav/links.html
|
||||
Assigns to:
|
||||
nav_parenthood, nav_top_nodes, nav_top_node_titles, nav_ancestors.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- assign nav_parenthood = include.pages
|
||||
| where_exp: "item", "item.title != nil" | group_by: "parent" -%}
|
||||
|
||||
{%- assign nav_top_nodes = nav_parenthood
|
||||
| where_exp: "item", "item.name == ''" | map: "items" | first -%}
|
||||
|
||||
{%- include components/nav/sorted.html pages=nav_top_nodes -%}
|
||||
|
||||
{% assign nav_top_node_titles = nav_top_nodes | map: "title" -%}
|
||||
|
||||
{%- assign nav_ancestors = "" | split: "" -%}
|
||||
|
||||
{%- include components/nav/links.html pages=nav_sorted ancestors=nav_ancestors all=include.all -%}
|
||||
@@ -0,0 +1,109 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/nav/sorted.html pages=page_array -%}
|
||||
Depends on: include.pages.
|
||||
Assigns to: nav_sorted.
|
||||
Overwrites:
|
||||
nav_order_pages, title_order_pages, double_quote, empty_array,
|
||||
nav_number_pages, nav_string_pages, nav_order_groups, group,
|
||||
title_number_pages, title_string_pages, title_order_groups.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- comment -%}
|
||||
The `nav_order` values of pages affect the order in which they are shown in
|
||||
the navigation panel and in the automatically generated tables of contents.
|
||||
Sibling pages with the same `nav_order` value may be shown in any order.
|
||||
Sibling pages with no `nav_order` value are shown after all pages that have
|
||||
explicit `nav_order` values, ordered by their `title` values.
|
||||
|
||||
The `nav_order` and `title` values can be numbers or strings. To avoid build
|
||||
failures, we sort numbers and strings separately. We sort numbers by their
|
||||
values, and strings lexicographically. The case-sensitivity of string sorting
|
||||
is determined by the configuration setting of `nav_sort`. Pages with no `title`
|
||||
value are excluded from the navigation.
|
||||
|
||||
Note: Numbers used as `title` or `nav_order` values should not be in quotes,
|
||||
unless you intend them to be lexicographically ordered. Numbers are written
|
||||
without spaces or thousands-separators. Negative numbers are preceded by `-`.
|
||||
Floats are written with the integral and fractional parts separated by `.`.
|
||||
(Bounds on the magnitude and precision are presumably the same as in Liquid.)
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- assign nav_order_pages = include.pages
|
||||
| where_exp: "item", "item.nav_order != nil" -%}
|
||||
{%- assign title_order_pages = include.pages
|
||||
| where_exp: "item", "item.nav_order == nil" -%}
|
||||
|
||||
{%- comment -%}
|
||||
First, filter `nav_order_pages` and `title_order_pages` according to the type
|
||||
of value to be used for sorting.
|
||||
|
||||
The first character of the result of filtering with `jsonify` is `"` only for
|
||||
strings. Removing `"` from its `slice : 0` has size 0 for strings and 1 for
|
||||
numbers, so grouping the pages gives at most two groups.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- assign double_quote = '"' -%}
|
||||
{%- assign empty_array = "" | split: "" -%}
|
||||
|
||||
{%- assign nav_string_pages = empty_array -%}
|
||||
{%- assign nav_number_pages = empty_array -%}
|
||||
{%- unless nav_order_pages == empty -%}
|
||||
{%- assign nav_order_groups = nav_order_pages
|
||||
| group_by_exp: "item",
|
||||
"item.nav_order | jsonify | slice: 0 | remove: double_quote | size" -%}
|
||||
{%- for group in nav_order_groups -%}
|
||||
{%- if group.name == 0 -%}
|
||||
{%- assign nav_string_pages = group.items -%}
|
||||
{%- elsif group.name == 1 -%}
|
||||
{%- assign nav_number_pages = group.items -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endunless -%}
|
||||
|
||||
{%- assign title_string_pages = empty_array -%}
|
||||
{%- assign title_number_pages = empty_array -%}
|
||||
{%- unless title_order_pages == empty -%}
|
||||
{%- assign title_order_groups = title_order_pages
|
||||
| group_by_exp: "item",
|
||||
"item.title | jsonify | slice: 0 | remove: double_quote | size" -%}
|
||||
{%- for group in title_order_groups -%}
|
||||
{%- if group.name == 0 -%}
|
||||
{%- assign title_string_pages = group.items -%}
|
||||
{%- elsif group.name == 1 -%}
|
||||
{%- assign title_number_pages = group.items -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- endunless -%}
|
||||
|
||||
{%- comment -%}
|
||||
Now sort each array of pages separately, then concatenate the sorted arrays.
|
||||
{%- endcomment -%}
|
||||
|
||||
{%- unless nav_number_pages == empty -%}
|
||||
{%- assign nav_number_pages = nav_number_pages | sort: "nav_order" -%}
|
||||
{%- endunless -%}
|
||||
|
||||
{%- unless nav_string_pages == empty -%}
|
||||
{%- if site.nav_sort == 'case_insensitive' -%}
|
||||
{%- assign nav_string_pages = nav_string_pages | sort_natural: "nav_order" -%}
|
||||
{%- else -%}
|
||||
{%- assign nav_string_pages = nav_string_pages | sort: "nav_order" -%}
|
||||
{%- endif -%}
|
||||
{%- endunless -%}
|
||||
|
||||
{%- unless title_number_pages == empty -%}
|
||||
{%- assign title_number_pages = title_number_pages | sort: "title" -%}
|
||||
{%- endunless -%}
|
||||
|
||||
{%- unless title_string_pages == empty -%}
|
||||
{%- if site.nav_sort == 'case_insensitive' -%}
|
||||
{%- assign title_string_pages = title_string_pages | sort_natural: "title" -%}
|
||||
{%- else -%}
|
||||
{%- assign title_string_pages = title_string_pages | sort: "title" -%}
|
||||
{%- endif -%}
|
||||
{%- endunless -%}
|
||||
|
||||
{%- assign nav_sorted = nav_number_pages
|
||||
| concat: nav_string_pages
|
||||
| concat: title_number_pages
|
||||
| concat: title_string_pages -%}
|
||||
@@ -0,0 +1,7 @@
|
||||
{% if site.search.button %}
|
||||
<button id="search-button" class="search-button btn-reset" aria-label="Focus on search">
|
||||
<svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-search"></use></svg>
|
||||
</button>
|
||||
{% endif %}
|
||||
|
||||
<div class="search-overlay"></div>
|
||||
@@ -0,0 +1,9 @@
|
||||
{% capture search_placeholder %}{% include search_placeholder_custom.html %}{% endcapture %}
|
||||
|
||||
<div class="search" role="search">
|
||||
<div class="search-input-wrap">
|
||||
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="{{ search_placeholder | strip_html | strip }}" aria-label="{{ search_placeholder | strip_html| strip }}" autocomplete="off">
|
||||
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
|
||||
</div>
|
||||
<div id="search-results" class="search-results"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include components/sidebar.html -%}
|
||||
Depends on: page(?), site.
|
||||
Results in: HTML for the side bar.
|
||||
Includes:
|
||||
title.html, components/site_nav.html, nav_footer_custom.html
|
||||
Overwrites:
|
||||
nav_footer_custom.
|
||||
Should not be cached, because nav_footer_custom.html might depend on page.
|
||||
{%- endcomment -%}
|
||||
|
||||
<div class="side-bar">
|
||||
<div class="site-header" role="banner">
|
||||
<a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a>
|
||||
<button id="menu-button" class="site-button btn-reset" aria-label="Toggle menu" aria-pressed="false">
|
||||
<svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{% include_cached components/site_nav.html %}
|
||||
|
||||
{% capture nav_footer_custom %}
|
||||
{%- include nav_footer_custom.html -%}
|
||||
{% endcapture %}
|
||||
{% if nav_footer_custom != "" %}
|
||||
{{ nav_footer_custom }}
|
||||
{% else %}
|
||||
<footer class="site-footer">
|
||||
This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
|
||||
</footer>
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -0,0 +1,72 @@
|
||||
{%- comment -%}
|
||||
Include as: {%- include_cached components/site_nav.html all=bool -%}
|
||||
Depends on: site.
|
||||
Results in: cached HTML for the main navigation when `all` is nil or false;
|
||||
includes links to pages excluded from the main navigation when `all` is true.
|
||||
Includes:
|
||||
components/nav/pages.html
|
||||
Overwrites:
|
||||
pages_top_size, collections_size, collection_entry,
|
||||
collection_key, collection_value, collection.
|
||||
{%- endcomment -%}
|
||||
|
||||
<nav aria-label="Main" id="site-nav" class="site-nav">
|
||||
{% assign pages_top_size = site.html_pages
|
||||
| where_exp:"item", "item.title != nil"
|
||||
| where_exp:"item", "item.parent == nil"
|
||||
| where_exp:"item", "item.nav_exclude != true"
|
||||
| size %}
|
||||
{% if pages_top_size > 0 %}
|
||||
{% include components/nav/pages.html pages=site.html_pages all=include.all %}
|
||||
{% endif %}
|
||||
{%- if site.nav_external_links -%}
|
||||
<ul class="nav-list">
|
||||
{%- for node in site.nav_external_links -%}
|
||||
<li class="nav-list-item external">
|
||||
<a href="{{ node.url | absolute_url }}" class="nav-list-link external"
|
||||
{% if node.opens_in_new_tab or node.opens_in_new_tab == nil and site.nav_external_links_new_tab %}
|
||||
target="_blank" rel="noopener noreferrer"
|
||||
{% endif %}
|
||||
>
|
||||
{{ node.title }}
|
||||
{% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
|
||||
</a>
|
||||
</li>
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{%- endif -%}
|
||||
{% if site.just_the_docs.collections %}
|
||||
{% assign collections_size = site.just_the_docs.collections | size %}
|
||||
{% for collection_entry in site.just_the_docs.collections %}
|
||||
{% assign collection_key = collection_entry[0] %}
|
||||
{% assign collection_value = collection_entry[1] %}
|
||||
{% assign collection = site[collection_key] %}
|
||||
{% if collection_value.nav_exclude != true %}
|
||||
{% if collections_size > 1 or pages_top_size > 0 %}
|
||||
{% if collection_value.nav_fold == true %}
|
||||
<ul class="nav-list nav-category-list">
|
||||
<li class="nav-list-item">
|
||||
{%- if collection.size > 0 -%}
|
||||
<button class="nav-list-expander btn-reset" aria-label="Toggle collection {{ collection_value.name }}" aria-pressed="false">
|
||||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg>
|
||||
</button>
|
||||
{%- endif -%}
|
||||
<div class="nav-category">{{ collection_value.name }}</div>
|
||||
{% include components/nav/pages.html pages=collection all=include.all %}
|
||||
</li>
|
||||
</ul>
|
||||
{% else %}
|
||||
<div class="nav-category">{{ collection_value.name }}</div>
|
||||
{% include components/nav/pages.html pages=collection all=include.all %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% include components/nav/pages.html pages=collection all=include.all %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</nav>
|
||||
|
||||
{% if site.nav_error_report %}
|
||||
{{ nav_error_report }}
|
||||
{%- endif %}
|
||||
Reference in New Issue
Block a user