From 71922e6908e33dc3df3ccc77474bda49a4e6becb Mon Sep 17 00:00:00 2001 From: Corwin Joy Date: Fri, 10 May 2024 22:15:23 -0700 Subject: [PATCH 1/3] Initial code for navigation --- _includes/section_nav.html | 99 ++++++++++++++++++++++++++++++++++++++ _layouts/docu.html | 2 + 2 files changed, 101 insertions(+) create mode 100644 _includes/section_nav.html diff --git a/_includes/section_nav.html b/_includes/section_nav.html new file mode 100644 index 00000000000..0b9140404d9 --- /dev/null +++ b/_includes/section_nav.html @@ -0,0 +1,99 @@ +{% if versionviewed contains 'stable' %} + {%- assign menudocfile = "menu_docs_dev" -%} +{% else %} + {%- assign menudocfile = "menu_docs_" | append: versionviewed | replace: ".", "" -%} +{% endif %} +{% assign menudocfile = site.data[menudocfile].docsmenu %} + + +{%- comment -%} +Build array of pages for menudocfile +{%- endcomment -%} + + +{% assign nav_pageList = '' %} +{% for doc_entry in menudocfile %} + {% if doc_entry.url %} + {% assign slug_str = doc_entry.slug %} + {% assign entry = ',' | append: slug_str | append: doc_entry.url %} + {% assign nav_pageList = nav_pageList | append: entry %} + {%endif %} + {% if doc_entry.mainfolderitems %} + {% for main_entry in doc_entry.mainfolderitems %} + {% if main_entry.url %} + {% assign slug_str = main_entry.slug %} + {% assign entry = ',' | append: slug_str | append: main_entry.url %} + {% assign nav_pageList = nav_pageList | append: entry %} + {%endif %} + {% if main_entry.subfolderitems %} + {% for sub_entry in main_entry.subfolderitems %} + {% if sub_entry.url %} + {% assign slug_str = main_entry.slug | append: '/' | append: sub_entry.slug %} + {% assign entry = ',' | append: slug_str | append: sub_entry.url %} + {% assign nav_pageList = nav_pageList | append: entry %} + {%endif %} + {% if sub_entry.subsubfolderitems %} + {% for subsub_entry in sub_entry.subsubfolderitems %} + {% assign slug_str = main_entry.slug | append: '/' | append: sub_entry.slug | append: '/' | append:subsub_entry.slug %} + {% assign entry = ',' | append: slug_str | append: subsub_entry.url %} + {% assign nav_pageList = nav_pageList | append: entry %} + {% endfor %} + {% endif %} + {% endfor %} + {% endif %} + {% endfor %} + {% endif %} +{% endfor %} + + +{% assign nav_pageList = nav_pageList | remove_first: ',' | split: ',' %} + +{% assign page_url_parts = page.url | split: "?" %} +{% assign page_url_base = page_url_parts[0] | remove: ".html" %} + +{%- comment -%} +Lets find where we are in the ordered +document list by comparing url strings. Then if there's something previous or +next, lets build a link to it. +{%- endcomment -%} + +{% assign docs_base_url = "/docs/" %} +{% for nav_page in nav_pageList %} + {% assign nav_page_url = docs_base_url | append: nav_page %} + {% assign nav_page_parts = nav_page_url | split: "/" %} + + {% if nav_page_parts[-1] == "index" %} + {% assign norm_page_url = "" %} + {% assign cnt = nav_page_parts.size | minus: 1 %} + {% for part in nav_page_parts limit:cnt %} + {% assign norm_page_url = norm_page_url | append: part | append: "/" %} + {% endfor %} + {% assign nav_page_url = norm_page_url %} + {% endif %} + {% if nav_page_url == page_url_base %} +
+
+ {% if forloop.first %} + Back + {% else %} + {% assign previous = forloop.index0 | minus: 1 %} + {% assign previous_page = nav_pageList[previous] | prepend: docs_base_url %} + + {% endif %} +
+
+ {% if forloop.last %} + Next + {% else %} + {% assign next = forloop.index0 | plus: 1 %} + {% assign next_page = nav_pageList[next] | prepend: docs_base_url %} + + {% endif %} +
+
+
+ {% break %} + {% endif %} +{% endfor %} + + diff --git a/_layouts/docu.html b/_layouts/docu.html index 7ff4c956d95..dc6de38ae97 100644 --- a/_layouts/docu.html +++ b/_layouts/docu.html @@ -153,6 +153,8 @@

Pages in This Section

{% endif %} + + {% include section_nav.html %} {% if page.url contains '/docs/' %}
From 65623f78b46003cc36653ed7aa8e32975714b530 Mon Sep 17 00:00:00 2001 From: Corwin Joy Date: Sat, 11 May 2024 00:01:48 -0700 Subject: [PATCH 2/3] Add styling for back, next buttons --- _includes/section_nav.html | 36 +++++++++++++++++------------------- _layouts/docu.html | 2 ++ css/docu.scss | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 19 deletions(-) diff --git a/_includes/section_nav.html b/_includes/section_nav.html index 0b9140404d9..eb69f5292cf 100644 --- a/_includes/section_nav.html +++ b/_includes/section_nav.html @@ -45,6 +45,7 @@ {% endif %} {% endfor %} + {% assign nav_pageList = nav_pageList | remove_first: ',' | split: ',' %} @@ -71,25 +72,22 @@ {% assign nav_page_url = norm_page_url %} {% endif %} {% if nav_page_url == page_url_base %} -
-
- {% if forloop.first %} - Back - {% else %} - {% assign previous = forloop.index0 | minus: 1 %} - {% assign previous_page = nav_pageList[previous] | prepend: docs_base_url %} - - {% endif %} -
-
- {% if forloop.last %} - Next - {% else %} - {% assign next = forloop.index0 | plus: 1 %} - {% assign next_page = nav_pageList[next] | prepend: docs_base_url %} - - {% endif %} -
+
+ {% if forloop.first %} + Back + {% else %} + {% assign previous = forloop.index0 | minus: 1 %} + {% assign previous_page = nav_pageList[previous] | prepend: docs_base_url %} + + {% endif %} + + {% if forloop.last %} + Next + {% else %} + {% assign next = forloop.index0 | plus: 1 %} + {% assign next_page = nav_pageList[next] | prepend: docs_base_url %} + + {% endif %}
{% break %} diff --git a/_layouts/docu.html b/_layouts/docu.html index dc6de38ae97..b7befac79bb 100644 --- a/_layouts/docu.html +++ b/_layouts/docu.html @@ -154,7 +154,9 @@

Pages in This Section

{% endif %} +
{% include section_nav.html %} +
{% if page.url contains '/docs/' %}
diff --git a/css/docu.scss b/css/docu.scss index 2ea57402393..0f6864fbca5 100644 --- a/css/docu.scss +++ b/css/docu.scss @@ -1264,3 +1264,38 @@ body.documentation.installation{ font-size: 14px; } } + +.section-nav { + + a { + text-decoration: none; + text-align: center; + font-size: 21px; + font-family: $fontSans; + display: inline-block; + margin-left: auto; + margin-right: auto; + width: 200px; + } + .prev:hover { + background-color: #ddd; + color: black; + } + .next:hover { + background-color: #ddd; + color: black; + } + .prev { + background-color: #11A8FE; + color: black; + } + .next { + background-color: #11A8FE; + color: black; + } + + .disabled { + opacity: .5; + cursor: default; + } + } From fba4b3e6df9395022314f374ad75c850239d6906 Mon Sep 17 00:00:00 2001 From: Corwin Joy Date: Mon, 13 May 2024 15:33:40 -0700 Subject: [PATCH 3/3] Add menu_side items, correct bugs. --- _data/menu_docs_dev.json | 4 --- _includes/section_nav.html | 72 ++++++++++++++++++++++++++++---------- 2 files changed, 54 insertions(+), 22 deletions(-) diff --git a/_data/menu_docs_dev.json b/_data/menu_docs_dev.json index f88df62b777..cc161d1934e 100644 --- a/_data/menu_docs_dev.json +++ b/_data/menu_docs_dev.json @@ -9,10 +9,6 @@ "page": "Documentation", "slug": "", "mainfolderitems": [ - { - "page": "Overview", - "url": "index" - }, { "page": "Connect", "slug": "connect", diff --git a/_includes/section_nav.html b/_includes/section_nav.html index eb69f5292cf..cc5c90306b2 100644 --- a/_includes/section_nav.html +++ b/_includes/section_nav.html @@ -6,36 +6,33 @@ {% assign menudocfile = site.data[menudocfile].docsmenu %} -{%- comment -%} -Build array of pages for menudocfile -{%- endcomment -%} - - + +{% assign docs_base_url = "/docs/" %} {% assign nav_pageList = '' %} {% for doc_entry in menudocfile %} {% if doc_entry.url %} {% assign slug_str = doc_entry.slug %} - {% assign entry = ',' | append: slug_str | append: doc_entry.url %} + {% assign entry = ',' | append: docs_base_url | append: slug_str | append: doc_entry.url %} {% assign nav_pageList = nav_pageList | append: entry %} {%endif %} {% if doc_entry.mainfolderitems %} {% for main_entry in doc_entry.mainfolderitems %} {% if main_entry.url %} {% assign slug_str = main_entry.slug %} - {% assign entry = ',' | append: slug_str | append: main_entry.url %} + {% assign entry = ',' | append: docs_base_url | append: slug_str | append: '/' | append: main_entry.url %} {% assign nav_pageList = nav_pageList | append: entry %} {%endif %} {% if main_entry.subfolderitems %} {% for sub_entry in main_entry.subfolderitems %} {% if sub_entry.url %} {% assign slug_str = main_entry.slug | append: '/' | append: sub_entry.slug %} - {% assign entry = ',' | append: slug_str | append: sub_entry.url %} + {% assign entry = ',' | append: docs_base_url | append: slug_str | append: sub_entry.url %} {% assign nav_pageList = nav_pageList | append: entry %} {%endif %} {% if sub_entry.subsubfolderitems %} {% for subsub_entry in sub_entry.subsubfolderitems %} {% assign slug_str = main_entry.slug | append: '/' | append: sub_entry.slug | append: '/' | append:subsub_entry.slug %} - {% assign entry = ',' | append: slug_str | append: subsub_entry.url %} + {% assign entry = ',' | append: docs_base_url | append: slug_str | append: subsub_entry.url %} {% assign nav_pageList = nav_pageList | append: entry %} {% endfor %} {% endif %} @@ -45,25 +42,55 @@ {% endif %} {% endfor %} - + +{% for side_entry in site.data["menu_side"].sidemenu %} + {% if side_entry.page != "Live Demo" %} + {% assign entry = ',' | append: side_entry.url %} + {% assign nav_pageList = nav_pageList | append: entry %} + {% endif %} +{% endfor %} + {% assign nav_pageList = nav_pageList | remove_first: ',' | split: ',' %} + {% assign page_url_parts = page.url | split: "?" %} {% assign page_url_base = page_url_parts[0] | remove: ".html" %} -{%- comment -%} + +{% assign pos = page_url_base | size | minus: 1 %} +{% assign last_char = page_url_base | slice: pos, 1 %} +{% if last_char == "/" %} + {% assign page_url_base = page_url_base | slice: 0, pos %} +{% endif %} + + + + + {% for nav_page in nav_pageList %} - {% assign nav_page_url = docs_base_url | append: nav_page %} + {% assign nav_page_url = nav_page %} {% assign nav_page_parts = nav_page_url | split: "/" %} - {% if nav_page_parts[-1] == "index" %} + {% if nav_page_parts[-1] == "index"%} {% assign norm_page_url = "" %} {% assign cnt = nav_page_parts.size | minus: 1 %} {% for part in nav_page_parts limit:cnt %} @@ -71,13 +98,22 @@ {% endfor %} {% assign nav_page_url = norm_page_url %} {% endif %} + + + {% assign pos = nav_page_url | size | minus: 1 %} + {% assign last_char = nav_page_url | slice: pos, 1 %} + {% if last_char == "/" %} + {% assign nav_page_url = nav_page_url | slice: 0, pos %} + {% endif %} + + {% if nav_page_url == page_url_base %}
{% if forloop.first %} Back {% else %} {% assign previous = forloop.index0 | minus: 1 %} - {% assign previous_page = nav_pageList[previous] | prepend: docs_base_url %} + {% assign previous_page = nav_pageList[previous] %} {% endif %} @@ -85,7 +121,7 @@ Next {% else %} {% assign next = forloop.index0 | plus: 1 %} - {% assign next_page = nav_pageList[next] | prepend: docs_base_url %} + {% assign next_page = nav_pageList[next] %} {% endif %}