j1-template 2021.0.14 → 2021.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/navigator/generator.html +6 -6
  3. data/assets/data/authclient.html +1 -1
  4. data/assets/data/carousel.json +1 -1
  5. data/assets/data/fam.html +1 -1
  6. data/assets/data/menu.1.html +505 -0
  7. data/assets/data/menu.html +5 -7
  8. data/assets/themes/j1/adapter/js/carousel.js +6 -1
  9. data/assets/themes/j1/adapter/js/navigator.js +2 -1
  10. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +17 -1
  11. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
  12. data/assets/themes/j1/core/js/template.js +2 -8
  13. data/assets/themes/j1/core/js/template.js.map +1 -1
  14. data/assets/themes/j1/core/js/template.min.js +2 -8
  15. data/assets/themes/j1/core/js/template.min.js.map +1 -0
  16. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  17. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +1 -1
  18. data/lib/j1/version.rb +1 -1
  19. data/lib/starter_web/Gemfile +1 -1
  20. data/lib/starter_web/_config.yml +1 -1
  21. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  22. data/lib/starter_web/_data/modules/fam.yml +13 -2
  23. data/lib/starter_web/_data/private.yml@localhost +199 -0
  24. data/lib/starter_web/_includes/attributes.asciidoc +3 -3
  25. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  26. data/lib/starter_web/assets/images/modules/icons/d1/scalable/d1.svg +1 -1
  27. data/lib/starter_web/package.json +1 -1
  28. data/lib/starter_web/pages/public/blog/navigator/archive.html +3 -3
  29. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -3
  30. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +10 -7
  31. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +3 -3
  32. data/lib/starter_web/pages/public/blog/navigator/index.html +3 -1
  33. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/300_supported_languages.asciidoc +1 -1
  34. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +104 -120
  35. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  36. data/lib/starter_web/utilsrv/package.json +1 -1
  37. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ad880eb93e91e36cb456660c77e863b64dae610a81569a968524a627136b285
4
- data.tar.gz: 844c32e109bba242ceb8035697248b04982a20b8565f07e8c8ca28bcb1a3d027
3
+ metadata.gz: 69a105626faac6f4104455dd13ed5ebc494b1b3b26488e7f96a964dc7062f8fe
4
+ data.tar.gz: f12c4f08f016ed4d7b163b4777692aff74263fc14d328de72ac1aa0758edff4e
5
5
  SHA512:
6
- metadata.gz: 30e32c19d2c52bb5a89262edb032187ea1860d10b2da61378247f36c94c87878462855196365ec63b6f252529991d252cb34d6e6a7e0acf641f382070a01ab3e
7
- data.tar.gz: 6f6418b39121165283f0bcd7d743eeb76910774985515e7c4c7095257e7223fecd7de44a60ffe5b5745684ddde7900a879fca81cb1cc5fd1824b1c7480a0be99
6
+ metadata.gz: 9805b0d9400996e4157a1c40bbad47a363e6cc08c06d4afb1406056610de6486b0d4e21812974d4e97b8c03cec2a44504555dc4547adb20ce468e2c6e7a0b792
7
+ data.tar.gz: ec7da44135b8a8f59acda7326444e12030c73bafdfa8c159adf65651370458284c105bc7bc5b9f514606042e786e41d9be2095ead1662a70f4e9170d5f35adfd
@@ -173,9 +173,9 @@
173
173
  {% if brand_position == "left" %}
174
174
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place brand image to the: left ] -->
175
175
  {% if site.brand.image %}
176
- <a id="navbar-brand" class="navbar-brand"> <img src="{{ site.data.j1_config.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
176
+ <a href="#" id="navbar-brand" class="navbar-brand"> <img src="{{ site.data.j1_config.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
177
177
  {% else %}
178
- <a id="navbar-brand" class="navbar-brand"> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
178
+ <a href="#" id="navbar-brand" class="navbar-brand"> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
179
179
  {% endif %}
180
180
  <button id="navbar-toggler" type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
181
181
  <i class="mdi mdi-menu mdi-48px"></i>
@@ -183,9 +183,9 @@
183
183
  {% elsif brand_position == "right" %}
184
184
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place brand to the: right ] -->
185
185
  {% if site.brand.image %}
186
- <a id="navbar-brand" class="navbar-brand"> <img src="{{ site.data.j1_config.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
186
+ <a href="#" id="navbar-brand" class="navbar-brand"> <img src="{{ site.data.j1_config.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
187
187
  {% else %}
188
- <a id="navbar-brand" class="navbar-brand"> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
188
+ <a href="#" id="navbar-brand" class="navbar-brand"> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
189
189
  {% endif %}
190
190
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place mobile menu button to the: left ] -->
191
191
  <button id="mmenu-button" type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
@@ -194,9 +194,9 @@
194
194
  {% else %}
195
195
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place brand to default position: left ] -->
196
196
  {% if site.brand.image %}
197
- <a id="navbar-brand" class="navbar-brand"> <img src="{{ site.data.j1_config.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
197
+ <a href="#" id="navbar-brand" class="navbar-brand"> <img src="{{ site.data.j1_config.image_path }}/{{ site.brand.image }}" height="{{ site.brand.image_height }}" alt="{{ site.brand.text }}"></a>
198
198
  {% else %}
199
- <a id="navbar-brand" class="navbar-brand"> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
199
+ <a href="#" id="navbar-brand" class="navbar-brand"> <b><font color="{{site.brand.text_color}}">{{ site.brand.text }}</font></b></a>
200
200
  {% endif %}
201
201
  <!-- [INFO ] [j1.modules.navigator.generator.html ] [ place menu toggler to the: right ] -->
202
202
  <button id="navbar-toggler" type="button" class="navigator navbar-toggler animated fadeIn" data-toggle="collapse" data-target="#{{nav_menu_id}}" aria-controls="{{nav_menu_id}}" aria-expanded="false" aria-label="Toggle navigation">
@@ -187,7 +187,7 @@ regenerate: true
187
187
  {% if provider == 'github' and auth_github_enabled %}
188
188
  <li class="nav-item">
189
189
  <a class="nav-link{{active_flag}}" href="#h-tabs-{{ auth_github_id }}" role="tab" data-toggle="tab" aria-expanded="false" aria-selected="true">
190
- <i class="mdi mdi-github-circle mt-1 mb-2"></i> {{ auth_github_title }}
190
+ <i class="mdi mdi-github mt-1 mb-2"></i> {{ auth_github_title }}
191
191
  </a>
192
192
  </li>
193
193
  {% endif %}
@@ -71,7 +71,7 @@ regenerate: true
71
71
  {% endfor %}
72
72
  {% endif %}
73
73
  "img" : "{{ image_full_path }}",
74
- "alt" : "Owl Image {{ forloop.index }}"{% if item.show.links %},{% endif %}
74
+ "alt" : "Slider Image {{ forloop.index }}"{% if item.show.links %},{% endif %}
75
75
  {% if item.show.links %}
76
76
  {% for link in item.show.links %}
77
77
  {% if forloop.index == image_no %}
data/assets/data/fam.html CHANGED
@@ -100,7 +100,7 @@ regenerate: true
100
100
  <div id="{{menu.id}}">
101
101
  <div class="fam-btn" style="display: none">
102
102
  <!-- [DEBUG ] [j1.modules.fam.html ] [jadams, 2020-11-15: set href|link text (Google optimisation)] -->
103
- <a id="{{menu.id}}_button" href="javascript:void(0)" class="btn-fab-floating btn-large btn-{{menu.color}} raised-z{{fam_options.raised_level}}"><i id="fam-icon" class="mdi mdi-{{menu.icon}}"></i>FAM button</a>
103
+ <a id="{{menu.id}}_button" href="#" class="btn-fab-floating btn-large btn-{{menu.color}} raised-z{{fam_options.raised_level}}"><i id="fam-icon" class="mdi mdi-{{menu.icon}}"></i>FAM button</a>
104
104
  <ul id="{{menu.id}}_items">
105
105
  {% for item in menu.items %} {% if item.enabled %}
106
106
  <li><a id="{{item.id}}" href="#" class="btn-fab-floating btn-{{item.color}} raised-z{{fam_options.raised_level}}" style="display: none"><i id="fam-icon" class="mdi mdi-{{item.icon}} mdi-{{item.icon_properties}}"></i>{{item.id}}</a></li>
@@ -0,0 +1,505 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/data/menu.html
10
+ # Liquid procedure to generate HTML portion of the main menu
11
+ # for the desktop version
12
+ # NOTE: Loaded dynamically by J1 NAV Manager module (AJAX)
13
+ #
14
+ # Product/Info:
15
+ # https://jekyll.one
16
+ #
17
+ # Copyright (C) 2021 Juergen Adams
18
+ #
19
+ # J1 Template is licensed under the MIT License.
20
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
21
+ # -----------------------------------------------------------------------------
22
+ # Test data:
23
+ # {{ variable | debug }}
24
+ # -----------------------------------------------------------------------------
25
+ {% endcomment %}
26
+
27
+ {% comment %} Liquid procedures
28
+ -------------------------------------------------------------------------------- {% endcomment %}
29
+ {% capture select_color %}themes/{{site.template.name}}/procedures/global/select_color.proc{% endcapture %}
30
+ {% capture select_icon_size %}themes/{{site.template.name}}/procedures/global/select_icon_size.proc{% endcapture %}
31
+
32
+
33
+ {% comment %} Liquid var initialization
34
+ -------------------------------------------------------------------------------- {% endcomment %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign template_config = site.data.j1_config %}
39
+ {% assign modules = site.data.modules %}
40
+
41
+ {% comment %} Set config data
42
+ -------------------------------------------------------------------------------- {% endcomment %}
43
+ {% assign environment = site.environment %}
44
+
45
+ {% assign navigator_settings = modules.navigator.settings %}
46
+ {% assign navigator_defaults = modules.defaults.navigator.defaults %}
47
+ {% assign navigator_menu_config = modules.navigator_menu %}
48
+
49
+ {% assign themer_defaults = modules.defaults.themer.defaults %}
50
+ {% assign themer_settings = modules.themer.settings %}
51
+
52
+ {% assign nav_bar_defaults = navigator_defaults.nav_bar %}
53
+ {% assign nav_bar_settings = navigator_settings.nav_bar %}
54
+ {% assign nav_menu_defaults = navigator_defaults.nav_menu %}
55
+ {% assign nav_menu_settings = navigator_settings.nav_menu %}
56
+
57
+ {% comment %} Set config options
58
+ -------------------------------------------------------------------------------- {% endcomment %}
59
+ {% assign themer_options = themer_defaults | merge: themer_settings %}
60
+ {% assign nav_bar_options = nav_bar_defaults | merge: nav_bar_settings %}
61
+ {% assign nav_menu_options = nav_menu_defaults | merge: nav_menu_settings %}
62
+ {% assign theme_preview = themer_options.preview_page %}
63
+ {% assign nav_menu_id = nav_menu_options.id %}
64
+
65
+ {% assign production = false %}
66
+ {% if environment == 'prod' or environment == 'production' %}
67
+ {% assign production = true %}
68
+ {% endif %}
69
+
70
+ {% assign ext = '' %}
71
+ {% if site.permalink == 'none' %}
72
+ {% assign ext = '.html' %}
73
+ {% endif %}
74
+
75
+ <!-- [DEBUG ] [j1.modules.navigator.menu.html ] [detect bs type] -->
76
+ {% assign bs_type = 'bmd4' %}
77
+ {% if navigator_settings.bs_type == 'bs4' %}
78
+ {% assign bs_type = 'bs4' %}
79
+ {% endif %}
80
+
81
+ {% if bs_type == 'bmd4' %}
82
+ {% assign dropdown_collapse = 'collapse' %}
83
+ {% elsif bs_type == 'bs4' %}
84
+ {% assign dropdown_collapse = 'fake-class collapse' %}
85
+ {% endif %}
86
+
87
+ <!-- [DEBUG ] [j1.modules.navigator.menu.html ] [bs type detected: {{bs_type}}] -->
88
+
89
+ {% comment %} Set navBarOptions
90
+ -------------------------------------------------------------------------------- {% endcomment %}
91
+ {% assign nav_bar_position = nav_bar_options.position %}
92
+
93
+ {% comment %} Set navMenuOptions
94
+ -------------------------------------------------------------------------------- {% endcomment %}
95
+ {% assign nav_menu_animation = nav_menu_options.dropdown_animate %}
96
+ {% if nav_menu_animation %}
97
+ {% assign animate_in = nav_menu_options.dropdown_animate_in %}
98
+ {% assign animate_out = nav_menu_options.dropdown_animate_out %}
99
+ {% endif %}
100
+
101
+ {% comment %} Set base nav features
102
+ -------------------------------------------------------------------------------- {% endcomment %}
103
+ {% capture nav_menu_position %}dropdown-menu-{{nav_bar_position}}{% endcapture %}
104
+ {% unless nav_menu_animation %} {% assign nav_menu_animation = false %} {% endunless %}
105
+
106
+ <!-- [DEBUG ] [j1.modules.navigator.menu.html ] [initialize default menu properties] -->
107
+ {% if nav_menu_options.raised_level %}
108
+ {% assign raised_level = nav_menu_options.raised_level %}
109
+ {% else %}
110
+ {% assign raised_level = 0 %}
111
+ {% endif %}
112
+
113
+ {% comment %} Set base icons and sizes
114
+ -------------------------------------------------------------------------------- {% endcomment %}
115
+ <!-- [DEBUG ] [j1.modules.navigator.menu.html ] [initialize default menu icon properties] -->
116
+ {% assign nav_menu_icon_family = nav_menu_options.icon_family %}
117
+ {% assign nav_menu_icon_style = nav_menu_options.icon_style %}
118
+ {% assign nav_menu_icon_color = nav_menu_options.icon_color %}
119
+ {% assign nav_menu_icon_size = nav_menu_options.icon_size %}
120
+
121
+ {% assign icon_family = nav_menu_icon_family | strip | downcase %}
122
+
123
+ {% if icon_family == 'fontawesome' or icon_family == 'fontawesome5' %}
124
+ {% assign nav_menu_icon_family = 'fa' %}
125
+ {% assign nav_menu_icon_style = nav_menu_icon_style %}
126
+ {% elsif icon_family == 'mdi' %}
127
+ {% assign nav_menu_icon_family = 'mdi' %}
128
+ {% assign nav_menu_icon_style = nav_menu_icon_style %}
129
+ {% else %}
130
+ {% assign nav_menu_icon_family = 'mdi' %}
131
+ {% assign nav_menu_icon_style = nav_menu_icon_style %}
132
+ {% endif %}
133
+
134
+ {% include {{select_color}} color=nav_menu_icon_color fallback="#9E9E9E" %}
135
+ {% assign nav_menu_icon_color = color %}
136
+
137
+ {% include {{select_icon_size}} family=nav_menu_icon_family size=nav_menu_icon_size %}
138
+ {% assign nav_menu_icon_size = size %}
139
+
140
+ {% comment %} Main
141
+ -------------------------------------------------------------------------------- {% endcomment %}
142
+
143
+ <!-- [DEBUG ] [j1.modules.navigator.menu.html ] [collect all nav links for the navigation bar (navbar)] -->
144
+ <!-- div id="{{nav_menu_id}}" class="{{dropdown_collapse}}" -->
145
+ <!-- div class="{{dropdown_collapse}}" -->
146
+ {% if nav_menu_animation %}
147
+ <ul id="desktop_menu" class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="{{animate_in}}" data-out="{{animate_out}}">
148
+ {% else %}
149
+ <ul id="desktop_menu" class="nav navbar-nav navigator navbar-{{nav_bar_position}}" data-in="fadeIn" data-out="fadeOut">
150
+ {% endif %}
151
+
152
+ {% for menu in navigator_menu_config %}
153
+
154
+ {% comment %} Identify the menu (item) type
155
+ ---------------------------------------------------------------------------- {% endcomment %}
156
+
157
+ {% if menu.sublevel %}
158
+ {% assign menu_type = 'sublevel_menu' %}
159
+ {% elsif menu.megamenu %}
160
+ {% assign menu_type = 'mega_menu' %}
161
+ {% elsif menu.auth_client %}
162
+ {% assign menu_type = 'auth_client' %}
163
+ {% elsif menu.theme_select %}
164
+ {% assign menu_type = 'theme_select' %}
165
+ {% elsif menu.sublevel == null and menu.megamenu == null and menu.login_menu == null and menu.theme_select == null %}
166
+ {% assign menu_type = 'top_level_item' %}
167
+ {% endif %}
168
+
169
+
170
+ {% comment %} Process all menu sections
171
+ ---------------------------------------------------------------------------- {% endcomment %}
172
+
173
+ {% case menu_type %}
174
+
175
+ {% comment %} Collect items having a SUB menue
176
+ ---------------------------------------------------------------------------- {% endcomment %}
177
+ {% when 'sublevel_menu' %}
178
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [found menu-type: sub-menue] -->
179
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu level 1 detected] -->
180
+ <li class="dropdown nav-item">
181
+ {% if menu.icon == null %}
182
+ <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">{{ menu.item }}</a>
183
+ {% else %}
184
+ <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" data-hover="dropdown"> <i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{menu.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i>{{ menu.item }}</a>
185
+ {% endif %}
186
+
187
+ <!-- jadams, 2017-11-24: (3) ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="opacity: 1; display: none;" -->
188
+ <!-- ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="display: none;" -->
189
+
190
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu detected, SKIP scrollable-menu ] -->
191
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}">
192
+
193
+ {% comment %} ????
194
+ ------------------------------------------------------------------------
195
+ {% if level_1.dropdown %}
196
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu level detected, SKIP scrollable-menu: {{level_2.dropdown}} ] -->
197
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="max-height: unset;">
198
+ {% else %}
199
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [ NO submenu level 3 found, SET scrollable-menu: {{level_2.dropdown}} ] -->
200
+ <ul class="dropdown-menu scrollable-menu {{nav_menu_position}} raised-z{{raised_level}}">
201
+ {% endif %}
202
+ ------------------------------------------------------------------------ {% endcomment %}
203
+
204
+ {% for level_1 in menu.sublevel %}
205
+ {% if level_1.dropdown == null %}
206
+ {% if level_1.icon == null %}
207
+ {% if level_1.target == null %}
208
+ <li class="dropdown-item"><a href="{{ level_1.href }}{{ext}}">{{ level_1.title }}</a></li>
209
+ {% else %}
210
+ <li class="dropdown-item"><a href="{{ level_1.href }}{{ext}}" target="{{ level_1.target }}" rel="noopener">{{ level_1.title }}</a></li>
211
+ {% endif %}
212
+ {% else %}
213
+ {% if level_1.target == null %}
214
+ <li class="dropdown-item"><a href="{{ level_1.href }}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_1.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_1.title }}</a></li>
215
+ {% else %}
216
+ <li class="dropdown-item"><a href="{{ level_1.href }}{{ext}}" target="{{ level_1.target }}" rel="noopener"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_1.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_1.title }}</a></li>
217
+ {% endif %}
218
+ {% endif %}
219
+ {% endif %}
220
+ {% if level_1.divider %} <li class="divider"></li> {% endif %}
221
+ {% if level_1.dropdown %}
222
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu level 2 (dropdown) detected ] -->
223
+ <li class="dropdown nav-item nav-sub-item">
224
+ {% if level_1.icon == null %}
225
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ level_1.title }}</a>
226
+ {% else %}
227
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_1.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_1.title }}</a>
228
+ {% endif %}
229
+ <!-- jadams, 2017-11-24: (4) ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="opacity: 1;" -->
230
+
231
+ {% comment %} ????
232
+ -------------------------------------------------------------------
233
+ {% if level_1.dropdown %}
234
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu level 2 detected, SKIP scrollable-menu: {{level_2.dropdown}} ] -->
235
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="max-height: unset;">
236
+ {% else %}
237
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [ NO submenu level 3 found, SET scrollable-menu: {{level_2.dropdown}} ] -->
238
+ <ul class="dropdown-menu scrollable-menu {{nav_menu_position}} raised-z{{raised_level}}">
239
+ {% endif %}
240
+ ------------------------------------------------------------------ {% endcomment %}
241
+
242
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}">
243
+ {% for level_2 in level_1.dropdown %}
244
+ {% if level_2.dropdown == null %}
245
+ {% if level_2.icon == null %}
246
+ {% if level_2.target == null %}
247
+ <li class="dropdown-item"><a href="{{ level_2.href }}{{ext}}">{{ level_2.title }}</a></li>
248
+ {% else %}
249
+ <li class="dropdown-item"><a href="{{ level_2.href }}{{ext}}" target="{{ level_2.target }}" rel="noopener">{{ level_2.title }}</a></li>
250
+ {% endif %}
251
+ {% else %}
252
+ {% if level_2.target == null %}
253
+ <li class="dropdown-item"><a href="{{ level_2.href }}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_2.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_2.title }}</a></li>
254
+ {% else %}
255
+ <li class="dropdown-item"><a href="{{ level_2.href }}{{ext}}" target="{{ level_2.target }}" rel="noopener"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_2.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_2.title }}</a></li>
256
+ {% endif %}
257
+ {% endif %}
258
+ {% endif %}
259
+ {% if level_2.divider %} <li class="divider"></li> {% endif %}
260
+ {% if level_2.dropdown %}
261
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu level 3 detected (last level supported)] -->
262
+ <li class="dropdown nav-item nav-sub-item">
263
+ {% if level_2.icon == null %}
264
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ level_2.title }}</a>
265
+ {% else %}
266
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_2.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_2.title }}</a>
267
+ {% endif %}
268
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [submenu level 3, SET scrollable-menu: {{level_2.dropdown}} ] -->
269
+ <!-- ul class="dropdown-menu scrollable-menu {{nav_menu_position}} raised-z{{raised_level}}" -->
270
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}">
271
+ {% for level_3 in level_2.dropdown %}
272
+ {% if level_2.icon == null %}
273
+ {% if level_3.target == null %}
274
+ <li class="dropdown-item"><a href="{{ level_3.href }}{{ext}}">{{ level_3.title }}</a></li>
275
+ {% else %}
276
+ <li class="dropdown-item"><a href="{{ level_3.href }}{{ext}}" target="{{ level_3.target }}" rel="noopener">{{ level_3.title }}</a></li>
277
+ {% endif %}
278
+ {% else %}
279
+ {% if level_3.target == null %}
280
+ <li class="dropdown-item"><a href="{{ level_3.href }}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_3.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_3.title }}</a></li>
281
+ {% else %}
282
+ <li class="dropdown-item"><a href="{{ level_3.href }}{{ext}}" target="{{ level_3.target }}" rel="noopener"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{level_3.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{ level_3.title }}</a></li>
283
+ {% endif %}
284
+ {% endif %}
285
+ {% if level_3.divider %} <li class="divider"></li> {% endif %}
286
+ {% endfor %} <!-- [INFO ] [j1.modules.navigator.menu.html ] [end processing: level 3] -->
287
+ </ul>
288
+ </li>
289
+ {% endif %}
290
+ {% endfor %} <!-- [INFO ] [j1.modules.navigator.menu.html ] [end processing: level 2] -->
291
+ </ul>
292
+ </li>
293
+ {% endif %}
294
+ {% endfor %} <!-- [INFO ] [j1.modules.navigator.menu.html ] [end processing: level 1] -->
295
+ </ul>
296
+ </li>
297
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [reset menu_type for next loop] -->
298
+ {% assign menu_type = '' %}
299
+
300
+
301
+ {% comment %} Collect items having a MEGA menu
302
+ ---------------------------------------------------------------------------- {% endcomment %}
303
+ {% when 'mega_menu' %}
304
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [found menu-type: megamenu-menue] -->
305
+ <!-- calculate size of mm_columns -->
306
+ {% assign columns = menu.megamenu | size %}
307
+ {% assign columns_width_md = 12 | divided_by:columns %}
308
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [Calculated size of mm_columns: {{ columns_width_md }}] -->
309
+
310
+ <li class="dropdown nav-item megamenu-fw">
311
+ <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">{{menu.item}} </a>
312
+ <ul class="dropdown-menu megamenu-content raised-z{{raised_level}}" style="max-height: {{nav_menu_options.max_height}}px; overflow-x: hidden; overflow-y: auto;" role="menu">
313
+ <li>
314
+ <div class="row">
315
+ {% for megabox in menu.megamenu %}
316
+ <div class="col-menu col-md-{{columns_width_md}} col-sm-6">
317
+ {% if megabox.icon == null %}
318
+ <div class="post-headline mt-2 mb-3">
319
+ <h2 class="title" style="font-size:1.25em !important">{{megabox.title}}</h2>
320
+ </div>
321
+ {% else %}
322
+ <div class="post-headline mt-2 mb-3">
323
+ <h2 class="title" style="font-size:1.25em !important"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{megabox.icon}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{megabox.title}}</h2>
324
+ </div>
325
+ {% endif %}
326
+ <div class="content">
327
+ <ul class="menu-col">
328
+ {% for links in megabox.column %}
329
+ {% if links.icon == null %}
330
+ <li class="dropdown-megamenu-item"><a href="{{links.href}}{{ext}}" target="{{ links.target }}" rel="noopener">{{links.title}}</a></li>
331
+ {% else %}
332
+ <li class="dropdown-megamenu-item"><a href="{{links.href}}{{ext}}" target="{{ links.target }}" rel="noopener"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{links.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{links.title}}</a></li>
333
+ {% endif %}
334
+ {% endfor %}
335
+ </ul>
336
+ </div>
337
+ </div>
338
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [megamenu-menue: end megabox] -->
339
+ {% endfor %}
340
+ </div>
341
+ </li>
342
+ </ul>
343
+ </li>
344
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [megamenu-menue: end mega-menu] -->
345
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [reset menu_type for next loop] -->
346
+ {% assign menu_type = '' %}
347
+
348
+
349
+ {% comment %} Collect TOP-LEVEL items (NO sub-menu)
350
+ -------------------------------------------------------------------------- {% endcomment %}
351
+ {% when 'top_level_item' %}
352
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [found menu-type: menu-top-level-only] -->
353
+ {% if menu.icon == null %}
354
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [no icon for menu-item found -->
355
+ {% if menu.target == null %}
356
+ <li class="nav-item"> <a class="nav-link" href="{{ menu.href }}{{ext}}">{{ menu.item }}</a> </li>
357
+ {% else %}
358
+ <li class="nav-item"> <a class="nav-link" href="{{ menu.href }}{{ext}}" target="{{ menu.target }}" rel="noopener">{{ menu.item }}</a> </li>
359
+ {% endif %}
360
+ {% elsif menu.icon %}
361
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [no icon for menu-item found -->
362
+ {% if menu.target == null %}
363
+ <li> <a class="nav-link" href="{{ menu.href }}{{ext}}"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{menu.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i> {{ menu.item }}</a> </li>
364
+ {% else %}
365
+ <li> <a class="nav-link" href="{{ menu.href }}{{ext}}" target="{{ menu.target }}" rel="noopener"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{menu.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i> {{ menu.item }}</a> </li>
366
+ {% endif %}
367
+ {% else %}
368
+ <!-- [FATAL ] [nav_menu.menu-top-level-only ] [processing menu item failed] -->
369
+ {% endif %}
370
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [menu-top-level-only: end menu] -->
371
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [reset menu_type for next loop] -->
372
+ {% assign menu_type = '' %}
373
+
374
+
375
+ {% comment %} Collect items having a LOGIN menu
376
+ ------------------------------------------------------------------------ {% endcomment %}
377
+ {% when 'auth_client' %}
378
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [found menu-type: auth_client] -->
379
+ <li id="menuBarSignInOut" class="dropdown nav-item">
380
+ <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">{{menu.item}} </a>
381
+
382
+ {% if nav_menu_animation %}
383
+ <!-- jadams, 2017-11-24: (1) ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="opacity: 1; display: none;" -->
384
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="display: none;">
385
+ <!-- ul class="dropdown-menu data-in="{{nav_menu_animation}}" data-out="{{nav_menu_animation}}" -->
386
+ {% else %}
387
+ <!-- jadams, 2017-11-24: (2) ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="opacity: 1; display: none;" -->
388
+ <ul class="dropdown-menu {{nav_menu_position}} raised-z{{raised_level}}" style="display: none;">
389
+ {% endif %}
390
+
391
+ {% assign item_found = 'false' %}
392
+ {% for item in menu.auth_client %}
393
+
394
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [START: check signin] -->
395
+ {% if item.mode == 'signin' %}
396
+ <li class="dropdown-item">
397
+ <a href="#" data-toggle="modal" data-target="#modalOmniSignIn"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i>{{item.title}}</a>
398
+ </li>
399
+ {% assign item_found = 'true' %}
400
+ {% endif %}
401
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [END: check signin] -->
402
+
403
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [START: check signout] -->
404
+ {% if item.mode == 'signout' %}
405
+ <li class="dropdown-item">
406
+ <a href="#" data-toggle="modal" data-target="#modalOmniSignOut"><i class="{{nav_menu_icon_style}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}}" style="color:{{nav_menu_icon_color}}"></i>{{item.title}}</a>
407
+ </li>
408
+ {% assign item_found = 'true' %}
409
+ {% endif %}
410
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [END: check signout] -->
411
+
412
+ {% if item_found == 'false' %}
413
+ <!-- [FATAL ] [j1.modules.navigator.menu.html ] [no valid menu item config found] -->
414
+ <li class="dropdown-item">
415
+ {% if item.title %}
416
+ <a href="#" >Invalid: {{item.title}}</a>
417
+ {% else %}
418
+ <a href="#" >Item invalid</a>
419
+ {% endif %}
420
+ </li>
421
+ {% endif %}
422
+
423
+ {% endfor %}
424
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [login_menu: end menu] -->
425
+ </ul>
426
+ </li>
427
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [reset menu_type for next loop] -->
428
+ {% assign menu_type = '' %}
429
+
430
+ {% comment %} Collect items having a THEMES menu
431
+ ---------------------------------------------------------------------- {% endcomment %}
432
+ {% when 'theme_select' %}
433
+ {% if themer_options.enabled %}
434
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [found menu-type: theme_select] -->
435
+ <li class="dropdown nav-item">
436
+ <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">{{menu.item}} </a>
437
+ {% if nav_menu_animation %}
438
+ <ul class="dropdown-menu raised-z{{raised_level}}">
439
+ <!-- ul class="dropdown-menu data-in="{{nav_menu_animation}}" data-out="{{nav_menu_animation}}" -->
440
+ {% else %}
441
+ <ul class="dropdown-menu raised-z{{raised_level}}">
442
+ {% endif %}
443
+ {% assign item_found = 'false' %}
444
+ {% for item in menu.theme_select %}
445
+ <!-- check for locally loaded J1 Themes -->
446
+ {% if item.local_themes and item.local_themes == 'enabled' %}
447
+ <li class="dropdown nav-item nav-sub-item">
448
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown"><i class="dropdown {{nav_menu_icon_family}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{item.title}}</a>
449
+ <ul id="local_themes" class="dropdown-menu raised-z{{raised_level}}"></ul>
450
+ </li>
451
+ {% assign item_found = 'true' %}
452
+ {% endif %} <!-- end J1 theme selector -->
453
+ <!-- check for remotely loaded (BootSwatch) Themes -->
454
+ {% if item.bootswatch_themes and item.bootswatch_themes == 'enabled' %}
455
+ <li class="dropdown nav-item nav-sub-item">
456
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown"><i class="dropdown {{nav_menu_icon_family}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{item.title}}</a>
457
+ <ul id="remote_themes" class="dropdown-menu scrollable-menu raised-z{{raised_level}}"></ul>
458
+ </li>
459
+ {% assign item_found = 'true' %}
460
+ {% endif %} <!-- end BootSwatch theme selector -->
461
+ {% if item.preview and item.preview == 'enabled' %}
462
+ <li class="dropdown-item">
463
+ <a href="{{ theme_preview }}" ><i class="dropdown {{nav_menu_icon_family}} {{nav_menu_icon_family}}-{{item.icon}} {{nav_menu_icon_size}} mr-2" style="color:{{nav_menu_icon_color}}"></i> {{item.title}}</a>
464
+ </li>
465
+ {% assign item_found = 'true' %}
466
+ {% endif %} <!-- end theme preview -->
467
+ <!-- fallback if no valid config found -->
468
+ {% if item_found == 'false' %}
469
+ <li>
470
+ {% if item.title %}
471
+ <a href="#" >Invalid: {{item.title}}</a>
472
+ {% else %}
473
+ <a href="#" >Item invalid</a>
474
+ {% endif %}
475
+ </li>
476
+ {% endif %} <!-- end fallback -->
477
+ {% endfor %}
478
+ </ul>
479
+ </li>
480
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [reset menu_type for next loop] -->
481
+ {% endif %}
482
+ {% assign menu_type = '' %}
483
+
484
+
485
+ {% comment %} Collect items failed
486
+ ---------------------------------------------------------------------- {% endcomment %}
487
+ {% else %}
488
+ <!-- [FATAL ] [j1.modules.navigator.menu.html ] [detecting menu items|type failed] -->
489
+ {% assign menu_type = '' %}
490
+
491
+ {% endcase %}
492
+
493
+ {% endfor %}
494
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end menu] -->
495
+ </ul>
496
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end navbar] -->
497
+ <!-- [INFO ] [j1.modules.navigator.menu.html ] [nav_menu_settings: end processing] -->
498
+ {% endcapture %}
499
+
500
+ {% if production %}
501
+ {% capture _LINE_FEED %}{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ cache | strip_html_comments }}{% else %}{% capture _content %}{{ cache | strip_html_comments }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ cache | strip_html_comments | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
502
+ {% else %}
503
+ {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
504
+ {% endif %}
505
+ {% assign cache = nil %}