summaryrefslogblamecommitdiffstats
path: root/_layouts/default.html
blob: 405a530db86810b2ca05e252d94b760fdae11d7b (plain) (tree)














































































































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               










































                                                                                                                                                                                                   









                                                                                                                                     

                                                                               

















                                                                                                                                                                                                                         
---
layout: table_wrappers
---

<!DOCTYPE html>

<html lang="{{ site.lang | default: 'en-US' }}">
{% include head.html %}
<body>
    <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>
        </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>
        </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>
        </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">
                <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>
        </symbol>
        {% include icons/alert.html %}
        {% include icons/copy.html %}
        {% include icons/external_link.html %}
        {% include icons/custom.html %}
    </svg>

    <div class="side-bar">
        <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>
            </a>
        </div>
        <nav role="navigation" 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 nav.html pages=site.html_pages key=nil %}
            {% 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 page.collection == collection_key %} active{% endif %}">
                          {%- if collection.size > 0 -%}
                          <a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a>
                          {%- endif -%}
                          <div class="nav-category">{{ collection_value.name }}</div>
                          {% include nav.html pages=collection key=collection_key %}
                        </li>
                      </ul>
                    {% else %}
                      <div class="nav-category">{{ collection_value.name }}</div>
                      {% include nav.html pages=collection key=collection_key %}
                    {% endif %}
                  {% else %}
                    {% include nav.html pages=collection key=collection_key %}
                  {% endif %}
                {% endif %}
              {% endfor %}
              {% else %}
                {% include nav.html pages=site.html_pages %}
              {% endif %}
        </nav>
        <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>
    </div>
    <div class="main" id="top">
        <div id="main-header" class="main-header">
            {% if site.search_enabled != false %}
                <div class="search">
                    <div class="search-input-wrap">
                        <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search {{ site.title }}" aria-label="Search {{ site.title }}" 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>
            {% 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>
        </div>
        <div id="main-content-wrap" class="main-content-wrap">
            {% unless page.url == "/" %}
                {% if page.parent %}
                    {%- for node in pages_list -%}
                        {%- if node.parent == nil -%}
                            {%- if page.parent == node.title or page.grand_parent == node.title -%}
                                {%- assign first_level_url = node.url | relative_url -%}
                            {%- endif -%}
                            {%- if node.has_children -%}
                                {%- assign children_list = pages_list | where: "parent", node.title -%}
                                {%- for child in children_list -%}
                                    {%- if page.url == child.url or page.parent == child.title -%}
                                        {%- assign second_level_url = child.url | relative_url -%}
                                    {%- endif -%}
                                {%- endfor -%}
                            {%- endif -%}
                        {%- endif -%}
                    {%- endfor -%}
                    <nav aria-label="Breadcrumb" class="breadcrumb-nav">
                        <ol class="breadcrumb-nav-list">
                            {% if page.grand_parent %}
                                <li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
                                <li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
                            {% else %}
                                <li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
                            {% endif %}
                            <li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
                        </ol>
                    </nav>
                {% endif %}
            {% endunless %}
            <div id="main-content" class="main-content" role="main">
                <header class="page-header" role="banner">
                    {% 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
                    %}
                    <a class="site-button github-edit" 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></svg></a>
                    {% endif %}
                    <h1 class="fs-9">{{ page.title | default: site.title | default: site.github.repository_name }}</h1>
                    {% if page.alias %}
                        <h2 class="fmt-0"><span class="fw-300">Also sold as: </span> {{ page.alias }}</h2>
                    {% endif %}
                    {% 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>
                    </ul>
                    <div class="modal" data-modal="contributors-modal" id="contributors-modal">
                        <div class="modal-content">
                            <div class="modal-header">
                                <span class="close">&times;</span>
                                <h2>Contributor to this article</h2>
                            </div>
                            <ul class="modal-body" id="contributors-modal-list">
                                
                            </ul>
                        </div>
                    </div>
                    {% endif %}
                    {% if page.description %}
                        <h2 class="fs-6 fw-300">{{ page.description }}</h2>
                    {% endif %}
                </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 %}

                {% if page.has_children == true and page.has_toc != false %}
                    <hr>
                    <h2 class="text-delta">Table of contents</h2>
                    <ul>
                        {%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%}
                        {% for child in children_list %}
                            <li>
                                <a href="{{ child.url | relative_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
                            </li>
                        {% endfor %}
                    </ul>
                {% endif %}

                {% 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 %}

                        {% 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-500 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-500 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 %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
                                    </p>
                                {% endif %}
                            </div>
                        {% endif %}

                        {{ footer_custom }}
                    </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>
    <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>

    {%if site.last_edit_timestamp_script and site.gh_owner_name and site.gh_repository_name and page.path %}
    <script>
        function parseFirstCommit(commit,filename) {
            fetch(commit.url).then((response) => {
                return response.json();
            }).then((commits) => {
                var old_filename = commits.files.filter(it => it.filename === filename && it.status === 'renamed').map(it => it.previous_filename);
                if(old_filename[0] !== undefined) {
                    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((commits) => {
                        return parseCommitsList(commits, old_filename);
                    });
                }
                return null;
            });
            
        }
        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"
            );

            console.log("initial authors - "+filename);
            console.log(authors);

            var inners = commits.map(it => (parseFirstCommit(it, filename)));

            var inner = parseFirstCommit(commits[commits.length -1], filename);
            
            console.log("inner authors - "+filename);
            console.log(inner);

            if(inner) {
                authors.push(...inner);
            }
            console.log("final authors - "+filename);
            console.log(authors);


            return authors;
        }
        function setModifiedDate() {
        if (document.getElementById('last-modified')) {
            fetch("https://api.github.com/repos/{{ site.gh_owner_name }}/{{ site.gh_repository_name }}/commits?path={{ page.path }}")
                .then((response) => {
                    return response.json();
                })
                .then((commits) => {
                    var date = new Date(commits[0]['commit']['committer']['date']);
                    var modified = date.toLocaleDateString(undefined);

                    var authors = parseCommitsList(commits, "{{ page.path }}");
                    
                    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('');
                });
            }
        }

        window.addEventListener('load', function () {
                setModifiedDate()
        });
</script>
{% endif %}
</body>
{% if site.mermaid_enabled != false %}
{%- include mermaid_init.html -%}
{% endif %}
</html>