<commit_before>{{- $currentNode := . }}
{{- $showvisitedlinks := .Site.Params.showVisitedLinks -}}

{{- if eq .Site.Params.ordersectionsby "title"}}
  {{- range .Site.Home.Sections.ByTitle}}
  {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks}}
  {{- end}}
{{- else}}
  {{- range .Site.Home.Sections.ByWeight}}
  {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks}}
  {{- end}}
{{- end}}

<!-- templates -->
{{- define "section-tree-nav" }}
{{- $showvisitedlinks := .showvisitedlinks }}
{{- $currentNode := .currentnode }}
 {{- with .sect}}
  {{- if and .IsSection (or (not .Params.hidden) $.showhidden)}}
    {{- $numberOfPages := (add (len .Pages) (len .Sections)) }}
    {{- safeHTML .Params.head}}
    <li data-nav-id="{{.Permalink}}" class="dd-item
        {{- if .IsAncestor $currentNode}} parent{{end}}
        {{- if eq .Permalink $currentNode.Permalink}} active{{end}}
        {{- if .Params.alwaysopen}} alwaysopen{{end -}}
        {{- if ne $numberOfPages 0 }} haschildren{{end}}
        ">
      <div>
      <a href="{{ .RelPermalink}}">{{safeHTML .Params.Pre}}{{.Title}}{{safeHTML .Params.Post}}</a>
        
        {{- if ne $numberOfPages 0 }}
          {{- if or (.IsAncestor $currentNode) (.Params.alwaysopen) }}
            <i class="fa fa-angle-down fa-lg category-icon"></i>
          {{- else -}}
            <i class="fa fa-angle-right fa-lg category-icon"></i>
          {{- end}}
        {{- end}}

        {{- if $showvisitedlinks}}<i class="fa fa-circle-thin read-icon"></i>{{end}}
      </div>
      {{- if ne $numberOfPages 0 }}
        <ul>
          {{- .Scratch.Set "pages" .Pages }}
          {{- if .Sections}}
          {{- .Scratch.Set "pages" (.Pages | union .Sections) }}
          {{- end}}
          {{- $pages := (.Scratch.Get "pages") }}

        {{- if eq .Site.Params.ordersectionsby "title"}}
          {{- range $pages.ByTitle }}
            {{- if and .Params.hidden (not $.showhidden) }}
            {{- else}}
            {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks }}
            {{- end}}
          {{- end}}
        {{- else}}
          {{- range $pages.ByWeight }}
            {{- if and .Params.hidden (not $.showhidden) }}
            {{- else}}
            {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks }}
            {{- end}}
          {{- end}}
        {{- end}}
        </ul>
      {{- end}}
    </li>
  {{- else}}
    {{- if not .Params.Hidden }}
      <li data-nav-id="{{.Permalink}}" class="dd-item
     {{- if eq .Permalink $currentNode.Permalink}} active{{end -}}
      ">
        <div>
          <a href="{{ .RelPermalink}}">
            {{safeHTML .Params.Pre}}{{.LinkTitle}}{{safeHTML .Params.Post}}
          </a>
          {{- if $showvisitedlinks}}<i class="fa fa-circle-thin read-icon"></i>{{end}}
        </div>
    </li>
     {{- end}}
  {{- end}}
 {{- end}}
{{- end}}<commit_msg>feat(layouts): Make the menu patials autonomous<commit_after>{{- $currentNode := . }}
{{- $showvisitedlinks := .Site.Params.showVisitedLinks -}}

{{- if eq .Site.Params.ordersectionsby "title"}}
  {{- range .Site.Home.Sections.ByTitle}}
  {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks}}
  {{- end}}
{{- else}}
  {{- range .Site.Home.Sections.ByWeight}}
  {{- template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks}}
  {{- end}}
{{- end}}

<!-- templates -->
{{- define "section-tree-nav" }}
{{- $showvisitedlinks := .showvisitedlinks }}
 {{- with .sect}}
  {{- if and .IsSection (or (not .Params.hidden) $.showhidden)}}
    {{- $numberOfPages := (add (len .Pages) (len .Sections)) }}
    {{- safeHTML .Params.head}}
    <li data-nav-id="{{.Permalink}}" class="dd-item
        {{- if .Params.alwaysopen}} alwaysopen{{end -}}
        {{- if ne $numberOfPages 0 }} haschildren{{end}}
        ">
      <div>
      <a href="{{ .RelPermalink}}">{{safeHTML .Params.Pre}}{{.Title}}{{safeHTML .Params.Post}}</a>
        
        {{- if ne $numberOfPages 0 }}
          {{- if .Params.alwaysopen }}
            <i class="fa fa-angle-down fa-lg category-icon"></i>
          {{- else -}}
            <i class="fa fa-angle-right fa-lg category-icon"></i>
          {{- end}}
        {{- end}}

        {{- if $showvisitedlinks}}<i class="fa fa-circle-thin read-icon"></i>{{end}}
      </div>
      {{- if ne $numberOfPages 0 }}
        <ul>
          {{- .Scratch.Set "pages" .Pages }}
          {{- if .Sections}}
          {{- .Scratch.Set "pages" (.Pages | union .Sections) }}
          {{- end}}
          {{- $pages := (.Scratch.Get "pages") }}

        {{- if eq .Site.Params.ordersectionsby "title"}}
          {{- range $pages.ByTitle }}
            {{- if and .Params.hidden (not $.showhidden) }}
            {{- else}}
            {{- template "section-tree-nav" dict "sect" . "showvisitedlinks" $showvisitedlinks }}
            {{- end}}
          {{- end}}
        {{- else}}
          {{- range $pages.ByWeight }}
            {{- if and .Params.hidden (not $.showhidden) }}
            {{- else}}
            {{- template "section-tree-nav" dict "sect" . "showvisitedlinks" $showvisitedlinks }}
            {{- end}}
          {{- end}}
        {{- end}}
        </ul>
      {{- end}}
    </li>
  {{- else}}
    {{- if not .Params.Hidden }}
      <li data-nav-id="{{.Permalink}}" class="dd-item">
        <div>
          <a href="{{ .RelPermalink}}">
            {{safeHTML .Params.Pre}}{{.LinkTitle}}{{safeHTML .Params.Post}}
          </a>
          {{- if $showvisitedlinks}}<i class="fa fa-circle-thin read-icon"></i>{{end}}
        </div>
    </li>
     {{- end}}
  {{- end}}
 {{- end}}
{{- end}}

<script type="text/javascript">
    var matches = document.querySelectorAll(`li[data-nav-id$="${window.location.pathname}"]`);
    if (matches.length > 0) {
        var menu = matches[0];
        menu.classList.add("active");

        var maxDepth = 10; // Avoid infinite loop !
        var nextAncestor = menu.closest("li[data-nav-id]");
        while (maxDepth-- >= 0 && nextAncestor !== null) {
            nextAncestor.classList.add("parent");
            var icon = nextAncestor.querySelector('i.category-icon');
            if (icon !== null) {
                icon.classList.remove('fa-angle-right');
                icon.classList.add('fa-angle-down');
            }

            nextAncestor = nextAncestor.parentNode.closest("li[data-nav-id]");
        }
    }
</script>
{'fraction_non_alphanumeric': 0.21128021486123547, 'fraction_numerical': 0.0016413011041480155, 'mean_word_length': 2.0860957642725597, 'pattern_counts': {'":': 0, '<': 51, '<?xml version=': 0, '>': 53, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2729931', 'n_tokens_mistral': 2230, 'n_tokens_neox': 2193, 'n_words': 429}