j1-template 2023.0.6 → 2023.0.8

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/layout_metadata_generator.html +1 -1
  3. data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +7 -10
  4. data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -1
  5. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +8 -8
  6. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  7. data/_layouts/default.html +94 -73
  8. data/assets/data/banner.html +2 -2
  9. data/assets/data/panel.0.html +1021 -0
  10. data/assets/data/panel.html +4 -4
  11. data/assets/themes/j1/adapter/js/j1.js +2577 -2525
  12. data/assets/themes/j1/adapter/js/themer.js +5 -1
  13. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +55 -0
  14. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
  15. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +54 -7
  16. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  17. data/lib/j1/version.rb +1 -1
  18. data/lib/starter_web/Gemfile +1 -1
  19. data/lib/starter_web/README.md +5 -5
  20. data/lib/starter_web/_config.yml +9 -3
  21. data/lib/starter_web/_data/blocks/panel.yml +9 -9
  22. data/lib/starter_web/_data/j1_config.yml +8 -0
  23. data/lib/starter_web/_data/layouts/home.yml +1 -1
  24. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +44 -44
  25. data/lib/starter_web/_data/modules/defaults/navigator.yml +3 -1
  26. data/lib/starter_web/_data/resources.yml +29 -29
  27. data/lib/starter_web/_data/templates/feed.xml +1 -1
  28. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  29. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +0 -1
  30. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +0 -4
  31. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +0 -1
  32. data/lib/starter_web/package.json +1 -1
  33. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  34. data/lib/starter_web/utilsrv/package.json +1 -1
  35. metadata +3 -2
@@ -0,0 +1,1021 @@
1
+ ---
2
+ regenerate: true
3
+ exclude_from_search: true
4
+ ---
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/data/panel.html
10
+ # Liquid procedure to generate HTML (data) for all panel configured for
11
+ # (fragmented) AJAX load
12
+ #
13
+ # Product/Info:
14
+ # https://jekyll.one
15
+ #
16
+ # Copyright (C) 2023 Juergen Adams
17
+ #
18
+ # J1 Theme is licensed under the MIT License.
19
+ # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
20
+ # -----------------------------------------------------------------------------
21
+ # Test data:
22
+ # {{ variable | debug }}
23
+ # -----------------------------------------------------------------------------
24
+ {% endcomment %}
25
+
26
+ {% comment %} Liquid procedures
27
+ -------------------------------------------------------------------------------- {% endcomment %}
28
+ {% capture get_wave %}themes/{{site.template.name}}/procedures/blocks/get_wave.proc{% endcapture %}
29
+
30
+ {% capture select_color %}themes/{{site.template.name}}/procedures/global/select_color.proc{% endcapture %}
31
+ {% capture select_icon_size %}themes/{{site.template.name}}/procedures/global/select_icon_size.proc{% endcapture %}
32
+ {% capture create_bs_button %}themes/{{site.template.name}}/procedures/global/create_bs_button.proc{% endcapture %}
33
+ {% capture news_box %}themes/{{site.template.name}}/modules/footers/boxes/news_box.proc{% endcapture %}
34
+
35
+ {% comment %} Set config files
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+
38
+ {% comment %} Set global settings
39
+ -------------------------------------------------------------------------------- {% endcomment %}
40
+ {% assign environment = site.environment %}
41
+ {% assign debug = false %}
42
+
43
+ {% comment %} Process YML config data
44
+ ================================================================================ {% endcomment %}
45
+
46
+ {% comment %} Set config files
47
+ -------------------------------------------------------------------------------- {% endcomment %}
48
+ {% assign template_config = site.data.j1_config %}
49
+ {% assign blocks = site.data.blocks %}
50
+ {% assign panel_config_defaults = blocks.defaults.panel %}
51
+ {% assign panel_config_settings = blocks.panel %}
52
+ {% assign bs_config = template_config.bootstrap %}
53
+
54
+ {% comment %} Set config data
55
+ -------------------------------------------------------------------------------- {% endcomment %}
56
+ {% assign panel_config_defaults = panel_config_defaults.defaults %}
57
+ {% assign panel_config_settings = panel_config_settings.settings %}
58
+ {% assign bs_card_deck = bs_config.cards.card_deck %}
59
+
60
+ {% comment %} Set config options
61
+ -------------------------------------------------------------------------------- {% endcomment %}
62
+ {% assign panel_config_options = panel_config_defaults | merge: panel_config_settings %}
63
+
64
+ {% comment %} Variables
65
+ -------------------------------------------------------------------------------- {% endcomment %}
66
+ {% assign truncate_words = site.excerpt_truncate_words %}
67
+ {% assign category_blacklist = template_config.posts.category_blacklist %}
68
+
69
+ {% comment %} Set HELPER variables (used by exception panel)
70
+ -------------------------------------------------------------------------------- {% endcomment %}
71
+ {% capture panel_config_file_name %}~/_data/blocks/panel.yml{% endcapture %}
72
+
73
+
74
+ {% comment %} Collect CSS image filters
75
+ -------------------------------------------------------------------------------- {% endcomment %}
76
+ {% if panel_config_options.filters %}
77
+ {% for filter in panel_config_options.filters %}
78
+ {% capture css_filters %}{{css_filters}} {{filter[0]}}({{filter[1]}}){% endcapture %}
79
+ {% endfor %}
80
+ {% capture image_filters %}filter:{{css_filters}}{% endcapture %}
81
+ {% else %}
82
+ {% assign image_filters = '' %}
83
+ {% endif %}
84
+
85
+ {% comment %} language detection|i18n
86
+ -------------------------------------------------------------------------------- {% endcomment %}
87
+ {% if site.language == "en" %}
88
+ {% assign language = "en" %}
89
+ {% elsif site.language == "de"%}
90
+ {% assign language = "de" %}
91
+ {% else %}
92
+ {% assign language = "en" %}
93
+ {% endif %}
94
+
95
+ {% if language == "en" %}
96
+ {% assign readmore_text = "read" %}
97
+ {% assign infinite_scroll_last = "More articles can be found with the" %}
98
+ {% endif %}
99
+
100
+ {% if language == "de" %}
101
+ {% assign readmore_text = "lesen" %}
102
+ {% assign infinite_scroll_last = "Weitere Artikel finden Sie im" %}
103
+ {% endif %}
104
+
105
+ {% comment %} Detect prod mode
106
+ -------------------------------------------------------------------------------- {% endcomment %}
107
+ {% assign production = false %}
108
+ {% if environment == 'prod' or environment == 'production' %}
109
+ {% assign production = true %}
110
+ {% endif %}
111
+
112
+ {% comment %} Main
113
+ ================================================================================ {% endcomment %}
114
+ <!-- [INFO ] [~/assets/data/panel.html ] [ set meta data (robots) to exclude HTML datafiles from index ] -->
115
+ <head>
116
+ <meta name="robots" content="noindex, nofollow" />
117
+ </head>
118
+
119
+ {% for items in panel_config_settings %}
120
+ {% assign key = items[0] %}
121
+ {% assign value = items[1] %}
122
+ {% assign panel_config = value %}
123
+
124
+ {% for items in panel_config %}
125
+ {% for panels in items %}
126
+
127
+ {% if debug %} panels: {{ panels }} {% endif %}
128
+
129
+ {% comment %} parse settings for MAIN keys
130
+ -------------------------------------------------------------------------- {% endcomment %}
131
+ {% for panel in panels %}
132
+ {% assign data_type = panel | is_type %}
133
+ {% if data_type == 'hash' %}
134
+ {% assign panel_settings = panel %}
135
+
136
+ {% assign id = panel_settings.id %}
137
+ {% assign enabled = panel_settings.enabled %}
138
+ {% assign type = panel_settings.type %}
139
+ {% assign icon_family = panel_settings.icon_family | downcase %}
140
+ {% assign style = panel_settings.style %}
141
+ {% assign raised = panel_settings.raised %}
142
+ {% assign lane_span = panel_settings.lane_span %}
143
+ {% assign title = panel_settings.title|strip_newlines %}
144
+ {% assign tagline = panel_settings.tagline|strip_newlines %}
145
+ {% assign heading_position = panel_settings.position|strip_newlines %}
146
+ {% assign heading_translate = panel_settings.translate_description|strip_newlines %}
147
+ {% assign buttons = panel_settings.buttons %}
148
+ {% assign header = panel_settings.header %}
149
+ {% assign properties = panel_settings.properties %}
150
+ {% assign description_properties = panel_settings.description_properties %}
151
+ {% assign cards = panel_settings.cards %}
152
+ {% assign wave_properties = panel_settings.wave %}
153
+ {% endif %}
154
+ {% endfor %}
155
+
156
+ {% if lane_span == 'fixed' %}
157
+ {% assign container_class = 'container' %}
158
+ {% elsif lane_span == 'fluid' %}
159
+ {% assign container_class = 'container-fluid' %}
160
+ {% else %}
161
+ {% assign container_class = 'container' %}
162
+ {% endif %}
163
+
164
+ {% assign row_class = 'row' %}
165
+
166
+ {% if style == 'flat' %}
167
+ {% assign card_style = 'card-flat' %}
168
+ {% else %}
169
+ {% assign card_style = '' %}
170
+ {% endif %}
171
+
172
+ {% if raised %}
173
+ {% capture card_raised %}raised-z{{raised}}{% endcapture %}
174
+ {% else %}
175
+ {% assign card_raised = 'raised-z3' %}
176
+ {% endif %}
177
+
178
+ {% if icon_family == 'fontawesome' or icon_family == 'fontawesome5' or icon_family == 'fa'%}
179
+ {% assign icon_family = 'fa' %}
180
+ {% elsif icon_family == 'mdi' %}
181
+ {% assign icon_family = 'mdi' %}
182
+ {% elsif icon_family == 'iconify' %}
183
+ {% assign icon_family = 'iconify' %}
184
+ {% else'%}
185
+ {% assign icon_family = 'mdi' %}
186
+ {% endif %}
187
+
188
+ {% comment %} generate the HTML portion for the TOP wave element
189
+ -------------------------------------------------------------------------- {% endcomment %}
190
+ {% if wave_properties.top.enabled %}
191
+ {% include {{get_wave}} position="top" wave=wave_properties.top %}
192
+ {% assign panel_wave_top = _wave %}
193
+ {% endif %}
194
+
195
+ {% comment %} generate the HTML portion for the BOTTOM wave element
196
+ -------------------------------------------------------------------------- {% endcomment %}
197
+ {% if wave_properties.bottom.enabled %}
198
+ {% include {{get_wave}} position="bottom" wave=wave_properties.bottom %}
199
+ {% assign panel_wave_bottom = _wave %}
200
+ {% endif %}
201
+
202
+ {% comment %} process current panel
203
+ -------------------------------------------------------------------------- {% endcomment %}
204
+ {% if panel_settings.enabled %}
205
+
206
+ {% case panel_settings.type %}
207
+
208
+ {% comment %} Collect INTRO panel
209
+ ------------------------------------------------------------------------ {% endcomment %}
210
+ {% when 'intro' %}
211
+ {% assign panel_options = panel_config_defaults.intro | merge: panel_settings %}
212
+
213
+ {% assign debug = true %}
214
+ {% if debug %}<!-- panel_options: {{panel_options}} -->{% endif %}
215
+
216
+ <!-- Panel {{panel_settings.id}} -->
217
+ <section id="{{panel_settings.id}}">
218
+
219
+ {% if wave_properties.top.enabled %}
220
+ {{panel_wave_top}}
221
+ {% endif %}
222
+
223
+ <!-- Main Container -->
224
+ <div class="container {{panel_settings.properties}}">
225
+
226
+ <!-- Heading -->
227
+ {% if heading_position == 'left' %}
228
+ <div class="{{panel_settings.animate}} mb-2">
229
+ <h2 class="g-font-weight-500 mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
230
+ <p class="tagline mb-0 {{heading_translate}}"><b>{{panel_settings.tagline}}</b></p>
231
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
232
+ </div>
233
+ {% endif %}
234
+
235
+ {% if heading_position == 'center' %}
236
+ <div class="text-center mb-2">
237
+ <h2 class="mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
238
+ <p class="h4 mb-0 text-muted {{heading_translate}}"><i>{{panel_settings.tagline}}</i></p>
239
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
240
+ </div>
241
+ {% endif%}
242
+
243
+ <!-- Description -->
244
+ <div class="{{description_properties}}">{{panel_settings.description}}</div>
245
+ <!-- End Heading -->
246
+
247
+ <!-- Cards -->
248
+ <div class="card-deck {{panel_settings.id}}" style="display: none;">
249
+ {% assign card_items = cards|size %}
250
+ {% for card in cards %}
251
+
252
+ {% for items in card %}
253
+ {% for item in items[1] %}
254
+ {% assign key = item[0] %}
255
+ {% assign value = item[1] %}
256
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
257
+ {% if key == 'type' %} {% assign card_type = value %} {% endif %}
258
+ {% if key == 'properties' %} {% assign card_properties = value %} {% endif %}
259
+ {% if key == 'icon' %} {% assign card_icon = value %} {% endif %}
260
+ {% if key == 'icon_size' %} {% assign card_icon_size = value %} {% endif %}
261
+ {% if key == 'icon_family' %} {% assign card_icon_family = value | downcase %} {% endif %}
262
+ {% if key == 'icon_color' %} {% assign card_icon_color = value %} {% endif %}
263
+ {% if key == 'title' %} {% assign card_title = value | strip_newlines%} {% endif %}
264
+ {% if key == 'title_translate' %} {% assign card_title_translate = value %} {% endif %}
265
+ {% if key == 'tagline' %} {% assign card_tagline = value | strip_newlines%} {% endif %}
266
+ {% if key == 'text' %} {% assign card_text = value | strip_newlines %} {% endif %}
267
+ {% if key == 'buttons' %} {% assign card_buttons = value %} {% endif %}
268
+ {% endfor %}
269
+ {% if card_enabled == false %} {% assign card_items = card_items|minus:1 %} {% assign card_enabled = nil %} {% endif %}
270
+ {% endfor %}
271
+ {% assign col_size = 12|divided_by:card_items %}
272
+
273
+ {% include {{select_icon_size}} family=icon_family size=icon_size %}
274
+ {% assign icon_size = size %}
275
+
276
+ {% comment %} extract link for card icon
277
+ ------------------------------------------------------------------ {% endcomment %}
278
+ {% for items in card_buttons %} {% for item in items %}
279
+ {% if item[0] == 'button' %}
280
+ {% for elm in item[1] %}
281
+ {% assign key = elm[0] %}
282
+ {% assign value = elm[1] %}
283
+ {% if key == 'href' %} {% assign card_href = value %} {% endif %}
284
+ {% endfor %}
285
+ {% endif %}
286
+ {% endfor %} {% endfor %}
287
+
288
+ {% if card_type == 'text' and card_enabled %}
289
+ {% assign card_raised = 'raised-z5' %}
290
+ <article class="card raised-z0 mb-3">
291
+ <div class="card-header bg-primary pt-2 pb-2">
292
+ <div class="d-flex flex-row align-items-center">
293
+ <div class="mr-3">
294
+ {% if card_icon_family == 'iconify' %}
295
+ {% if card_icon_color == 'bg-primary' %}
296
+ <span class="{{card_icon_family}} {{card_icon_family}}-{{card_icon_size}} iconify-md-bg-primary" data-icon="{{card_icon}}" data-inline="false"></span>
297
+ {% else %}
298
+ <span class="{{card_icon_family}} {{card_icon_family}}-{{card_icon_size}} {{card_icon_family}}-{{card_icon_color}}" data-icon="{{card_icon}}" data-inline="false"></span>
299
+ {% endif %}
300
+ {% else %}
301
+ <span>
302
+ {% if card_icon_color == 'bg-primary' %}
303
+ <i class="{{card_icon_family}} {{card_icon_family}}-{{card_icon}} {{card_icon_family}}-{{card_icon_size}} mdi-md-white"></i>
304
+ {% else %}
305
+ <i class="{{card_icon_family}} {{card_icon_family}}-{{card_icon}} {{card_icon_family}}-{{card_icon_size}} {{card_icon_family}}-{{card_icon_color}}"></i>
306
+ {% endif %}
307
+ </span>
308
+ {% endif %}
309
+ </div>
310
+ <h3 class="m-0 {{card_title_translate}}">{{card_title}}</h3>
311
+ </div>
312
+ </div>
313
+
314
+ <div class="card-body g-min-height-200 r-text-300 mt-0">{{card_text}}</div>
315
+ <div class="card-footer r-text-200 md-grey-900 text-lowercase">
316
+ {% for data in card_buttons %} {% for item in data %} {% for button in item[1] %}
317
+ {% assign key = button[0] %}
318
+ {% assign value = button[1] %}
319
+ {% if key == 'text' %} {% assign button_text = value %} {% endif %}
320
+ {% if key == 'class' %} {% assign button_class = value %} {% endif %}
321
+ {% if key == 'icon' %} {% assign button_icon = value %} {% endif %}
322
+ {% if key == 'icon_family' %} {% assign button_icon_family = value %} {% endif %}
323
+ {% if key == 'icon_color' %} {% assign button_icon_color = value %} {% endif %}
324
+ {% if key == 'icon_size' %} {% assign button_icon_size = value %} {% endif %}
325
+ {% if key == 'href' %} {% assign button_href = value %} {% endif %}
326
+ {% if key == 'target' %} {% assign button_target = value %} {% endif %}
327
+ {% endfor %} {% endfor %} {% endfor %}
328
+
329
+ {% if button_target == null %}
330
+ <a class="card-link md-grey-900" href="{{button_href}}">{{readmore_text}} · {{button_text}}</a>
331
+ {% else %}
332
+ <a class="card-link md-grey-900" href="{{button_href}}" target="{{button_target}}">{{readmore_text}} · {{button_text}}</a>
333
+ {% endif %}
334
+ </div>
335
+
336
+ </article>
337
+ {% endif %}
338
+
339
+ <!-- Calculate 'column setters' to manage BS break points for 'responsive' card deck (rcard-deck) -->
340
+ {% assign sm = forloop.index | modulo: bs_card_deck.break_on_sm %}
341
+ {% assign md = forloop.index | modulo: bs_card_deck.break_on_md %}
342
+ {% assign lg = forloop.index | modulo: bs_card_deck.break_on_lg %}
343
+ {% assign xl = forloop.index | modulo: bs_card_deck.break_on_xl %}
344
+
345
+ <!-- Add 'column setters' for BS break points -->
346
+ {% if sm == 0 %}
347
+ <div class="w-100 d-none d-sm-block d-md-none"> <!-- break on sm --> </div>
348
+ {% endif %}
349
+
350
+ {% if md == 0 %}
351
+ <div class="w-100 d-none d-md-block d-lg-none"> <!-- break on md --> </div>
352
+ {% endif %}
353
+
354
+ {% if lg == 0 %}
355
+ <div class="w-100 d-none d-lg-block d-xl-none"> <!-- break on lg --> </div>
356
+ {% endif %}
357
+
358
+ {% if xl == 0 %}
359
+ <div class="w-100 d-none d-xl-block"> <!-- break on xl --> </div>
360
+ {% endif %}
361
+ {% endfor %}
362
+ </div>
363
+ <!-- End Cards -->
364
+
365
+ </div>
366
+ <!-- END main container -->
367
+
368
+ {% if wave_properties.bottom.enabled %}
369
+ {{panel_wave_bottom}}
370
+ {% endif %}
371
+
372
+ </section>
373
+
374
+ <!-- END Panel {{panel_settings.id}} -->
375
+
376
+ {% comment %} Reset element variables (already processed)
377
+ ------------------------------------------------------------------------ {% endcomment %}
378
+ {% assign panel_settings = nil %}
379
+ {% assign card_enabled = nil %}
380
+
381
+
382
+ {% comment %} Collect PLAN panel
383
+ ------------------------------------------------------------------------ {% endcomment %}
384
+ {% when 'plan' %}
385
+ {% assign panel_options = panel_config_defaults.plan | merge: panel_settings %}
386
+ {% if debug %}<!-- panel_options: {{panel_options}} -->{% endif %}
387
+
388
+ {% assign plan_details_page = panel_options.plan_details_page %}
389
+
390
+ {% if panel_options.provider contains 'Github' %}
391
+ {% assign provider_url = 'https://github.com/sponsors' %}
392
+ {% else %}
393
+ {% assign provider_url = 'https://deadlink.de/' %}
394
+ {% endif %}
395
+
396
+ <!-- Panel {{panel_settings.id}} -->
397
+ <section id="{{panel_settings.id}}">
398
+
399
+ {% if wave_properties.top.enabled %}
400
+ {{panel_wave_top}}
401
+ {% endif %}
402
+
403
+ <!-- Main Container -->
404
+ <div class="container {{panel_settings.properties}}">
405
+
406
+ <!-- Heading -->
407
+ <div>
408
+
409
+ {% if heading_position == 'left' %}
410
+ <div class="{{panel_settings.animate}} mb-2">
411
+ <h2 class="g-font-weight-500 mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
412
+ <p class="tagline mb-0 {{heading_translate}}"><b>{{panel_settings.tagline}}</b></p>
413
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
414
+ </div>
415
+ {% endif %}
416
+
417
+ {% if heading_position == 'center' %}
418
+ <div class="text-center mb-2">
419
+ <h2 class="mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
420
+ <p class="h4 mb-0 text-muted {{heading_translate}}"><i>{{panel_settings.tagline}}</i></p>
421
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
422
+ </div>
423
+ {% endif%}
424
+
425
+ <!-- Description -->
426
+ <div class="{{description_properties}}">{{panel_settings.description}}</div>
427
+
428
+ </div>
429
+ <!-- End Heading -->
430
+
431
+ <!-- Cards -->
432
+ {% comment %} calculate the number of card_items to be written
433
+ card_items: {{ card_items | debug }}
434
+ -------------------------------------------------------------------- {% endcomment %}
435
+ {% assign card_items = cards|size %}
436
+ {% for card in cards %}
437
+ {% for items in card %}
438
+ {% for item in items[1] %}
439
+ {% assign key = item[0] %}
440
+ {% assign value = item[1] %}
441
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
442
+ {% endfor %}
443
+ {% if card_enabled == false %}
444
+ {% assign card_items = card_items|minus:1 %} {% assign card_enabled = nil %} {% endif %}
445
+ {% endfor %}
446
+ {% endfor %}
447
+
448
+ {% comment %} Set a scroller if enabled (cuurently NOT supported)
449
+ --------------------------------------------------------------------
450
+ {% if panel_settings.scroller %}
451
+ <div id="{{panel_settings.id}}" style="display: none;">
452
+ {% else %}
453
+ <div id="{{panel_settings.id}}">
454
+ {% endif %}
455
+ -------------------------------------------------------------------- {% endcomment %}
456
+
457
+ <div class="container-fluid" role="main">
458
+ <div id="plans-container" class="container mt-5">
459
+ <div class="row g-0">
460
+
461
+ {% for card in cards %}
462
+
463
+ {% comment %} extract card properties (AoH)
464
+ ------------------------------------------------------------ {% endcomment %}
465
+ {% for items in card %}
466
+ {% for item in items[1] %}
467
+ {% assign key = item[0] %}
468
+ {% assign value = item[1] %}
469
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
470
+ {% if key == 'recommended' %} {% assign plan_recommended = value %} {% endif %}
471
+ {% if key == 'name' %} {% assign card_title = value | strip_newlines%} {% endif %}
472
+ {% if key == 'name_translate' %} {% assign card_title_translate = value %} {% endif %}
473
+ {% if key == 'price' %} {% assign price = value %} {% endif %}
474
+ {% if key == 'benefits' %} {% assign benefits = value %} {% endif %}
475
+ {% if key == 'disbenefits' %} {% assign disbenefits = value %} {% endif %}
476
+ {% if key == 'buttons' %} {% assign card_buttons = value %} {% endif %}
477
+ {% endfor %}
478
+ {% endfor %}
479
+
480
+ {% assign col_size = 12|divided_by:card_items %}
481
+
482
+ {% comment %} extract sponsor link from button data (HoH)
483
+ ------------------------------------------------------------ {% endcomment %}
484
+ {% for items in card_buttons %} {% for item in items %}
485
+ {% if item[0] == 'href' %}
486
+ {% for elm in item[1] %}
487
+ {% assign key = elm[0] %}
488
+ {% assign value = elm[1] %}
489
+ {% if key == 'tier_id' %}
490
+ {% if elm[1] contains 'plan_details_page' %}
491
+ {% assign sponsor_link = plan_details_page %}
492
+ {% else %}
493
+ {% capture sponsor_link %}{{provider_url}}/{{panel_options.account}}/sponsorships?tier_id={{elm[1]}}{% endcapture %}
494
+ {% endif %}
495
+ {% endif %}
496
+ {% endfor %}
497
+ {% endif %}
498
+ {% endfor %} {% endfor %}
499
+
500
+ {% if card_enabled %}
501
+ <div class="col-lg-{{col_size}} col-sm-6 mt-2 mb-2">
502
+ {% if plan_recommended %}
503
+ <div class="plan-card recommended raised-z2">
504
+ {% else %}
505
+ <div class="plan-card raised-z2">
506
+ {% endif %}
507
+
508
+ <div class="plan-name {{card_title_translate}}">{{card_title}}</div>
509
+ <div class="plan-price">
510
+ <div class="price-currency">{{price.currency}}</div>
511
+ <div class="price-amount">{{price.amount}}</div>
512
+ <div class="price-period">/{{price.period}}</div>
513
+ </div>
514
+ <hr>
515
+
516
+ <div class="plan-benefits">
517
+ {% comment %} extract benefits (AoH)
518
+ ------------------------------------------------------ {% endcomment %}
519
+ {% for benefit in benefits %}
520
+ {% for elm in benefit %}
521
+ {% assign value = elm[1] %}
522
+ <div class="plan-benefit">{{value}}</div>
523
+ {% endfor %}
524
+ {% endfor %}
525
+ {% comment %} disbenefit benefits (AoH)
526
+ ------------------------------------------------------ {% endcomment %}
527
+ {% for disbenefit in disbenefits %}
528
+ {% for elm in disbenefit %}
529
+ {% assign value = elm[1] %}
530
+ <div class="plan-disbenefit">{{value}}</div>
531
+ {% endfor %}
532
+ {% endfor %}
533
+ </div>
534
+ <a class="btn btn-primary plan-select" href="{{sponsor_link}}" target="_blank" rel="noopener noreferrer">Select</a>
535
+ </div>
536
+ </div>
537
+ {% endif %}
538
+ <!-- End Card -->
539
+ {% endfor %}
540
+ </div>
541
+ </div>
542
+ </div> <!-- End Cards -->
543
+ {% comment %} END cards
544
+ -------------------------------------------------------------------- {% endcomment %}
545
+
546
+ </div> <!-- END main container -->
547
+
548
+ {% if wave_properties.bottom.enabled %}
549
+ {{panel_wave_bottom}}
550
+ {% endif %}
551
+
552
+ </section> <!-- END Panel {{panel_settings.id}} -->
553
+
554
+ {% comment %} Reset element variables (already processed)
555
+ ------------------------------------------------------------------------ {% endcomment %}
556
+ {% assign panel_settings = nil %}
557
+
558
+ {% comment %} END PLAN panel
559
+ ------------------------------------------------------------------------ {% endcomment %}
560
+
561
+
562
+ {% comment %} Collect SERVICE panel
563
+ ------------------------------------------------------------------------ {% endcomment %}
564
+ {% when 'service' %}
565
+ {% if debug %}<!-- panel_defaults: {{panel_config_defaults.service}} -->{% endif %}
566
+ {% if debug %}<!-- panel_settings: {{panel_settings}} -->{% endif %}
567
+
568
+ {% assign panel_options = panel_config_defaults.service | merge: panel_settings %}
569
+ {% if debug %}<!-- panel_options: {{panel_options}} -->{% endif %}
570
+
571
+ <!-- Panel {{panel_settings.id}} -->
572
+ <section id="{{panel_settings.id}}">
573
+
574
+ {% if wave_properties.top.enabled %}
575
+ {{panel_wave_top}}
576
+ {% endif %}
577
+
578
+ <!-- Main Container -->
579
+ <div class="container {{panel_settings.properties}}">
580
+
581
+ <!-- Heading -->
582
+ <div class="noclass">
583
+
584
+ {% if heading_position == 'left' %}
585
+ <div class="{{panel_settings.animate}} mb-2">
586
+ <h2 class="g-font-weight-500 mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
587
+ <p class="tagline mb-0 {{heading_translate}}"><b>{{panel_settings.tagline}}</b></p>
588
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
589
+ </div>
590
+ {% endif %}
591
+
592
+ {% if heading_position == 'center' %}
593
+ <div class="text-center mb-2">
594
+ <h2 class="mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
595
+ <p class="h4 mb-0 text-muted {{heading_translate}}"><i>{{panel_settings.tagline}}</i></p>
596
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
597
+ </div>
598
+ {% endif%}
599
+
600
+ <!-- Description -->
601
+ <div class="{{description_properties}}">{{panel_settings.description}}</div>
602
+
603
+ </div>
604
+ <!-- END Heading -->
605
+
606
+ <!-- Cards -->
607
+ {% comment %} calculate the number of card_items to be written
608
+ -------------------------------------------------------------------- {% endcomment %}
609
+ {% assign card_items = cards|size %}
610
+ {% for card in cards %}
611
+ {% for items in card %}
612
+ {% for item in items[1] %}
613
+ {% assign key = item[0] %}
614
+ {% assign value = item[1] %}
615
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
616
+ {% endfor %}
617
+ {% if card_enabled == false %}
618
+ {% assign card_items = card_items|minus:1 %} {% assign card_enabled = nil %} {% endif %}
619
+ {% endfor %}
620
+ {% endfor %}
621
+
622
+ {% comment %} Set a scroller if enabled
623
+ -------------------------------------------------------------------- {% endcomment %}
624
+ {% if panel_settings.scroller %}
625
+ <div class="noclass {{panel_settings.id}}" style="display: none;">
626
+ {% else %}
627
+ <div class="noclass {{panel_settings.id}}">
628
+ {% endif %}
629
+
630
+ <ul id="{{panel_settings.id}}-scroll-group" class="scroll-group scroll-group-horizontal align-items-stretch flex-wrap">
631
+ {% for card in cards %}
632
+
633
+ {% comment %} extract card properties (AoH)
634
+ ------------------------------------------------------------------ {% endcomment %}
635
+ {% for items in card %}
636
+ {% for item in items[1] %}
637
+ {% assign key = item[0] %}
638
+ {% assign value = item[1] %}
639
+ {% if key == 'enabled' %} {% assign card_enabled = value %} {% endif %}
640
+ {% if key == 'id' %} {% assign card_id = value %} {% endif %}
641
+ {% if key == 'href' %} {% assign card_href = value %} {% endif %}
642
+ {% if key == 'icon' %} {% assign card_icon = value %} {% endif %}
643
+ {% if key == 'icon_family' %} {% assign icon_family = value | downcase %} {% endif %}
644
+ {% if key == 'icon_size' %} {% assign icon_size = value %} {% endif %}
645
+ {% if key == 'icon_color' %} {% assign icon_color = value %} {% endif %}
646
+ {% if key == 'title' %} {% assign card_title = value | strip_newlines %} {% endif %}
647
+ {% if key == 'tagline' %} {% assign card_tagline = value | strip_newlines %} {% endif %}
648
+ {% if key == 'header_translate' %} {% assign card_header_translate = value %} {% endif %}
649
+ {% if key == 'text' %} {% assign card_text = value | strip_newlines %} {% endif %}
650
+ {% if key == 'services' %} {% assign services = value %} {% endif %}
651
+ {% endfor %}
652
+ {% endfor %}
653
+
654
+ {% if card_enabled %}
655
+ <li id="{{panel_settings.id}}-scroll-item" class="scroll-group-item items-{{card_items}} p-0">
656
+ <article class="card raised-z0 card-same-height mb-3">
657
+ <div class="card-profile mb-0">
658
+
659
+ <div class="card-icon mt-4">
660
+ <a href="{{card_href}}" class="link-no-decoration">
661
+ <i class="card-icon-circle raised-z0 {{icon_family}} {{icon_family}}-{{card_icon}} {{icon_size}} {{icon_color}} card-icon-background-color-primary"></i>
662
+ </a>
663
+ </div>
664
+
665
+ <div class="content mt-4">
666
+
667
+ <div class="card-header">
668
+ <h6 class="notoc category text-gray {{card_header_translate}}">{{card_title}}</h6>
669
+ <h4 class="notoc card-title {{card_header_translate}}">{{card_tagline}}</h4>
670
+ </div>
671
+ <div class="card-body g-min-height-350 r-text-300 mt-0">{{card_text}}</div>
672
+
673
+ <div class="card-footer">
674
+ <div class="row {{panel_settings.id}}">
675
+ <div id="{{card_id}}" class="accordion">
676
+ {% for list in services %}
677
+ <div class="card">
678
+ <div class="card-header" id="headingOne">
679
+ <h2 class="clearfix mb-0">
680
+ <a class="btn btn-link card-profile collapsed" href="#void" data-bs-toggle="collapse" data-bs-target="#{{list.service.id}}" aria-expanded="false" aria-controls="{{list.service.id}}">
681
+ <!-- i class="fa fa-chevron-circle-down"></i -->
682
+ <i class="fa fa-chevron-circle-right"></i>
683
+ {{list.service.title}}
684
+ </a>
685
+ </h2>
686
+ </div>
687
+ <div id="{{list.service.id}}" class="collapse mb-4" aria-labelledby="{{list.service.id}}" data-bs-parent="#{{card_id}}">
688
+ <div class="footer-body ml-5 r-text-200">
689
+ {{list.service.description}}
690
+ <hr>
691
+ <a class="card-link text-lowercase" href="{{list.service.href}}">
692
+ {{readmore_text}} · {{list.service.title}}
693
+ </a>
694
+ </div>
695
+ </div>
696
+ </div>
697
+ {% endfor %}
698
+ </div>
699
+ </div>
700
+ </div>
701
+
702
+ </div>
703
+
704
+ </div>
705
+ </article>
706
+ </li>
707
+ <!-- end service card -->
708
+ {% endif %}
709
+
710
+ {% endfor %}
711
+ {% comment %} END cards
712
+ -------------------------------------------------------------------- {% endcomment %}
713
+ </ul>
714
+ </div>
715
+ <!-- End Cards -->
716
+ </div>
717
+ <!-- End Main Container -->
718
+
719
+ {% if wave_properties.bottom.enabled %}
720
+ {{panel_wave_bottom}}
721
+ {% endif %}
722
+
723
+ </section>
724
+ <!-- END Panel {{panel_settings.id}} -->
725
+
726
+ {% comment %} Reset element variables (already processed)
727
+ ------------------------------------------------------------------------ {% endcomment %}
728
+ {% assign panel_settings = nil %}
729
+
730
+ {% comment %} END SERVICES panel
731
+ ------------------------------------------------------------------------ {% endcomment %}
732
+
733
+
734
+ {% comment %} Collect NEWS panel
735
+ ------------------------------------------------------------------------ {% endcomment %}
736
+ {% when 'news' %}
737
+
738
+ {% assign panel_options = panel_config_defaults.news|merge: panel_settings %}
739
+
740
+ {% if debug %}<!-- panel_options: {{panel_options}} -->{% endif %}
741
+
742
+ <!-- Panel {{panel_settings.id}} -->
743
+ <section id="{{panel_settings.id}}">
744
+
745
+ {% if wave_properties.top.enabled %}
746
+ {{panel_wave_top}}
747
+ {% endif %}
748
+
749
+ <!-- Main Container -->
750
+ <div class="container {{panel_settings.properties}}">
751
+
752
+ {% if panel_options.title %}
753
+ <!-- Heading -->
754
+ <div>
755
+
756
+ {% if heading_position == 'left' %}
757
+ <div class="{{panel_settings.animate}} mb-2">
758
+ <h2 class="g-font-weight-500 mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
759
+ <p class="tagline mb-0 {{heading_translate}}"><b>{{panel_settings.tagline}}</b></p>
760
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
761
+ </div>
762
+ {% endif %}
763
+
764
+ {% if heading_position == 'center' %}
765
+ <div class="text-center mb-2">
766
+ <h2 class="mb-0 {{heading_translate}}">{{panel_settings.title}}</h2>
767
+ <p class="h4 mb-0 text-muted {{heading_translate}}"><i>{{panel_settings.tagline}}</i></p>
768
+ <div class="d-inline-block g-width-50 g-height-2 bg-primary mb-2"></div>
769
+ </div>
770
+ {% endif%}
771
+
772
+ <!-- Description -->
773
+ <div class="{{panel_settings.description_properties}}">{{panel_options.description}}</div>
774
+
775
+ </div>
776
+ <!-- End Heading -->
777
+ {% endif %}
778
+
779
+ {% for card in panel_options.cards %}
780
+ {% for items in card %}
781
+ {% for item in items[1] %}
782
+ {% assign key = item[0] %}
783
+ {% assign value = item[1] %}
784
+ {% if key == 'infinite_scroll' %} {% assign card_infinite_scroll = value %} {% endif %}
785
+ {% if key == 'animate' %} {% assign card_animate = value %} {% endif %}
786
+ {% if key == 'block' %} {% assign card_block = value %} {% endif %}
787
+ {% if key == 'num_per_row' %} {% assign cards_per_row = value %} {% endif %}
788
+ {% if key == 'max_posts' %} {% assign posts_max = value %} {% endif %}
789
+ {% if key == 'truncatewords' %} {% assign truncatewords = value %} {% endif %}
790
+ {% endfor %}
791
+ {% endfor %}
792
+
793
+ {% assign posts_written = 0 %}
794
+ {% assign last_post_written = false %}
795
+
796
+ {% comment %} default for card_block: card-deck
797
+ ------------------------------------------------------------------ {% endcomment %}
798
+ {% if card_block == "card-deck" or card_block == "card-list" %}
799
+ <!-- [INFO ] [~/assets/data/panel.html ] [ blocktype detected as: {{card_block}} ] -->
800
+ {% else %}
801
+ <!-- [INFO ] [~/assets/data/panel.html ] [ set blocktype to: card-deck ] -->
802
+ {% assign card_block = "card-deck" %}
803
+ {% endif %}
804
+
805
+ <!-- [INFO ] [~/assets/data/panel.html ] [ blocktype detected as: {{card_block}} ] -->
806
+ {% if card_block == 'card-list' %}
807
+ <div class="no-class">
808
+ <ul id="{{panel_settings.id}}-scroll-group" class="scroll-group scroll-group-horizontal align-items-stretch flex-wrap">
809
+ <!-- [INFO ] [~/assets/data/panel.html ] [ write post items (card_block == 'card-list')] -->
810
+ {% for post in site.posts %}
811
+ {% if posts_written == posts_max %} {% assign last_post_written = true %} {% break %}{% endif %}
812
+
813
+ {% if last_post_written != true %}
814
+ {% assign posts_written = posts_written|plus:1 %}
815
+ <li id="{{panel_settings.id}}-scroll-item" class="scroll-group-item items-{{cards_per_row}} p-0">
816
+ <article class="card card-same-height raised-z0 mb-5">
817
+ {% if post.image %}
818
+ {% if post.image.path %}
819
+ <img class="img-fluid img-object--cover g-height-300" src="{{post.image.path}}" alt="{{post.title}}" style="{{image_filters}};">
820
+ {% assign post_width = '80x' %}
821
+ {% else %}
822
+ <img class="img-fluid img-object--cover g-height-300" src="{{post.image}}" alt="{{post.title}}" style="{{image_filters}};">
823
+ {% assign post_width = '80x' %}
824
+ {% endif %}
825
+ {% else %}
826
+ <img class="mt-2" src="" alt="">
827
+ {% assign post_width = '100x' %}
828
+ {% endif %}
829
+ <h3 class="card-header bg-primary notoc notranslate">{{post.title}}</h3>
830
+ <!-- Body|Excerpt -->
831
+ <div class="card-body r-text-300 mt-0">
832
+ {% comment %} {{post.excerpt|truncatewords: 50|replace:'...',' ...'|remove:'<div class="paragraph">'|remove:'</div>'|remove:'<p>'|remove:'</p>'}} {% endcomment %}
833
+ {{post.excerpt|truncatewords: truncate_words}}
834
+ </div>
835
+ <!-- End Body|Excerpt -->
836
+ <div class="card-footer r-text-200">
837
+
838
+ <div class="card-footer-text">
839
+ {% if language == "en" %}
840
+ <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
841
+ {% endif %}
842
+ {% if language == "de" %}
843
+ <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
844
+ {% endif %}
845
+
846
+ <!-- Cleanup categories by given blacklist -->
847
+ {% assign my_categories = post.categories | difference: category_blacklist %}
848
+
849
+ <!-- Build element strings -->
850
+ {% assign categories = my_categories |join: " · " %}
851
+ {% assign tags = post.tags | join: " · " %}
852
+
853
+ <p class="result-item-text small mb-3 notranslate">
854
+ <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i>
855
+ <span class="sr-categories">{{categories}}</span>
856
+ <br>
857
+ <i class="mdi mdi-tag mdi-18px mr-1"></i>
858
+ <span class="sr-tags">{{tags}}</span>
859
+ </p>
860
+ </div>
861
+ <a class="card-link md-grey-900 text-lowercase"
862
+ href="{{post.url}}">
863
+ {{readmore_text}} · {{post.tagline}}
864
+ </a>
865
+ </div>
866
+ </article>
867
+ </li>
868
+ {% endif %}
869
+ {% endfor %}
870
+
871
+ </ul>
872
+ </div>
873
+ {% endif %}
874
+
875
+ {% if card_block == 'card-deck' %}
876
+ <!-- Recent posts -->
877
+ <div class="row card-deck">
878
+ <!-- [INFO ] [~/assets/data/panel.html ] [ write post items (card_block == 'card-deck')] -->
879
+ {% for post in site.posts %} {% for category in post.categories %}
880
+ {% if posts_written == posts_max %} {% assign last_post_written = true %} {% break %}{% endif %}
881
+
882
+ {% if category == post_category and last_post_written != true %}
883
+ {% assign posts_written = posts_written|plus:1 %}
884
+ <!-- Posts -->
885
+ <article class="card raised-z0 mb-3">
886
+ {% if post.image %}
887
+ {% if post.image.path %}
888
+ <img class="img-fluid img-object--cover g-height-300" src="{{post.image.path}}" alt="{{post.title}}" style="{{image_filters}};">
889
+ {% assign post_width = '80x' %}
890
+ {% else %}
891
+ <img class="img-fluid img-object--cover g-height-300" src="{{post.image}}" alt="{{post.title}}" style="{{image_filters}};">
892
+ {% assign post_width = '80x' %}
893
+ {% endif %}
894
+ {% else %}
895
+ <img class="mt-2" src="" alt="">
896
+ {% assign post_width = '100x' %}
897
+ {% endif %}
898
+ <h3 class="card-header bg-primary notoc">{{post.title}}</h3>
899
+ <!-- Body|Excerpt -->
900
+ <div class="card-body r-text-300 mt-0">
901
+ {% comment %} {{post.excerpt|truncatewords: 50|replace:'...',' ...'|remove:'<div class="paragraph">'|remove:'</div>'|remove:'<p>'|remove:'</p>'}} {% endcomment %}
902
+ {{post.excerpt|truncatewords: truncate_words}}
903
+ </div>
904
+ <!-- End Body|Excerpt -->
905
+ <div class="card-footer r-text-200">
906
+
907
+ <div class="card-footer-text">
908
+ {% if language == "en" %}
909
+ <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%Y %B, %e"}}
910
+ {% endif %}
911
+ {% if language == "de" %}
912
+ <i class="mdi mdi-calendar-blank md-grey-900 mr-1"></i>{{post.date | localize: "%-d. %B %Y"}}
913
+ {% endif %}
914
+ </div>
915
+ <a class="card-link md-grey-900 text-lowercase"
916
+ href="{{post.url}}">
917
+ {{readmore_text}} · {{post.tagline}}
918
+ </a>
919
+ </div>
920
+ </article>
921
+ <!-- End Posts -->
922
+
923
+ <!-- Calculate 'column setters' to manage BS break points for 'responsive' card deck (rcard-deck) -->
924
+ {% assign sm = posts_written | modulo: bs_card_deck.break_on_sm %}
925
+ {% assign md = posts_written | modulo: bs_card_deck.break_on_md %}
926
+ {% assign lg = posts_written | modulo: bs_card_deck.break_on_lg %}
927
+ {% assign xl = posts_written | modulo: bs_card_deck.break_on_xl %}
928
+
929
+ <!-- Add 'column setters' for BS break points -->
930
+ {% if sm == 0 %}
931
+ <div class="w-100 d-none d-sm-block d-md-none"> <!-- break on sm --> </div>
932
+ {% endif %}
933
+
934
+ {% if md == 0 %}
935
+ <div class="w-100 d-none d-md-block d-lg-none"> <!-- break on md --> </div>
936
+ {% endif %}
937
+
938
+ {% if lg == 0 %}
939
+ <div class="w-100 d-none d-lg-block d-xl-none"> <!-- break on lg --> </div>
940
+ {% endif %}
941
+
942
+ {% if xl == 0 %}
943
+ <div class="w-100 d-none d-xl-block" ><!-- break on xl --> </div>
944
+ {% endif %}
945
+
946
+ {% endif %}
947
+ {% endfor %} {% endfor %}
948
+ </div>
949
+ {% endif %}
950
+ <!-- End recent posts -->
951
+ {% endfor %}
952
+
953
+ </div>
954
+ <!-- End Main Container -->
955
+
956
+ {% if wave_properties.bottom.enabled %}
957
+ {{panel_wave_bottom}}
958
+ {% endif %}
959
+
960
+ </section>
961
+ <!-- End news panel: {{panel_settings.id}} -->
962
+
963
+ {% comment %} Reset element variables (already processed)
964
+ ------------------------------------------------------------------------ {% endcomment %}
965
+ {% assign panel_settings = nil %}
966
+
967
+ {% comment %} END NEWS panel
968
+ ------------------------------------------------------------------------ {% endcomment %}
969
+
970
+ {% else %}
971
+ {% comment %} Collect EXCEPTION panel: given type NOT found
972
+ ------------------------------------------------------------------------ {% endcomment %}
973
+ {% unless panel_settings.id == 'exception_container' %}
974
+ <div id="exception_container">
975
+ <div id="{{panel_settings.id}}" class="container-fluid no-padding">
976
+ <div class="col-md-12 col-sm-12 col-xs-12 no-padding">
977
+ <div class="box">
978
+ <div class="content content-danger">
979
+ <h2 class="notoc">
980
+ <i class="mdi mdi-alarm-light mdi-3x mdi-md-red mr-1"></i>
981
+ panel of type <big>{{panel_settings.type}}</big> not found
982
+ </h2>
983
+ <h4 class="notoc box-title">Check your configuration at {{panel_config_file_name}}</h4>
984
+ <div class="box-description">
985
+ Don't worry about this. Maybe you've a typo in the panel configuration.
986
+ Check the panel config file for the unknown type. <br />
987
+ Check for something wrong like:
988
+ <div class="mt-2 mb-1">
989
+ <b>id: {{panel_settings.id}}</b> <br />
990
+ <b>type: {{panel_settings.type}}</b> <br />
991
+ <b>comment: {{panel_settings.comment}}</b>
992
+ </div>
993
+ </div>
994
+ </div>
995
+ </div>
996
+ </div>
997
+ </div> <!-- End panel {{panel_settings.id}} -->
998
+ </div> <!-- End exception_container -->
999
+ {% endunless %}
1000
+
1001
+ {% comment %} Reset element variables (already processed)
1002
+ ------------------------------------------------------------------------ {% endcomment %}
1003
+ {% assign panel_settings = nil %}
1004
+
1005
+ {% comment %} END EXEPTION panel
1006
+ ------------------------------------------------------------------------ {% endcomment %}
1007
+
1008
+ {% endcase %}
1009
+ {% endif %} {% comment %} endif enabled {% endcomment %}
1010
+
1011
+ {% endfor %} {% comment %} END panels {% endcomment %}
1012
+ {% endfor %} {% comment %} END panel_config {% endcomment %}
1013
+ {% endfor %} {% comment %} END panel_config_settings {% endcomment %}
1014
+
1015
+ {% endcapture %}
1016
+ {% if production %}
1017
+ {% 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 %}
1018
+ {% else %}
1019
+ {{ cache | pretty_print | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
1020
+ {% endif %}
1021
+ {% assign cache = nil %}