List Subcategories in GitHub Pages

前端 未结 2 1039
再見小時候
再見小時候 2020-12-18 03:22

Edit: I\'ve created a repository here that tests jibe\'s answer below. I just end up getting a blank page when I visit /animals, so any help is

2条回答
  •  甜味超标
    2020-12-18 04:14

    See simpyll.com for demo

    See github for website code

    assign var page_depth as the current pages depth using the path '/' as a count variable

    {% assign page_depth = page.url | split: '/' | size %}
    

    assign var page_parent as the slug of the last directory housing 'index.md'

    {% assign page_parent = page.url | split: '/' | last %}
    

    loop through every page in the website

    {% for node in site.pages offset:1 %}
    

    skip website root

    {% if node.url == '/' %}
    {{ continue }}
    {% else %}
    

    remove backslashed from each page in website

    {% assign split_path = node.url | split: "/" %}
    

    assign var node_last for each page in website

    {% assign node_last = split_path | last %}
    

    assign var node_parent as the slug of the last directory housing 'index.md' for each page in website

    {% assign node_parent = node.url | remove: node_last | split: '/' | last %}
    

    assign node_url for each page in website

    {% assign node_url = node.url %}
    

    loop through each slug in each page path in website

    {% for slug in split_path offset:1 %}
    

    assign var slug as the name of each slug therefore giving it a name

    {% assign slug = slug %}
    

    assign slug_depth with a forloop.index

    {% assign slug_depth = forloop.index %}
    

    close for

    {% endfor %}
    

    obtain sub-directories for every page in website comparing depth and parent of current page to that of every other page in website

    {% if slug_depth == page_depth and page_parent == node_parent %}
  • {{ slug }}
  • {% endif %}

    obtain sub-directories for root (which we skipped early in this script). we can use depth alone to define this.

    {% if slug_depth == 1 and page.url == '/' and slug != 'search.json' and slug != 'sitemap.xml' %}
  • {{{slug}}
  • {% endif %}

    close if and for

    {% endif %}
    {% endfor %}
    

    altogether:

      {% assign page_depth = page.url | split: '/' | size %}
      {% assign page_parent = page.url | split: '/' | last %}
      {% for node in site.pages offset:1 %}
      {% if node.url == '/' %}
      {{ continue }}
      {% else %}
      {% assign split_path = node.url | split: "/" %}
      {% assign node_last = split_path | last %}
      {% assign node_parent = node.url | remove: node_last | split: '/' | last %}
      {% assign node_url = node.url %}
      {% for slug in split_path offset:1 %}
      {% assign slug = slug %}
      {% assign slug_depth = forloop.index %}
      {% endfor %}
      {% if slug_depth == page_depth and page_parent == node_parent %}
      
  • {{ slug }}
  • {% endif %} {% if slug_depth == 1 and page.url == '/' and slug != 'search.json' and slug != 'sitemap.xml' %}
  • {{{slug}}
  • {% endif %} {% endif %} {% endfor %}

提交回复
热议问题