j1-template 2023.0.7 → 2023.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 %}