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.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +1 -1
- data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +7 -10
- data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/resource_writer.proc +8 -8
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
- data/_layouts/default.html +94 -73
- data/assets/data/banner.html +2 -2
- data/assets/data/panel.0.html +1021 -0
- data/assets/data/panel.html +4 -4
- data/assets/themes/j1/adapter/js/j1.js +2577 -2525
- data/assets/themes/j1/adapter/js/themer.js +5 -1
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +55 -0
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +54 -7
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +9 -3
- data/lib/starter_web/_data/blocks/panel.yml +9 -9
- data/lib/starter_web/_data/j1_config.yml +8 -0
- data/lib/starter_web/_data/layouts/home.yml +1 -1
- data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +44 -44
- data/lib/starter_web/_data/modules/defaults/navigator.yml +3 -1
- data/lib/starter_web/_data/resources.yml +29 -29
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +0 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +0 -4
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +0 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- 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 %}
|