From 3a6a75c0f17d7c06fe62e8f36b5bea6d457636c5 Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Wed, 25 Apr 2018 10:57:50 -0700 Subject: [PATCH] 6-layer page-children --- assets/css/devportal.css | 29 +++++++- tool/template-footer.html | 2 +- tool/template-landing-docs.html | 4 +- tool/template-page-children.html | 113 +++++++++++++++++++------------ 4 files changed, 100 insertions(+), 48 deletions(-) diff --git a/assets/css/devportal.css b/assets/css/devportal.css index 0558e0b11c..e1b962b12d 100644 --- a/assets/css/devportal.css +++ b/assets/css/devportal.css @@ -334,14 +334,39 @@ pre code { .level-3 { list-style-type: square; margin-left: 45px; - color: #888; + color: #555; } .level-3 a { - color: #888; + color: #555; } .level-3 a:hover { color: #333; } +.level-4 { + margin-left: 60px; + color: #888; +} +.level-4 a { + color: #888; +} +.level-4 a:hover { + color: #333; +} +.level-5 { + margin-left: 75px; + list-style-type: circle; + color: #aaa; +} +.level-5 a { + color: #aaa; +} +.level-5 a:hover { + color: #333; +} +.level-6 { + /* Probably not used */ + margin-left: 90px; +} .foot-nav-col .children-display li { list-style-type: none; diff --git a/tool/template-footer.html b/tool/template-footer.html index 7051836fa1..0077903cf4 100644 --- a/tool/template-footer.html +++ b/tool/template-footer.html @@ -8,7 +8,7 @@
{{ parent_page.name }}
- {% set depth=1 %} + {% set depth = 1 %} {% include 'template-page-children.html' %}
diff --git a/tool/template-landing-docs.html b/tool/template-landing-docs.html index a502980583..2e7aa49580 100644 --- a/tool/template-landing-docs.html +++ b/tool/template-landing-docs.html @@ -26,7 +26,7 @@

{{currentpage.doc_type_blurbs[page.doc_type]}}

{% endif %} {% set parent_page = doc_type_top %} - {% set depth = 1 %} + {% set depth = 1.5 %} {% include 'template-page-children.html' %} @@ -92,7 +92,7 @@
{% set parent_page = currentpage %} - {% set depth = 3 %} + {% set depth = 5 %} {% include 'template-page-children.html' %}
diff --git a/tool/template-page-children.html b/tool/template-page-children.html index f08c5c7057..81ba4134c3 100644 --- a/tool/template-page-children.html +++ b/tool/template-page-children.html @@ -8,24 +8,22 @@ {% if parent_page.funnel is undefined %} {% set parent_level = "home" %} {% set level_2 = "funnel" %} - {% set level_3 = "doc_type" %} {% set childpages = pages %}{# special case for home #} {% elif parent_page == pages|selectattr("funnel", "equalto", parent_page.funnel)|first %} {% set parent_level = "funnel" %} {% set level_2 = "doc_type" %} - {% set level_3 = "category" %} {% elif parent_page == pages|selectattr("doc_type", "equalto", parent_page.doc_type)|first %} {% set parent_level = "doc_type" %} + {% set level_2 = "supercategory" %} +{% elif parent_page == pages|selectattr("supercategory", "equalto", parent_page.supercategory)|first %} + {% set parent_level = "supercategory" %} {% set level_2 = "category" %} - {% set level_3 = "subcategory" %} {% elif parent_page == pages|selectattr("category", "equalto", parent_page.category)|first %} {% set parent_level = "category" %} {% set level_2 = "subcategory" %} - {% set level_3 = None %} {% elif parent_page == pages|selectattr("subcategory", "equalto", parent_page.subcategory)|first %} {% set parent_level = "subcategory" %} {% set level_2 = None %} - {% set level_3 = None %} {% else %} {% endif %} @@ -34,45 +32,74 @@ {% set childpages = pages|selectattr(parent_level, "equalto", parent_page[parent_level])|list %} {% endif %} +{% macro print_children(parent, thosepages, indent_level, next_level_field, depth_limit) %} + {% set printed_next_levels = [] %} + {% for onepage in thosepages %} + {% if onepage == parent %}{# pass #} + {% elif next_level_field == None or (onepage[next_level_field] is undefined and next_level_field != "supercategory") %} + {# direct child, print it! #} +
  • {{onepage.name}}
  • + + {% elif onepage[next_level_field] is undefined and next_level_field == "supercategory" %} + {# special case, might need to skip "supercategory" #} + + {% if onepage.category is defined %} + {# possible direct child or grandchild due to skipped level #} + + {% if onepage.category not in printed_next_levels %} + {% set next_level_children = thosepages|selectattr("category", + "equalto", onepage.category)|list %} + {% set next_level_parent = next_level_children|first %} +
  • {{next_level_parent.name}}
  • + {% if indent_level+1 <= depth_limit and next_level_field != None %} + {# Recurse! #} + {% set field_after = "subcategory" %} + {{ print_children(next_level_parent, next_level_children, indent_level+1, field_after, depth_limit) }} + {% endif %} + {% set _ = printed_next_levels.append(onepage.category) %} + {% endif %} + + {% else %} + +
  • {{onepage.html}}
  • + {% endif %} + + {% elif onepage[next_level_field] is defined %} + {# might be a grandchild or lower #} + {% if onepage[next_level_field] not in printed_next_levels %} + {% set next_level_children = thosepages|selectattr(next_level_field, + "equalto", onepage[next_level_field])|list %} + {% set next_level_parent = next_level_children|first %} +
  • {{next_level_parent.name}}
  • + {% if (indent_level+1 <= depth_limit and next_level_field != None) + or (next_level_field == "supercategory" and depth_limit == 1.5) %} + {# Recurse! #} + + {# figure out what level to use next #} + {% if next_level_field == "subcategory" %} + {% set field_after = None %} + {% elif next_level_field == "category" %} + {% set field_after = "subcategory" %} + {% elif next_level_field == "supercategory" %} + {% set field_after = "category" %} + {% elif next_level_field == "doc_type" %} + {% set field_after = "supercategory" %} + {% elif next_level_field == "funnel" %} + {% set field_after = "doc_type" %} + {% else %} + + {% endif %} + + {{ print_children(next_level_parent, next_level_children, indent_level+1, field_after, depth_limit) }} + {% endif %} + {% set _ = printed_next_levels.append(onepage[next_level_field]) %} + {% endif %} + {% endif %} + {% endfor %} +{% endmacro %} +