github.com/gemaraproj/gemara@v0.23.0

docs/_includes/sidebar.html raw

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