diff options
Diffstat (limited to '_layouts/default.html')
-rw-r--r-- | _layouts/default.html | 394 |
1 files changed, 200 insertions, 194 deletions
diff --git a/_layouts/default.html b/_layouts/default.html index 15482bb..43d58d6 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -6,57 +6,45 @@ layout: table_wrappers <html lang="{{ site.lang | default: 'en-US' }}"> {% include head.html %} - <body> + <a class="skip-to-main" href="#main-content">Skip to main content</a> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-link" viewBox="0 0 24 24"> <title>Link</title> - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" - stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" - class="feather feather-link"> - <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path> - <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> + <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> </svg> </symbol> <symbol id="svg-search" viewBox="0 0 24 24"> <title>Search</title> - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" - stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" - class="feather feather-search"> - <circle cx="11" cy="11" r="8"></circle> - <line x1="21" y1="21" x2="16.65" y2="16.65"></line> + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> + <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" - stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" - class="feather feather-menu"> - <line x1="3" y1="12" x2="21" y2="12"></line> - <line x1="3" y1="6" x2="21" y2="6"></line> - <line x1="3" y1="18" x2="21" y2="18"></line> + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> + <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" - stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" - class="feather feather-chevron-right"> + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <symbol id="svg-doc" viewBox="0 0 24 24"> <title>Document</title> - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" - stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" - class="feather feather-file"> - <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path> - <polyline points="13 2 13 9 20 9"></polyline> + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> + <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> </svg> </symbol> {% include icons/alert.html %} - {% include icons/code_copy.html %} {% include icons/external_link.html %} + {% include icons/code_copy.html %} + {% if site.enable_switch_color_scheme != false %} + {% include icons/switch_color_scheme.html %} + {% endif %} {% include icons/custom.html %} </svg> @@ -64,66 +52,83 @@ layout: table_wrappers <div class="site-header"> <a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a> <a href="#" id="menu-button" class="site-button"> - <svg viewBox="0 0 24 24" class="icon"> - <use xlink:href="#svg-menu"></use> - </svg> + <svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg> </a> </div> <nav role="navigation" aria-label="Main" id="site-nav" class="site-nav"> {% include nav/main.html %} </nav> - {% 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> + + {% 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> <div class="main" id="top"> <div id="main-header" class="main-header"> {% if site.search_enabled != false %} - {% capture search_placeholder %}{% include search_placeholder_custom.html %}{% endcapture %} - <div class="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> + + {% capture search_placeholder %}{% include search_placeholder_custom.html %}{% endcapture %} + + <div class="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> + {% else %} + <div></div> {% endif %} {% include header_custom.html %} - <nav class="aux-nav"> - <ul class="aux-nav-list"> - {% if site.aux_links %} - {% for link in site.aux_links %} - <li class="aux-nav-list-item"> - <span class="site-button"> - <a href="{{ link.link }}" class="btn btn-{{ link.color }}">{{ link.title }} - {% if link.logo %} - <img src="{{ link.logo }}"></img> - {% endif %} - {% if link.icon %} - <svg> - <use xlink:href="#{{ link.icon }}"></use> - </svg> - </svg> - {% endif %} - </a> - </span> - </li> - {% endfor %} - {% endif %} - <li class="aux-nav-list-item"><span class="site-button "><a class="btn js-toggle-dark-mode">Dark - mode</a></span></li> - </ul> - </nav> + {% if site.aux_links or site.aux_buttons or site.enable_switch_color_scheme == true %} + <nav aria-label="Auxiliary" class="aux-nav"> + <ul class="aux-nav-list"> + {% for link in site.aux_buttons %} + <span class="site-button"> + <a href="{{ link.link }}" class="btn btn-{{ link.color }}">{{ link.title }} + {% if link.logo %} + <img src="{{ link.logo }}" class="site-button-icon"></img> + {% endif %} + {% if link.icon %} + <svg class="site-button-icon"> + <use xlink:href="#svg-{{ link.icon }}"></use> + </svg> + </svg> + {% endif %} + </a> + </span> + {% endfor %} + {% 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 %} + {% if site.enable_switch_color_scheme == true %} + <li class="aux-nav-list-item"> + <button class="site-button color-scheme-switch-theme-button"> + <svg aria-hidden="true" class="site-button-icon"><use href="#svg-{{ site.color_scheme | default: 'light' }}"></use></svg> + </button> + </li> + {% endif %} + </ul> + </nav> + {% endif %} </div> <div id="main-content-wrap" class="main-content-wrap"> - {% if page.parent and page.url != "/" %} + {% if page.parent and page.url != "/" %} {% include nav/crumbs.html nodes=nav_page_ancestors %} {% endif %} <div id="main-content" class="main-content" role="main"> @@ -139,9 +144,7 @@ layout: table_wrappers href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}/{{ page.path }}" id="edit-this-page" title="{{ site.gh_edit_link_text }}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> - <path - d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"> - </path> + <use xlink:href="#svg-edit"> </svg></a> {% endif %} <h1 class="fs-9">{{ page.title | default: site.title | default: site.github.repository_name }}</h1> @@ -151,10 +154,10 @@ layout: table_wrappers {% if site.last_edit_timestamp_script == true %} <ul class="metadata text-small"> <li id="last-modified">Last Modified</li> - <li><a id="contributors" data-toogle="modal" data-target="#contributors-modal">Contributor</a> + <li><a id="contributors" data-jtd-toogle="modal" data-jtd-target="#contributors-modal">Contributor</a> </li> </ul> - <div class="modal" data-modal="contributors-modal" id="contributors-modal"> + <div class="modal" data-jtd-modal="contributors-modal" id="contributors-modal"> <div class="modal-content"> <div class="modal-header"> <span class="close">×</span> @@ -172,138 +175,141 @@ layout: table_wrappers </header> <hr> {% if site.heading_anchors != false %} - {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %} - {% else %} - {{ content }} - {% endif %} - {% unless page.has_toc == false %} - {% include nav/toc.html nodes=nav_page_children %} - {% endunless %} - {% capture footer_custom %} - {%- include footer_custom.html -%} + {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %} + {% else %} + {{ content }} + {% endif %} + + {% unless page.has_toc == false %} + {% include nav/toc.html nodes=nav_page_children %} + {% endunless %} + + {% capture footer_custom %} + {%- include footer_custom.html -%} {% endcapture %} {% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %} - <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-400 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-400 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 %} - </div> - </div> - {% if site.search_enabled != false %} - {% if site.search.button %} - <a href="#" id="search-button" class="search-button"> - <svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg> - </a> - {% endif %} - <div class="search-overlay"></div> - {% endif %} - </div> + <hr> + <footer> + {% if site.back_to_top %} + <p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p> + {% endif %} -</body> -<script src="{{ base.url | prepend: site.url }}/assets/js/theme-switch.js"></script> -<script src="{{ base.url | prepend: site.url }}/assets/js/modal.js"></script> + {{ footer_custom }} -{%if site.last_edit_timestamp_script and site.gh_owner_name and site.gh_repository_name and page.path %} -<script> - var listOfScannedFilename = []; + {% 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-400 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-400 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 %} - async function parseFirstCommit(commit, filename) { - return fetch(commit.url).then((response) => { - return response.json(); - }).then(async function (commits) { - var old_filename = commits.files.filter(it => it.filename === filename && it.status === 'renamed').map(it => it.previous_filename); - if (old_filename[0] !== undefined && !listOfScannedFilename.includes(old_filename[0])) { - listOfScannedFilename.push(old_filename[0]); - return fetch("https://api.github.com/repos/{{ site.gh_owner_name }}/{{ site.gh_repository_name }}/commits?path=" + old_filename[0]) - .then((response) => { - return response.json(); - }).then(async function (commits) { - return parseCommitsList(commits, old_filename); - }); - } - }); - } - async function parseCommitsList(commits, filename) { - var authors = commits.flatMap(x => [{ ...x.commit.author, ...x.author }, { ...x.commit.committer, ...x.committer }]).map(({ date, ...keepAttrs }) => keepAttrs).filter((value, index, self) => - index === self.findIndex((t) => ( - t.login === value.login - )) && value.login !== "web-flow" - ); + </div> + </div> - var inner = await parseFirstCommit(commits[commits.length - 1], filename); + {% if site.search_enabled != false %} + {% if site.search.button %} + <a href="#" id="search-button" class="search-button"> + <svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg> + </a> + {% endif %} + <div class="search-overlay"></div> + {% endif %} + </div> - if (inner) { - inner = inner.filter(it => !authors.map(i => i.login).includes(it.login) && it.login !== "web-flow"); - authors.push(...inner); + {%if site.last_edit_timestamp_script and site.gh_owner_name and site.gh_repository_name and page.path %} + <script> + var listOfScannedFilename = []; + async function parseFirstCommit(commit, filename) { + return fetch(commit.url).then((response) => { + return response.json(); + }).then(async function (commits) { + var old_filename = commits.files.filter(it => it.filename === filename && it.status === 'renamed').map(it => it.previous_filename); + if (old_filename[0] !== undefined && !listOfScannedFilename.includes(old_filename[0])) { + listOfScannedFilename.push(old_filename[0]); + return fetch("https://api.github.com/repos/{{ site.gh_owner_name }}/{{ site.gh_repository_name }}/commits?path=" + old_filename[0]) + .then((response) => { + return response.json(); + }).then(async function (commits) { + return parseCommitsList(commits, old_filename); + }); + } + }); } + async function parseCommitsList(commits, filename) { + var authors = commits.flatMap(x => [{ ...x.commit.author, ...x.author }, { ...x.commit.committer, ...x.committer }]).map(({ date, ...keepAttrs }) => keepAttrs).filter((value, index, self) => + index === self.findIndex((t) => ( + t.login === value.login + )) && value.login !== "web-flow" + ); + var inner = await parseFirstCommit(commits[commits.length - 1], filename); - return authors; - } - async function setModifiedDate() { - if (document.getElementById('last-modified')) { - listOfScannedFilename.push("{{ page.path }}"); - fetch("https://api.github.com/repos/{{ site.gh_owner_name }}/{{ site.gh_repository_name }}/commits?path={{ page.path }}") - .then((response) => { - return response.json(); - }) - .then(async function (commits) { - try{ - var date = new Date(commits[0]['commit']['committer']['date']); - var modified = date.toLocaleDateString(undefined); - var authors = await parseCommitsList(commits, "{{ page.path }}"); + if (inner) { + inner = inner.filter(it => !authors.map(i => i.login).includes(it.login) && it.login !== "web-flow"); + authors.push(...inner); - document.getElementById('last-modified').textContent = "Last Modified: " + modified; - document.getElementById('contributors').textContent = authors.length + " " + (authors.length == 1 ? "Contributor" : "Contributors"); + } - document.getElementById('contributors-modal-list').innerHTML = authors.map(x => "<li><a href='" + x.html_url + "'><img class='avatar' src='" + x.avatar_url + "'><span>" + x.name + "</span<</a></li>").join(''); - } catch (err) { - document.getElementById('last-modified').textContent = "Sorry, last modified not currently available"; - document.getElementById('contributors').textContent = "Contributors"; - document.getElementById('contributors-modal-list').innerHTML = "<li>Sorry, list not currently available</li>"; - } - }); + + return authors; } - } + async function setModifiedDate() { + if (document.getElementById('last-modified')) { + listOfScannedFilename.push("{{ page.path }}"); + fetch("https://api.github.com/repos/{{ site.gh_owner_name }}/{{ site.gh_repository_name }}/commits?path={{ page.path }}") + .then((response) => { + return response.json(); + }) + .then(async function (commits) { + try{ + var date = new Date(commits[0]['commit']['committer']['date']); + var modified = date.toLocaleDateString(undefined); + + var authors = await parseCommitsList(commits, "{{ page.path }}"); - window.addEventListener('load', function () { - setModifiedDate() - }); -</script> -{% endif %} -{% if site.mermaid_enabled != false %} -<script> - var config = {% include mermaid_config.js %}; - mermaid.initialize(config); - window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid')); -</script> -{% endif %} + document.getElementById('last-modified').textContent = "Last Modified: " + modified; + document.getElementById('contributors').textContent = authors.length + " " + (authors.length == 1 ? "Contributor" : "Contributors"); -</html>
\ No newline at end of file + document.getElementById('contributors-modal-list').innerHTML = authors.map(x => "<li><a href='" + x.html_url + "'><img class='avatar' src='" + x.avatar_url + "'><span>" + x.name + "</span<</a></li>").join(''); + } catch (err) { + document.getElementById('last-modified').textContent = "Sorry, last modified not currently available"; + document.getElementById('contributors').textContent = "Contributors"; + document.getElementById('contributors-modal-list').innerHTML = "<li>Sorry, list not currently available</li>"; + } + }); + } + } + + window.addEventListener('load', function () { + setModifiedDate() + }); + </script> + {% endif %} + {% if site.mermaid %} + <script> + var config = {% include mermaid_config.js %}; + mermaid.initialize(config); + window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid')); + </script> + {% endif %} +</body> +</html> |