github.com/gemaraproj/gemara@v1.3.0

docs/_includes/sidebar.html raw

  1<aside class="site-sidebar" role="complementary">
  2  <div class="sidebar-content">
  3    <form class="sidebar-search" role="search" onsubmit="return false;">
  4      <label for="search-input" class="sr-only">Search the site</label>
  5      <input
  6        type="search"
  7        id="search-input"
  8        class="sidebar-search-input"
  9        placeholder="Search&hellip;"
 10        autocomplete="off"
 11        spellcheck="false"
 12        data-index="{{ '/search.json' | relative_url }}"
 13      />
 14      <ul id="search-results" class="sidebar-search-results" hidden></ul>
 15    </form>
 16
 17    <h3 class="sidebar-title">Quick Links</h3>
 18    <nav class="sidebar-nav">
 19      {%- for item in site.data.sidebar -%}
 20        {%- if item.children -%}
 21          <details class="sidebar-details">
 22            <summary class="sidebar-summary">
 23              <a href="{{ item.url | relative_url }}" class="sidebar-summary-link" onclick="event.stopPropagation();">{{ item.title | escape }}</a>
 24            </summary>
 25            <div class="sidebar-nested">
 26              {%- for child in item.children -%}
 27                {%- if child.children -%}
 28                  <details class="sidebar-details sidebar-details-nested">
 29                    <summary class="sidebar-summary sidebar-nested-link">
 30                      {{ child.title | escape }}
 31                    </summary>
 32                    <div class="sidebar-nested">
 33                      {%- for grandchild in child.children -%}
 34                        <a href="{{ grandchild.url | relative_url }}" class="sidebar-link sidebar-nested-link">{{ grandchild.title | escape }}</a>
 35                      {%- endfor -%}
 36                    </div>
 37                  </details>
 38                {%- else -%}
 39                  <a href="{{ child.url | relative_url }}" class="sidebar-link sidebar-nested-link">{{ child.title | escape }}</a>
 40                {%- endif -%}
 41              {%- endfor -%}
 42            </div>
 43          </details>
 44        {%- else -%}
 45          {%- assign is_index_page = false -%}
 46          {%- assign dir_name = "" -%}
 47          {%- if item.url != "/" -%}
 48            {%- assign url_normalized = item.url | remove: "/index.html" -%}
 49            {%- if url_normalized != "/" -%}
 50              {%- assign url_parts = url_normalized | split: "/" -%}
 51              {%- assign dir_name = "" -%}
 52              {%- for part in url_parts -%}
 53                {%- if part != "" -%}
 54                  {%- if dir_name == "" -%}
 55                    {%- assign dir_name = part -%}
 56                  {%- else -%}
 57                    {%- assign dir_name = dir_name | append: "/" | append: part -%}
 58                  {%- endif -%}
 59                {%- endif -%}
 60              {%- endfor -%}
 61              {%- if dir_name != "" -%}
 62                {%- assign is_index_page = true -%}
 63              {%- endif -%}
 64            {%- endif -%}
 65          {%- endif -%}
 66          {%- if is_index_page -%}
 67            {%- assign dir_path = dir_name | append: "/" -%}
 68            {%- assign index_file = dir_name | append: "/index.md" -%}
 69            {%- assign has_children = false -%}
 70            {%- assign child_pages = site.pages | sort: "path" -%}
 71            {%- for child_page in child_pages -%}
 72              {%- unless child_page.path contains ".template" -%}
 73                {%- if child_page.path contains dir_path and child_page.path contains ".md" and child_page.path != index_file -%}
 74                  {%- assign has_children = true -%}
 75                {%- endif -%}
 76              {%- endunless -%}
 77            {%- endfor -%}
 78            {%- if has_children -%}
 79              <details class="sidebar-details">
 80                <summary class="sidebar-summary">
 81                  <a href="{{ item.url | relative_url }}" class="sidebar-summary-link" onclick="event.stopPropagation();">{{ item.title | escape }}</a>
 82                </summary>
 83                <div class="sidebar-nested">
 84                  {%- for child_page in child_pages -%}
 85                    {%- unless child_page.path contains ".template" -%}
 86                      {%- if child_page.path contains dir_path and child_page.path contains ".md" and child_page.path != index_file -%}
 87                        <a href="{{ child_page.url | relative_url }}" class="sidebar-link sidebar-nested-link">{{ child_page.title | default: child_page.name | escape }}</a>
 88                      {%- endif -%}
 89                    {%- endunless -%}
 90                  {%- endfor -%}
 91                </div>
 92              </details>
 93            {%- else -%}
 94              <a href="{{ item.url | relative_url }}" class="sidebar-link">{{ item.title | escape }}</a>
 95            {%- endif -%}
 96          {%- else -%}
 97            <a href="{{ item.url | relative_url }}" class="sidebar-link">{{ item.title | escape }}</a>
 98          {%- endif -%}
 99        {%- endif -%}
100      {%- endfor -%}
101    </nav>
102  </div>
103</aside>