1- {{- $modulesList := .Site.Data.modules.channels }}
2- {{- $channelsInfo := .Site.Data.channels.info }}
3- {{- $lang := .Site.Language.Lang }}
4- {{- $sidebarRootMenu := slice }}
5- {{- $pages := (where $.Site.RegularPages ".Section" "modules").ByWeight }}
6- {{- $ctx := $ }}
1+ {{- $currentPage := . -}}
72
8- {{- $_pathElements := index ( findRESubmatch `^modules/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/*$` .File.Dir 1 ) 0 }}
9- {{- $currentModuleName := index $_pathElements 1 }}
10- {{- $currentModuleChannel := index $_pathElements 2 }}
11-
12- {{- range $module, $data := $modulesList }}
13- {{- $moduleTitle := "" }}
14- {{- $moduleChannel := "" }}
15- {{- $isActiveItem := false }}
16- {{- $moduleStatus := "" }}
17-
18- {{- if eq $currentModuleName $module }}
19- {{- $moduleChannel = $currentModuleChannel }}
20- {{- $isActiveItem = true }}
21- {{- end }}
22-
23- {{- range sort $channelsInfo "stability" "desc" }}
24- {{- $code := .code }}
25- {{- if eq $code "rock-solid" }}{{ continue }}{{ end }}
26- {{- with $.GetPage ( printf "modules/%s/%s/README.md" $module $code ) }}
27- {{- if and .Params.menuTitle (not $moduleTitle ) }}{{ $moduleTitle = .Params.menuTitle }}{{ end }}
28- {{- if and .Params.moduleStatus ( not $moduleStatus ) }}{{ $moduleStatus = .Params.moduleStatus }}{{ end }}
29- {{- if not $moduleChannel }}{{ $moduleChannel = $code }}{{ end }}
30- {{- end }}
31- {{- end }}
32- {{- if not $moduleTitle }}{{ $moduleTitle = $module }}{{ end }}
33- {{- if $moduleChannel }}
34- {{- $sidebarRootMenu = $sidebarRootMenu | append (dict "module" $module "title" $moduleTitle "channel" $moduleChannel "isActive" $isActiveItem "moduleStatus" $moduleStatus) }}
35- {{- end }}
36- {{- end}}
37-
38- {{- $sidebarRootMenu = sort $sidebarRootMenu "title" "asc" }}
39-
40- < div style ="display: flex; justify-content: start; padding-top: 12px; padding-bottom: 35px; gap: 25px; ">
41- < div class ="channel-menu submenu-parent ">
42- {{- partial "documentation-section-badge" }}
43- </ div >
44-
45- < div id ="doc-versions-menu " class ="channel-menu submenu-parent ">
46- {{- if $.IsPage }}
47- {{- if and $currentModuleName $currentModuleChannel }}
48- {{- partial "module-version-badge" (dict "ctx" $ "module" $currentModuleName "channel" $currentModuleChannel ) }}
49- {{- end }}
50- {{- end }}
51- </ div >
52-
53- </ div >
54-
55- < div class ="sidebar__wrapper-inner ">
3+ < div class ="sidebar__wrapper-inner ">
564 < nav class ="sidebar__container ">
57-
58- < ul class ="sidebar " id ="mysidebar ">
59-
60- {{- $overviewItem := $.GetPage "modules/" }}
61-
62- < li class ="sidebar__item {{ if eq $overviewItem $.Page }}active{{ end }} ">
63- < a href ='{{ relURL "" }}modules/ '> {{ $overviewItem.LinkTitle }}</ a >
64- </ li >
65-
66- {{- range $sidebarItem := $sidebarRootMenu }}
67- < li class ="sidebar__item sidebar__item_parent{{ if $sidebarItem.isActive }} active{{ end }} ">
68- < a href ='# '>
69- < span class ='sidebar__submenu-title '>
70- {{- $sidebarItem.title -}}
71- </ span >
72-
73- < span class ="sidebar__badge--container ">
74- {{- if and (gt (len $sidebarItem.module) 0) (index $.Site.Data.modules_all $sidebarItem.module) }}
75- {{- $moduleEditions := index (index $.Site.Data.modules_all $sidebarItem.module) "editions" }}
76- {{- $moduleCommercialBadgeMessage := index (index $.Site.Data.modules_all $sidebarItem.module) "commercialBadgeMessage" $lang}}
77- {{- if $moduleCommercialBadgeMessage }}
78- < span class ="sidebar__badge_v2 sidebar__badge_commercial " title ='{{ $moduleCommercialBadgeMessage }} '> {{ T "currency_sign" }}</ span >
79- {{- else if not (in $moduleEditions "ce") }}
80- < span class ="sidebar__badge_v2 sidebar__badge_commercial " title ='{{ T "commercial" }} '> {{ T "currency_sign" }}</ span >
81- {{- end }}
82- {{- end }}
83- {{- if and (replace (lower $sidebarItem.moduleStatus) " " "_") (index $.Site.Data.helpers.moduleStageBageMap (replace (lower $sidebarItem.moduleStatus) " " "_")) -}}
84- < span class ='sidebar__badge_v2 '
85- {{- if (T (printf "module_alert_%s_long" (replace (lower $sidebarItem.moduleStatus ) " " "_") )) }}
86- title='{{ (T (printf "module_alert_%s_long" (replace (lower $sidebarItem.moduleStatus) " " "_") )) }} '
87- {{ end -}}
88- > {{ index $.Site.Data.helpers.moduleStageBageMap (replace (lower $sidebarItem.moduleStatus) " " "_") -}}
89- </ span >
5+ < ul class ="sidebar " id ="mysidebar ">
6+ {{/* Get all sections on the first level */}}
7+ {{ range .Site.Sections }}
8+ < li class ="sidebar__item {{ if or (eq . $currentPage) (.IsAncestor $currentPage) }}active{{ end }}{{ if .Pages }} has-children{{ end }} ">
9+ < a href ="{{ .RelPermalink }} " {{ if and (.IsAncestor $currentPage) (not (eq . $currentPage)) }}style ="color: #00122c; "{{ end }} > {{ .Title }}</ a >
10+ {{- if .Pages }}
11+ {{- template "subpages" (dict "parent" . "currentPage" $currentPage "level" 1) }}
9012 {{- end }}
91- </ span >
92- </ a >
93- {{- template "subpages" (dict "parent" $sidebarItem "pages" $pages "ctx" $ctx) }}
94- </ li >
95- {{- end }}
96- </ ul >
13+ </ li >
14+ {{ end }}
15+ </ ul >
9716 </ nav >
98- </ div >
17+ </ div >
9918
10019{{/* --- subpages --- */}}
10120{{- define "subpages" }}
102-
103- {{- $sidebarItem := .parent }}
104- {{- $pages := .pages }}
105- {{- $ctx := .ctx }}
106-
107- < ul class ="sidebar__submenu ">
108-
109- {{- with $ctx.GetPage ( printf "modules/%s/%s/README.md" $sidebarItem.module $sidebarItem.channel ) }}
110- < li class ="sidebar__submenu-item {{ if or ($ctx.Page.IsAncestor .) (eq $ctx.Page .) }}active{{ end }} ">
111- < a href ="{{ replaceRE "/readme.html$" "/" .RelPermalink }}">
112- {{- if in .Site.Data.helpers.knownPageNames .File.TranslationBaseName }}
113- {{- T (printf "moduleLinkTitle%s" .File.TranslationBaseName) }}
114- {{- else if .LinkTitle }}
115- {{- .LinkTitle }}
116- {{- else if .Title }}
117- {{- .Title }}
118- {{- end }}
119- </ a >
120- </ li >
121- {{- end }}
122-
123- {{- range $pages }}
124- {{- $_pathElements := index ( findRESubmatch `^modules/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/*$` .File.Dir 1 ) 0 }}
125- {{- $moduleName := index $_pathElements 1 }}
126- {{- $moduleChannel := index $_pathElements 2 }}
127- {{- if or ( ne $moduleName $sidebarItem.module ) ( ne $moduleChannel $sidebarItem.channel ) ( eq .File.TranslationBaseName "README" ) }}{{ continue }}{{ end }}
128- {{- $pageTitle := "" }}
129- {{- if in .Site.Data.helpers.knownPageNames .File.TranslationBaseName }}
130- {{- $pageTitle = T (printf "moduleLinkTitle%s" .File.TranslationBaseName) }}
131- {{- else if .LinkTitle }}
132- {{- $pageTitle = strings.TrimSpace .LinkTitle }}
133- {{- else if .Title }}
134- {{- $pageTitle = strings.TrimSpace .Title }}
135- {{- end }}
136- {{- if not $pageTitle }}{{ continue }}{{ end }}
137- < li class ="sidebar__submenu-item {{ if or (.IsAncestor page) (eq . page) }}active{{ end }} ">
138- < a href ="{{ if .IsPage }}{{ replaceRE "/readme.html$" "/" .RelPermalink }}{{ else }}#{{ end }}">
139- {{- $pageTitle -}}
140- </ a >
141- </ li >
142- {{- end }}
143- </ ul >
21+ {{- $parent := .parent }}
22+ {{- $currentPage := .currentPage }}
23+ {{- $level := .level }}
24+ {{- $maxLevel := 6 }}
25+
26+ {{- if and $parent.Pages (lt $level $maxLevel) }}
27+ < ul class ="sidebar__submenu level-{{ $level }} " {{ if eq $level 1 }}style ="padding: 0 0 0 0; "{{ end }} >
28+ {{- range $parent.Pages.ByWeight }}
29+ {{- if not .Params.hidden }}
30+ < li class ="sidebar__submenu-item {{ if or (eq . $currentPage) (.IsAncestor $currentPage) }}active{{ end }}{{ if .Pages }} sidebar__submenu-item_parent has-children{{ end }} ">
31+ < a href ="{{ .RelPermalink }} ">
32+ < span class ="sidebar__submenu-title " {{ if eq $level 1 }}style ="font-size: 16px; "{{ end }} >
33+ {{- if .Title }}
34+ {{- .Title }}
35+ {{- else if .LinkTitle }}
36+ {{- .LinkTitle }}
37+ {{- else }}
38+ {{- .File.BaseFileName | humanize }}
39+ {{- end }}
40+ </ span >
41+ </ a >
42+
43+ {{/* Recursive function call for subpages */}}
44+ {{- if .Pages }}
45+ {{- template "subpages" (dict "parent" . "currentPage" $currentPage "level" (add $level 1)) }}
46+ {{- end }}
47+ </ li >
48+ {{- end }}
49+ {{- end }}
50+ </ ul >
14451{{- end }}
145- {{/* END --- subpages --- */ }}
52+ {{- end }}
0 commit comments