j1-template 2024.3.19 → 2024.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/amplitude_app.html +174 -150
  3. data/assets/data/swiper_app.2.html +757 -0
  4. data/assets/data/swiper_app.4.html +769 -0
  5. data/assets/data/swiper_app.html +171 -27
  6. data/assets/theme/j1/adapter/js/amplitude.js +817 -165
  7. data/assets/theme/j1/adapter/js/swiper.js +63 -15
  8. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css +111 -101
  9. data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -1
  10. data/assets/theme/j1/core/css/themes/unodark/bootstrap.css +111 -101
  11. data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
  12. data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +111 -101
  13. data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  14. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +140 -219
  15. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +1 -1
  16. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +117 -23
  17. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -1
  18. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +323 -493
  19. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +1 -2
  20. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.css +20 -73
  21. data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.min.css +1 -1
  22. data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +2062 -843
  23. data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/large.scss +439 -264
  24. data/assets/theme/j1/modules/swiperjs/css/modules/layoutBase.css +16 -0
  25. data/assets/theme/j1/modules/swiperjs/css/modules/layoutBase.min.css +16 -0
  26. data/assets/theme/j1/modules/swiperjs/css/modules/layoutExpanding.css +24 -24
  27. data/assets/theme/j1/modules/swiperjs/css/modules/layoutExpanding.min.css +1 -235
  28. data/assets/theme/j1/modules/swiperjs/css/modules/layoutNeighbor.min.css +2 -2
  29. data/assets/theme/j1/modules/swiperjs/css/modules/layoutParallax.css +16 -0
  30. data/assets/theme/j1/modules/swiperjs/css/modules/layoutParallax.min.css +16 -0
  31. data/assets/theme/j1/modules/swiperjs/css/modules/layoutStacked.css +6 -7
  32. data/assets/theme/j1/modules/swiperjs/css/modules/layoutStacked.min.css +1 -82
  33. data/assets/theme/j1/modules/swiperjs/css/modules/layoutThumbs.min.css +2 -29
  34. data/assets/theme/j1/modules/swiperjs/css/theme/uno.css +29 -12
  35. data/assets/theme/j1/modules/swiperjs/css/theme/uno.min.css +1 -1
  36. data/assets/theme/j1/modules/swiperjs/js/modules/layoutBase.js +25 -0
  37. data/assets/theme/j1/modules/swiperjs/js/modules/layoutBase.min.js +25 -0
  38. data/assets/theme/j1/modules/swiperjs/js/modules/layoutExpanding.js +1 -5
  39. data/assets/theme/j1/modules/swiperjs/js/modules/layoutExpanding.min.js +1 -5
  40. data/assets/theme/j1/modules/swiperjs/js/modules/layoutNeighbor.js +12 -14
  41. data/assets/theme/j1/modules/swiperjs/js/modules/layoutNeighbor.min.js +1 -17
  42. data/assets/theme/j1/modules/swiperjs/js/modules/layoutPanorama.js +0 -1
  43. data/assets/theme/j1/modules/swiperjs/js/modules/layoutParallax.js +25 -0
  44. data/assets/theme/j1/modules/swiperjs/js/modules/layoutParallax.min.js +25 -0
  45. data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.0.js +114 -0
  46. data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.1.js +93 -0
  47. data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.js +42 -13
  48. data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.min.js +17 -0
  49. data/assets/theme/j1/modules/swiperjs/js/modules/layoutThumbs.js +76 -25
  50. data/assets/theme/j1/modules/swiperjs/js/modules/layoutThumbs.min.js +1 -17
  51. data/assets/theme/j1/modules/swiperjs/js/swiper-bundle.js +9152 -9131
  52. data/assets/theme/j1/modules/swiperjs/js/swiper-bundle.min.js +1 -1
  53. data/lib/j1/version.rb +1 -1
  54. data/lib/starter_web/README.md +5 -5
  55. data/lib/starter_web/_config.yml +1 -1
  56. data/lib/starter_web/_data/modules/amplitude_app.yml +206 -23
  57. data/lib/starter_web/_data/modules/amplitude_playlists.yml +1122 -19
  58. data/lib/starter_web/_data/modules/defaults/{amplitude_app.yml → amplitude.yml} +70 -26
  59. data/lib/starter_web/_data/modules/swiper_app.yml +289 -155
  60. data/lib/starter_web/_data/modules/swiper_playlists.yml +51 -1
  61. data/lib/starter_web/_data/resources.yml +6 -2
  62. data/lib/starter_web/_data/templates/feed.xml +1 -1
  63. data/lib/starter_web/_plugins/filter/filters.rb +1 -11
  64. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  65. data/lib/starter_web/assets/image/module/swiper/avatar/avatar-1.png +0 -0
  66. data/lib/starter_web/assets/image/module/swiper/avatar/avatar-2.png +0 -0
  67. data/lib/starter_web/assets/image/module/swiper/avatar/avatar-3.png +0 -0
  68. data/lib/starter_web/assets/image/module/swiper/avatar/avatar-4.png +0 -0
  69. data/lib/starter_web/assets/image/module/swiper/avatar/avatar-5.png +0 -0
  70. data/lib/starter_web/package.json +1 -1
  71. data/lib/starter_web/pages/public/tools/previewer/preview_amplitudejs.adoc +82 -34
  72. data/lib/starter_web/pages/public/tools/tester/app_tester_amplitudejs_yt.adoc +62 -15
  73. data/lib/starter_web/pages/public/tools/tester/app_tester_swiperjs.adoc +121 -36
  74. data/lib/starter_web/pages/public/tour/play_audio.adoc +60 -70
  75. data/lib/starter_web/pages/public/tour/play_video.adoc +1 -1
  76. metadata +29 -14
  77. data/assets/theme/j1/modules/swiperjs/js/highlightJS.js +0 -13376
  78. data/assets/theme/j1/modules/swiperjs/js/highlightJS.min.js +0 -1246
  79. data/assets/theme/j1/modules/swiperjs/js/modules/!readme +0 -3
  80. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/!info/!readme +0 -0
  81. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/!readme +0 -0
  82. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/1.jpg +0 -0
  83. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/2.jpg +0 -0
  84. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/3.jpg +0 -0
  85. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/4.jpg +0 -0
  86. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/5.jpg +0 -0
  87. /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/6.jpg +0 -0
@@ -0,0 +1,757 @@
1
+ ---
2
+ regenerate: true
3
+ exclude_from_search: true
4
+ ---
5
+
6
+ {%- capture cache -%}
7
+
8
+ {% comment %}
9
+ # -----------------------------------------------------------------------------
10
+ # ~/assets/data/swiper_app.html
11
+ # Generate the HTML portion for all SwiperJS Apps (Silder)
12
+ # configured
13
+ #
14
+ # Product/Info:
15
+ # https://jekyll.one
16
+ #
17
+ # Copyright (C) 2023-2025 Juergen Adams
18
+ #
19
+ # J1 Template is licensed under the MIT License.
20
+ # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
21
+ # -----------------------------------------------------------------------------
22
+ # NOTE: Data loaded dynamically by J1 Master Slider module (AJAX)
23
+ # -----------------------------------------------------------------------------
24
+ # Test data:
25
+ # {{variable | debug}}
26
+ # -----------------------------------------------------------------------------
27
+ {% endcomment %}
28
+
29
+ {% comment %} Liquid procedures
30
+ -------------------------------------------------------------------------------- {% endcomment %}
31
+
32
+ {% comment %} Liquid var initialization
33
+ -------------------------------------------------------------------------------- {% endcomment %}
34
+
35
+ {% comment %} Set config files
36
+ -------------------------------------------------------------------------------- {% endcomment %}
37
+ {% assign template_config = site.data.j1_config %}
38
+ {% assign modules = site.data.modules %}
39
+
40
+ {% comment %} Set config data
41
+ -------------------------------------------------------------------------------- {% endcomment %}
42
+ {% assign environment = site.environment %}
43
+ {% assign swiper_defaults = modules.defaults.swiper_app.defaults %}
44
+ {% assign swiper_settings = modules.swiper_app.settings %}
45
+ {% assign swiper_playlists = modules.swiper_playlists.settings.playlists %}
46
+
47
+ {% comment %} Set config options
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign swiper_options = swiper_defaults | merge: swiper_settings %}
50
+ {% assign swipers = swiper_settings.swipers %}
51
+
52
+ {% comment %} Configure permalink settings
53
+ -------------------------------------------------------------------------------- {% endcomment %}
54
+ {% assign ext = '' %}
55
+ {% if site.permalink == 'none' %}
56
+ {% assign ext = '.html' %}
57
+ {% endif %}
58
+
59
+ {% comment %} Detect prod mode
60
+ -------------------------------------------------------------------------------- {% endcomment %}
61
+ {% assign production = false %}
62
+ {% if environment == 'prod' or environment == 'production' %}
63
+ {% assign production = true %}
64
+ {% endif %}
65
+
66
+ {% comment %} Collect CSS image filters
67
+ ------------------------------------------------------------------------------- {% endcomment %}
68
+ {% assign css_filters = swiper_defaults.filters | merge: swiper.filters %}
69
+ {% assign image_filters = 'filter:' %}
70
+
71
+ {% if css_filters.enabled %}
72
+ {% for filter in css_filters %}
73
+ {% if filter[0] contains 'enabled' %}
74
+ {% continue %}
75
+ {% endif %}
76
+ {% capture image_filters %}{{image_filters}} {{filter[0]}}({{filter[1]}}){% endcapture %}
77
+ {% endfor %}
78
+ {% endif %}
79
+
80
+ {% comment %} Collect HTML snippets
81
+ ------------------------------------------------------------------------------- {% endcomment %}
82
+ {% capture _AUTOPLAY_PROGRESS %}
83
+ <div class="autoplay-progress">
84
+ <svg viewBox="0 0 48 48">
85
+ <circle cx="24" cy="24" r="20"></circle>
86
+ </svg>
87
+ <span></span>
88
+ </div>
89
+ {% endcapture %}
90
+
91
+
92
+ {% comment %} Main
93
+ swiper: {{swiper | debug}}
94
+ playlist.image_defaults: {{playlist.image_defaults | debug}}
95
+ {% assign image_alt_text = slide.caption %}
96
+ ================================================================================ {% endcomment %}
97
+ <!DOCTYPE {{site.doctype}}>
98
+ <html lang="{{site.language}}">
99
+ <head>
100
+ <!-- [INFO ] [~/assets/data/swiper.html ] [ exclude data file from GLOBAL _site/sitemap.xml (robots) ] -->
101
+ <meta name="robots" content="noindex, nofollow">
102
+ <!-- [INFO ] [~/assets/data/swiper.html ] [ exclude data file from LOCAL search index _site/assets/data/lunr-index.json ] -->
103
+ <meta type="module" content="html data file">
104
+ </head>
105
+ <body>
106
+
107
+ <!-- [INFO ] [~/assets/data/swiper.html ] [collect all sliders configured ] -->
108
+ {% for swiper in swipers %} {% if swiper.enabled %}
109
+
110
+ {% comment %} Generate HTML portion for all sliders enabled
111
+ -------------------------------------------------------------------------- {% endcomment %}
112
+ {% assign type_layout = swiper.layout | split: "/" %}
113
+ {% assign swiper_type = type_layout[0] %}
114
+ {% assign swiper_layout = type_layout[1] %}
115
+
116
+ {% comment %} Collect Text Swipers, Layout Base
117
+ layout: text/base
118
+ ========================================================================== {% endcomment %}
119
+ {% if swiper_type == 'text' and swiper_layout == 'base' %}
120
+
121
+ <!-- Text Swipers, Layout Base -->
122
+ <div id="{{swiper.id}}">
123
+ <!-- Swiper elements (El) -->
124
+ <div class="swiper swiper-container {{swiper.container_classes}}">
125
+
126
+ <!-- Swiper Wrapper (slides) -->
127
+ <ul class="swiper-wrapper">
128
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
129
+
130
+ {% assign type_extension = playlist.type | split: "/" %}
131
+ {% assign playlist_type = type_extension[0] %}
132
+ {% assign extension = type_extension[1] %}
133
+
134
+ {% for slide in playlist.items %} {% if slide.enabled %}
135
+ <li class="swiper-slide">
136
+ <p>
137
+ {{slide.text}}
138
+ </p>
139
+ </li>
140
+ {% endif %} {% endfor %}
141
+ {% endif %} {% endif %} {% endfor %}
142
+ </ul> <!-- END Swiper Wrapper (slides) -->
143
+
144
+ </div> <!-- END Swiper Container (elements) -->
145
+ </div> <!-- END Swiper {{swiper.id}} -->
146
+
147
+ <!-- END Text Swipers, Layout Base -->
148
+ {% endif %}
149
+
150
+ {% comment %} Collect Text Swipers, Layout Parallax
151
+ layout: text/parallax
152
+ ========================================================================== {% endcomment %}
153
+ {% if swiper_type == 'text' and swiper_layout == 'parallax' %}
154
+
155
+ <!-- Text Swipers, Layout Parallax -->
156
+ <div id="{{swiper.id}}">
157
+ <!-- Swiper elements (El) -->
158
+ <div class="swiper swiper-container {{swiper.container_classes}}">
159
+
160
+ <!-- Swiper Wrapper (slides) -->
161
+ <ul class="swiper-wrapper">
162
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
163
+
164
+ {% comment %} Place 1-pixel grid on background-image if enabled
165
+ -------------------------------------------------------------------- {% endcomment %}
166
+ {% if swiper.gridify %}
167
+ <style>
168
+ .swiper-text-parallax:before {
169
+ content: "";
170
+ position: absolute;
171
+ top: 0;
172
+ left: 0;
173
+ width: 100%;
174
+ height: 100%;
175
+ background: url(/assets/image/pattern/image/gridtile.png) repeat;
176
+ }
177
+ </style>
178
+ {% endif %}
179
+
180
+ {% comment %} set default or configured background-image
181
+ -------------------------------------------------------------------- {% endcomment %}
182
+ {% assign background-image = '/assets/image/quote/default.jpg' %}
183
+ {% if swiper.background-image and swiper.background-image != empty %}
184
+ {% assign background-image = swiper.background-image %}
185
+ {% endif %}
186
+
187
+ {% comment %} set default or configured quote-text color
188
+ -------------------------------------------------------------------- {% endcomment %}
189
+ {% assign quote-text-color = 'rgba(255, 255, 255, .75)' %}
190
+ {% if swiper.quote-text-color and swiper.quote-text-color != empty %}
191
+ {% assign quote-text-color = swiper.quote-text-color %}
192
+ {% endif %}
193
+
194
+ {% comment %} jadams. 2025-02-26: place background-image|quote-text color
195
+ -------------------------------------------------------------------- {% endcomment %}
196
+ <style>
197
+ .swiper-text-parallax {
198
+ width: 100%;
199
+ height: 100%;
200
+ padding: 75px 0 75px 0;
201
+ position: relative;
202
+ background: url({{background-image}}) 50% 0 repeat fixed;
203
+ }
204
+ .swiper-text-parallax .swiper-wrapper .swiper-slide p {
205
+ color: {{quote-text-color}};
206
+ }
207
+ </style>
208
+
209
+ {% assign type_extension = playlist.type | split: "/" %}
210
+ {% assign playlist_type = type_extension[0] %}
211
+ {% assign extension = type_extension[1] %}
212
+
213
+ {% for slide in playlist.items %} {% if slide.enabled %}
214
+ <li class="swiper-slide">
215
+ <!-- p class="transparent-text" -->
216
+ <p>
217
+ {{slide.text}}
218
+ </p>
219
+ </li>
220
+ {% endif %} {% endfor %}
221
+ {% endif %} {% endif %} {% endfor %}
222
+ </ul> <!-- END Swiper Wrapper (slides) -->
223
+
224
+ </div> <!-- END Swiper Container (elements) -->
225
+ </div> <!-- END Swiper {{swiper.id}} -->
226
+
227
+ <!-- END Text Swipers, Layout Base -->
228
+ {% endif %}
229
+
230
+
231
+ {% comment %} Collect Image Swipers, Layout Base
232
+ layout: image/base
233
+ ========================================================================== {% endcomment %}
234
+ {% if swiper_type == 'image' and swiper_layout == 'base' %}
235
+
236
+ <!-- Image Swipers, Layout Base -->
237
+ {% if swiper.swiper_classes %}
238
+ <div id="{{swiper.id}}" class="{{swiper.swiper_classes}}">
239
+ {% else %}
240
+ <div id="{{swiper.id}}">
241
+ {% endif %}
242
+ <!-- Swiper elements (El) -->
243
+ <div class="swiper swiper-container {{swiper.swiper_container_classes}}">
244
+
245
+ {% assign wrapper_styles = '' %}
246
+ {% if swiper.wrapper_styles %}
247
+ {% assign wrapper_styles = swiper.wrapper_styles %}
248
+ {% endif %}
249
+
250
+ <!-- Swiper Wrapper (slides) -->
251
+ {% if swiper.wrapper_styles %}
252
+ <ul class="swiper-wrapper" style="{{wrapper_styles}}">
253
+ {% else %}
254
+ <ul class="swiper-wrapper">
255
+ {% endif %}
256
+
257
+ {% if swiper.lightbox.enabled %}
258
+ <!-- anchor-based swiper slide HTML required for lightbox usage -->
259
+ {% else %}
260
+ <!-- flat swiper slide HTML -->
261
+ {% endif %}
262
+
263
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
264
+ {% for slide in playlist.items %} {% if slide.enabled %}
265
+
266
+ {% assign type_extension = playlist.type | split: "/" %}
267
+ {% assign playlist_type = type_extension[0] %}
268
+ {% assign image_extension = type_extension[1] %}
269
+
270
+ {% assign image_alt_text = 'Slide Image' %}
271
+ {% if swiper.captions.enabled %}
272
+ {% capture image_alt_text %}Slide Image{{slide.caption}}{% endcapture %}
273
+ {% endif %}
274
+
275
+ {% if swiper.lightbox.enabled %}
276
+ <li class="swiper-slide">
277
+ {% if playlist.image_defaults.base_folder %}
278
+ <a href="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}"
279
+ {% if playlist.image_defaults.image_width == 'slide' %}
280
+ data-pswp-width="{{slide.imageWidth}}"
281
+ data-pswp-height="{{slide.imageHeight}}"
282
+ {% else %}
283
+ data-pswp-width="{{playlist.image_defaults.image_width}}"
284
+ data-pswp-height="{{playlist.image_defaults.image_height}}"
285
+ {% endif %}
286
+ target="_blank">
287
+ <img class="pswp-image" src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
288
+ {% if swiper.captions.enabled %}
289
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
290
+ {% endif %}
291
+ {% if swiper.lightbox.captions.enabled %}
292
+ <span class="pswp-caption-content">{{slide.description}}</span>
293
+ {% endif %}
294
+ </a>
295
+ {% endif %}
296
+ </li>
297
+ {% else %}
298
+ <li class="swiper-slide">
299
+ {% if playlist.image_defaults.base_folder %}
300
+ <img src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
301
+ {% else %}
302
+ <img src="{{slide.image}}.{{image_extension}}">
303
+ {% endif %}
304
+ {% if swiper.captions.enabled %}
305
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
306
+ {% endif %}
307
+ </li>
308
+ {% endif %}
309
+
310
+ {% endif %} {% endfor %}
311
+ {% endif %} {% endif %} {% endfor %}
312
+
313
+ </ul> <!-- END Swiper Wrapper (slides) -->
314
+
315
+ {% if swiper.module_settings.navigation %}
316
+ <!-- Navigation -->
317
+ <div class="swiper-button-prev"></div>
318
+ <div class="swiper-button-next"></div>
319
+ {% endif %}
320
+
321
+ {% if swiper.module_settings.pagination %}
322
+ <!-- Pagination -->
323
+ <div class="swiper-pagination"></div>
324
+ {% endif %}
325
+
326
+ </div> <!-- END Swiper Container (elements) -->
327
+ </div> <!-- END Swiper {{swiper.id}} -->
328
+
329
+ <!-- END Image Swipers, Layout Base -->
330
+ {% endif %}
331
+
332
+
333
+ {% comment %} Collect Extended Image Swipers, Layout Thumb
334
+ layout: image/thumb
335
+ ========================================================================== {% endcomment %}
336
+ {% if swiper_type == 'image' and swiper_layout == 'thumb' %}
337
+
338
+ <!-- Image Swipers, Layout Thumb -->
339
+ {% if swiper.swiper_classes %}
340
+ <div id="{{swiper.id}}" class="{{swiper.swiper_classes}}">
341
+ {% else %}
342
+ <div id="{{swiper.id}}">
343
+ {% endif %}
344
+ <!-- Swiper elements (El) -->
345
+ <div class="swiper swiper-container {{swiper.swiper_container_classes}}">
346
+
347
+ {% assign wrapper_styles = '' %}
348
+ {% if swiper.wrapper_styles %}
349
+ {% assign wrapper_styles = swiper.wrapper_styles %}
350
+ {% endif %}
351
+
352
+ <!-- Swiper Wrapper (slides) -->
353
+ {% if swiper.wrapper_styles %}
354
+ <ul class="swiper-wrapper" style="{{wrapper_styles}}">
355
+ {% else %}
356
+ <ul class="swiper-wrapper">
357
+ {% endif %}
358
+
359
+ {% if swiper.lightbox.enabled %}
360
+ <!-- anchor-based swiper slide HTML required for lightbox usage -->
361
+ {% else %}
362
+ <!-- flat swiper slide HTML -->
363
+ {% endif %}
364
+
365
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
366
+ {% for slide in playlist.items %} {% if slide.enabled %}
367
+
368
+ {% assign type_extension = playlist.type | split: "/" %}
369
+ {% assign playlist_type = type_extension[0] %}
370
+ {% assign image_extension = type_extension[1] %}
371
+
372
+ {% assign image_alt_text = 'Slide Image' %}
373
+ {% if swiper.captions.enabled %}
374
+ {% capture image_alt_text %}Slide Image{{slide.caption}}{% endcapture %}
375
+ {% endif %}
376
+
377
+ {% if swiper.lightbox.enabled %}
378
+ <li class="swiper-slide">
379
+ {% if playlist.image_defaults.base_folder %}
380
+ <a href="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}"
381
+ {% if playlist.image_defaults.image_width == 'slide' %}
382
+ data-pswp-width="{{slide.imageWidth}}"
383
+ data-pswp-height="{{slide.imageHeight}}"
384
+ {% else %}
385
+ data-pswp-width="{{playlist.image_defaults.image_width}}"
386
+ data-pswp-height="{{playlist.image_defaults.image_height}}"
387
+ {% endif %}
388
+ target="_blank">
389
+ <img class="pswp-image" src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
390
+ {% if swiper.captions.enabled %}
391
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
392
+ {% endif %}
393
+ {% if swiper.lightbox.captions.enabled %}
394
+ <span class="pswp-caption-content">{{slide.description}}</span>
395
+ {% endif %}
396
+ </a>
397
+ {% endif %}
398
+ </li>
399
+ {% else %}
400
+ <li class="swiper-slide">
401
+ {% if playlist.image_defaults.base_folder %}
402
+ <img src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
403
+ {% else %}
404
+ <img src="{{slide.image}}.{{image_extension}}">
405
+ {% endif %}
406
+ {% if swiper.captions.enabled %}
407
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
408
+ {% endif %}
409
+ </li>
410
+ {% endif %}
411
+
412
+ {% endif %} {% endfor %}
413
+ {% endif %} {% endif %} {% endfor %}
414
+
415
+ </ul> <!-- END Swiper Wrapper (slides) -->
416
+
417
+ {% if swiper.modules.navigation %}
418
+ <!-- Navigation -->
419
+ <div class="swiper-button-prev"></div>
420
+ <div class="swiper-button-next"></div>
421
+ {% endif %}
422
+
423
+ {% if swiper.modules.pagination %}
424
+ <!-- Pagination -->
425
+ <div class="swiper-pagination"></div>
426
+ {% endif %}
427
+
428
+ </div> <!-- END Swiper Container (elements) -->
429
+ </div> <!-- END Swiper {{swiper.id}} -->
430
+
431
+ <!-- END Image Swipers, Layout Thumb -->
432
+ {% endif %}
433
+
434
+ {% comment %} Collect Extended Image Swipers, Layout Panorama
435
+ layout: image/panorama
436
+ ========================================================================== {% endcomment %}
437
+ {% if swiper_type == 'image' and swiper_layout == 'panorama' %}
438
+
439
+ <!-- Image Swipers, Layout Panorama -->
440
+ {% if swiper.swiper_classes %}
441
+ <div id="{{swiper.id}}" class="{{swiper.swiper_classes}}">
442
+ {% else %}
443
+ <div id="{{swiper.id}}">
444
+ {% endif %}
445
+ <!-- Swiper elements (El) -->
446
+ <div class="swiper swiper-container {{swiper.swiper_container_classes}}">
447
+
448
+ {% assign wrapper_styles = '' %}
449
+ {% if swiper.wrapper_styles %}
450
+ {% assign wrapper_styles = swiper.wrapper_styles %}
451
+ {% endif %}
452
+
453
+ <!-- Swiper Wrapper (slides) -->
454
+ {% if swiper.wrapper_styles %}
455
+ <ul class="swiper-wrapper" style="{{wrapper_styles}}">
456
+ {% else %}
457
+ <ul class="swiper-wrapper">
458
+ {% endif %}
459
+
460
+ {% if swiper.lightbox.enabled %}
461
+ <!-- anchor-based swiper slide HTML required for lightbox usage -->
462
+ {% else %}
463
+ <!-- flat swiper slide HTML -->
464
+ {% endif %}
465
+
466
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
467
+ {% for slide in playlist.items %} {% if slide.enabled %}
468
+
469
+ {% assign type_extension = playlist.type | split: "/" %}
470
+ {% assign playlist_type = type_extension[0] %}
471
+ {% assign image_extension = type_extension[1] %}
472
+
473
+ {% assign image_alt_text = 'Slide Image' %}
474
+ {% if swiper.captions.enabled %}
475
+ {% capture image_alt_text %}Slide Image{{slide.caption}}{% endcapture %}
476
+ {% endif %}
477
+
478
+ {% if swiper.lightbox.enabled %}
479
+ <li class="swiper-slide">
480
+ {% if playlist.image_defaults.base_folder %}
481
+ <a href="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}"
482
+ {% if playlist.image_defaults.image_width == 'slide' %}
483
+ data-pswp-width="{{slide.imageWidth}}"
484
+ data-pswp-height="{{slide.imageHeight}}"
485
+ {% else %}
486
+ data-pswp-width="{{playlist.image_defaults.image_width}}"
487
+ data-pswp-height="{{playlist.image_defaults.image_height}}"
488
+ {% endif %}
489
+ target="_blank">
490
+ <img class="pswp-image" src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
491
+ {% if swiper.captions.enabled %}
492
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
493
+ {% endif %}
494
+ {% if swiper.lightbox.captions.enabled %}
495
+ <span class="pswp-caption-content">{{slide.description}}</span>
496
+ {% endif %}
497
+ </a>
498
+ {% endif %}
499
+ </li>
500
+ {% else %}
501
+ <li class="swiper-slide">
502
+ {% if playlist.image_defaults.base_folder %}
503
+ <img src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
504
+ {% else %}
505
+ <img src="{{slide.image}}.{{image_extension}}">
506
+ {% endif %}
507
+ {% if swiper.captions.enabled %}
508
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
509
+ {% endif %}
510
+ </li>
511
+ {% endif %}
512
+
513
+ {% endif %} {% endfor %}
514
+ {% endif %} {% endif %} {% endfor %}
515
+
516
+ </ul> <!-- END Swiper Wrapper (slides) -->
517
+
518
+ {% if swiper.modules.navigation %}
519
+ <!-- Navigation -->
520
+ <div class="swiper-button-prev"></div>
521
+ <div class="swiper-button-next"></div>
522
+ {% endif %}
523
+
524
+ {% if swiper.modules.pagination %}
525
+ <!-- Pagination -->
526
+ <div class="swiper-pagination"></div>
527
+ {% endif %}
528
+
529
+ </div> <!-- END Swiper Container (elements) -->
530
+ </div> <!-- END Swiper {{swiper.id}} -->
531
+
532
+ <!-- END Image Swipers, Layout Panorama -->
533
+ {% endif %}
534
+
535
+
536
+ {% comment %} Collect Extended Image Swipers, Layout Neighbor
537
+ layout: image/neighbor
538
+ ========================================================================== {% endcomment %}
539
+ {% if swiper_type == 'image' and swiper_layout == 'neighbor' %}
540
+
541
+ <!-- Image Swipers, Layout Neighbor -->
542
+ {% if swiper.swiper_classes %}
543
+ <div id="{{swiper.id}}" class="{{swiper.swiper_classes}}">
544
+ {% else %}
545
+ <div id="{{swiper.id}}">
546
+ {% endif %}
547
+ <!-- Swiper elements (El) -->
548
+ <div class="swiper swiper-container {{swiper.swiper_container_classes}}">
549
+
550
+ {% assign wrapper_styles = '' %}
551
+ {% if swiper.wrapper_styles %}
552
+ {% assign wrapper_styles = swiper.wrapper_styles %}
553
+ {% endif %}
554
+
555
+ <!-- Swiper Wrapper (slides) -->
556
+ {% if swiper.wrapper_styles %}
557
+ <ul class="swiper-wrapper" style="{{wrapper_styles}}">
558
+ {% else %}
559
+ <ul class="swiper-wrapper">
560
+ {% endif %}
561
+
562
+ {% if swiper.lightbox.enabled %}
563
+ <!-- anchor-based swiper slide HTML required for lightbox usage -->
564
+ {% else %}
565
+ <!-- flat swiper slide HTML -->
566
+ {% endif %}
567
+
568
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
569
+ {% for slide in playlist.items %} {% if slide.enabled %}
570
+
571
+ {% assign type_extension = playlist.type | split: "/" %}
572
+ {% assign playlist_type = type_extension[0] %}
573
+ {% assign image_extension = type_extension[1] %}
574
+
575
+ {% assign image_alt_text = 'Slide Image' %}
576
+ {% if swiper.captions.enabled %}
577
+ {% capture image_alt_text %}Slide Image{{slide.caption}}{% endcapture %}
578
+ {% endif %}
579
+
580
+ {% if swiper.lightbox.enabled %}
581
+ <li class="swiper-slide">
582
+ {% if playlist.image_defaults.base_folder %}
583
+ <a href="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}"
584
+ {% if playlist.image_defaults.image_width == 'slide' %}
585
+ data-pswp-width="{{slide.imageWidth}}"
586
+ data-pswp-height="{{slide.imageHeight}}"
587
+ {% else %}
588
+ data-pswp-width="{{playlist.image_defaults.image_width}}"
589
+ data-pswp-height="{{playlist.image_defaults.image_height}}"
590
+ {% endif %}
591
+ target="_blank">
592
+ <img class="pswp-image" src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
593
+ {% if swiper.captions.enabled %}
594
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
595
+ {% endif %}
596
+ {% if swiper.lightbox.captions.enabled %}
597
+ <span class="pswp-caption-content">{{slide.description}}</span>
598
+ {% endif %}
599
+ </a>
600
+ {% endif %}
601
+ </li>
602
+ {% else %}
603
+ <li class="swiper-slide">
604
+ {% if playlist.image_defaults.base_folder %}
605
+ <img src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
606
+ {% else %}
607
+ <img src="{{slide.image}}.{{image_extension}}">
608
+ {% endif %}
609
+ {% if swiper.captions.enabled %}
610
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
611
+ {% endif %}
612
+ </li>
613
+ {% endif %}
614
+
615
+ {% endif %} {% endfor %}
616
+ {% endif %} {% endif %} {% endfor %}
617
+
618
+ </ul> <!-- END Swiper Wrapper (slides) -->
619
+
620
+ {% if swiper.modules.navigation %}
621
+ <!-- Navigation -->
622
+ <div class="swiper-button-prev"></div>
623
+ <div class="swiper-button-next"></div>
624
+ {% endif %}
625
+
626
+ {% if swiper.modules.pagination %}
627
+ <!-- Pagination -->
628
+ <div class="swiper-pagination"></div>
629
+ {% endif %}
630
+
631
+ </div> <!-- END Swiper Container (elements) -->
632
+ </div> <!-- END Swiper {{swiper.id}} -->
633
+
634
+ <!-- END Image Swipers, Layout Neighbor -->
635
+ {% endif %}
636
+
637
+
638
+ {% comment %} Collect Extended Image Swipers, Layout Expanded
639
+ layout: image/expanded
640
+ ========================================================================== {% endcomment %}
641
+ {% if swiper_type == 'image' and swiper_layout == 'expanded' %}
642
+
643
+ <!-- Image Swipers, Layout Expanded -->
644
+ {% if swiper.swiper_classes %}
645
+ <div id="{{swiper.id}}" class="{{swiper.swiper_classes}}">
646
+ {% else %}
647
+ <div id="{{swiper.id}}">
648
+ {% endif %}
649
+ <!-- Swiper elements (El) -->
650
+ <div class="swiper swiper-container {{swiper.swiper_container_classes}}">
651
+
652
+ {% assign wrapper_styles = '' %}
653
+ {% if swiper.wrapper_styles %}
654
+ {% assign wrapper_styles = swiper.wrapper_styles %}
655
+ {% endif %}
656
+
657
+ <!-- Swiper Wrapper (slides) -->
658
+ {% if swiper.wrapper_styles %}
659
+ <ul class="swiper-wrapper" style="{{wrapper_styles}}">
660
+ {% else %}
661
+ <ul class="swiper-wrapper">
662
+ {% endif %}
663
+
664
+ {% if swiper.lightbox.enabled %}
665
+ <!-- anchor-based swiper slide HTML required for lightbox usage -->
666
+ {% else %}
667
+ <!-- flat swiper slide HTML -->
668
+ {% endif %}
669
+
670
+ {% for playlist in swiper_playlists %} {% if playlist.enabled %} {% if playlist.name == swiper.playlist %}
671
+ {% for slide in playlist.items %} {% if slide.enabled %}
672
+
673
+ {% assign type_extension = playlist.type | split: "/" %}
674
+ {% assign playlist_type = type_extension[0] %}
675
+ {% assign image_extension = type_extension[1] %}
676
+
677
+ {% assign image_alt_text = 'Slide Image' %}
678
+ {% if swiper.captions.enabled %}
679
+ {% capture image_alt_text %}Slide Image{{slide.caption}}{% endcapture %}
680
+ {% endif %}
681
+
682
+ {% if swiper.lightbox.enabled %}
683
+ <li class="swiper-slide">
684
+ {% if playlist.image_defaults.base_folder %}
685
+ <a href="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}"
686
+ {% if playlist.image_defaults.image_width == 'slide' %}
687
+ data-pswp-width="{{slide.imageWidth}}"
688
+ data-pswp-height="{{slide.imageHeight}}"
689
+ {% else %}
690
+ data-pswp-width="{{playlist.image_defaults.image_width}}"
691
+ data-pswp-height="{{playlist.image_defaults.image_height}}"
692
+ {% endif %}
693
+ target="_blank">
694
+ <img class="pswp-image" src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
695
+ {% if swiper.captions.enabled %}
696
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
697
+ {% endif %}
698
+ {% if swiper.lightbox.captions.enabled %}
699
+ <span class="pswp-caption-content">{{slide.description}}</span>
700
+ {% endif %}
701
+ </a>
702
+ {% endif %}
703
+ </li>
704
+ {% else %}
705
+ <li class="swiper-slide">
706
+ {% if playlist.image_defaults.base_folder %}
707
+ <img src="{{playlist.image_defaults.base_folder}}/{{slide.image}}.{{image_extension}}" alt="{{image_alt_text}} {{slide.image}}">
708
+ {% else %}
709
+ <img src="{{slide.image}}.{{image_extension}}">
710
+ {% endif %}
711
+ {% if swiper.captions.enabled %}
712
+ <div class="{{swiper.captions.css_class}}">{{slide.caption_text}}</div>
713
+ {% endif %}
714
+ </li>
715
+ {% endif %}
716
+
717
+ {% endif %} {% endfor %}
718
+ {% endif %} {% endif %} {% endfor %}
719
+
720
+ </ul> <!-- END Swiper Wrapper (slides) -->
721
+
722
+ {% if swiper.modules.navigation %}
723
+ <!-- Navigation -->
724
+ <div class="swiper-button-prev"></div>
725
+ <div class="swiper-button-next"></div>
726
+ {% endif %}
727
+
728
+ {% if swiper.modules.pagination %}
729
+ <!-- Pagination -->
730
+ <div class="swiper-pagination"></div>
731
+ {% endif %}
732
+
733
+ </div> <!-- END Swiper Container (elements) -->
734
+ </div> <!-- END Swiper {{swiper.id}} -->
735
+
736
+ <!-- END Image Swipers, Layout Expanded -->
737
+ {% endif %}
738
+
739
+ {% endif %}{% endfor %}
740
+ <!-- [INFO ] [~/assets/data/swiper.html ] [END collect all sliders configured] -->
741
+
742
+ </body>
743
+ </html>
744
+ {%- endcapture -%}
745
+
746
+
747
+ {% comment %} Beautify|Compress page
748
+ -------------------------------------------------------------------------------- {% endcomment %}
749
+ {%- if production -%}
750
+ {% 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 %}
751
+ {%- else -%}
752
+ {{ cache | remove:'<html><body>' | remove:'</body></html>' | strip_empty_lines }}
753
+ {%- endif -%}
754
+
755
+ {% comment %} Reset page cache
756
+ -------------------------------------------------------------------------------- {% endcomment %}
757
+ {%- assign cache = false -%}