j1-template 2021.1.24 → 2021.1.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_article_navigator.html +1 -1
  3. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +6 -4
  4. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
  5. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  6. data/_layouts/default.html +1 -0
  7. data/assets/data/panel.html +3 -17
  8. data/assets/themes/j1/adapter/js/j1scroll.js +286 -0
  9. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +42 -0
  10. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
  11. data/assets/themes/j1/modules/{infiniteScroll → j1Scroll}/css/theme/uno.css +4 -50
  12. data/assets/themes/j1/modules/j1Scroll/css/theme/uno.min.css +15 -0
  13. data/assets/themes/j1/modules/j1Scroll/js/j1scroll.js +273 -0
  14. data/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js +16 -0
  15. data/assets/themes/j1/modules/showOnScroll/js/showOnScroll.js +19 -7
  16. data/lib/j1/version.rb +1 -1
  17. data/lib/starter_web/Gemfile +1 -1
  18. data/lib/starter_web/_config.yml +1 -1
  19. data/lib/starter_web/_data/builder/blog_navigator.yml +1 -0
  20. data/lib/starter_web/_data/modules/{infiniteScroll.yml → j1scroll.yml} +16 -25
  21. data/lib/starter_web/_data/resources.yml +19 -18
  22. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  23. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  24. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +1 -1
  25. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +1 -1
  26. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +1 -1
  27. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +1 -1
  28. data/lib/starter_web/index.html +1 -1
  29. data/lib/starter_web/package.json +1 -1
  30. data/lib/starter_web/pages/infinite-scroll-tester-5.adoc +119 -0
  31. data/lib/starter_web/pages/public/blog/navigator/index.html +3 -2
  32. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  33. data/lib/starter_web/utilsrv/package.json +1 -1
  34. metadata +9 -9
  35. data/assets/themes/j1/adapter/js/infiniteScroll.js +0 -245
  36. data/assets/themes/j1/modules/infiniteScroll/css/theme/uno.min.css +0 -15
  37. data/assets/themes/j1/modules/infiniteScroll/js/infiniteScroll.js +0 -1909
  38. data/assets/themes/j1/modules/infiniteScroll/js/infiniteScroll.min.js +0 -17
  39. data/lib/starter_web/_data/modules/defaults/infiniteScroll.yml +0 -73
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a367f0d5a1065a8368be490241e20c1fe1c29f860ac905b75eaa8d9100c113b
4
- data.tar.gz: 62750cb4f9bf459ad504d53a26c79032be7152dca9d8b638520856e630f4924e
3
+ metadata.gz: 6d149f9e04f389fc677449fe654ff144b8536834de7cb6bc9f61c806df4ca858
4
+ data.tar.gz: 95ee34bd117d6c2b6a49274d21048be1cb5e530a6474d3055f006aa8e2197f34
5
5
  SHA512:
6
- metadata.gz: a1d6fca90493d2a5ff33d05996eea019a1495ba42a4eacc2963c0874cc4759c0ed028c6b8f540725fd31bf0e769fd9baef7ccc62ed1b74e6fecadd9914a320e7
7
- data.tar.gz: 6892847076716ed5876b5cae69d23266180ba42aa6fec677c2fda7e5590e53e49d92e03defaea28eb92a173faa64da75c51589ead7ab82fd60c6a70b7a974125
6
+ metadata.gz: 2fa157e83398f1cb9fb4f1307706acc3e1a003566e8b07ff963cac9031846798bc4fc3f667e669678fe4ced86bd07e593ac7c166e0c4ff25662be7c98e27e9fe
7
+ data.tar.gz: f89a9f07ffccf9f204d2aac60fdb386deac13b1bf018e9e12fe5a6ad7b06e1df20c62c00999c4c2a9f82552e191f8b9ef8b173e01bc74ad28ff675e0ee57f75a
@@ -59,6 +59,7 @@
59
59
  {% assign page_rtext = page.rtext %}
60
60
  {% assign page_rtext_size = page.rtext_size %}
61
61
 
62
+
62
63
  {% comment %} rtext|size detection
63
64
  -------------------------------------------------------------------------------- {% endcomment %}
64
65
  {% if rtext %}
@@ -149,7 +150,6 @@
149
150
  </nav>
150
151
  {% endif %}
151
152
 
152
-
153
153
  </div>
154
154
 
155
155
  <div id="article_preview">
@@ -55,6 +55,7 @@
55
55
 
56
56
  {% assign previewer = blog_navigator_options.previewer %}
57
57
  {% assign paginate = paginator_options.pagination.enabled %}
58
+ {% assign scroller = blog_navigator_options.scroller %}
58
59
  {% assign rtext = template_config.typography.rtext %}
59
60
  {% assign page_rtext = page.rtext %}
60
61
  {% assign page_rtext_size = page.rtext_size %}
@@ -165,7 +166,8 @@
165
166
  <h1 id="previewer" class="notoc mt-4">{{previewer_headline}}</h1>
166
167
  </div>
167
168
 
168
- {% if paginator.total_pages > 1 %}
169
+ <!-- Add Jekyll Paginator if enabled: {{scroller}} -->
170
+ {% if scroller == 'jekyll' %} {% if paginator.total_pages > 1 %}
169
171
  <nav class="paginator mb-4">
170
172
  <ul class="pagination raised-z0">
171
173
  {% if paginator.previous_page %}
@@ -185,11 +187,11 @@
185
187
  {% endif %}
186
188
  </ul>
187
189
  </nav>
188
- {% endif %}
190
+ {% endif %} {% endif %}
189
191
 
190
- {% if blog_navigator_options.article_previewer.page_text.enabled %}
192
+ {% if scroller == 'jekyll' %} {% if blog_navigator_options.article_previewer.page_text.enabled %}
191
193
  <div class="view-description mb-3">{{previewer_description_text}}</div>
192
- {% endif %}
194
+ {% endif %} {% endif %}
193
195
 
194
196
  </div>
195
197
 
@@ -294,7 +294,7 @@
294
294
  {% endif %}
295
295
  <h3 class="card-header bg-primary notoc">{{post.title}}</h3>
296
296
  <!-- Body|Excerpt -->
297
- <div class="card-body r-text-300">
297
+ <div class="card-body r-text-300 mt-3">
298
298
  {{post.excerpt|truncatewords: truncate_words}}
299
299
  </div>
300
300
  <!-- End Body|Excerpt -->
@@ -93,7 +93,7 @@
93
93
  </div>
94
94
  {% endif %}
95
95
 
96
- <ul class="timeline">
96
+ <ul id="timeline" class="timeline">
97
97
  {% for post in posts_collate %}
98
98
 
99
99
  {% assign place_image = false %}
@@ -101,6 +101,7 @@ layout: compress
101
101
 
102
102
  <!-- [INFO ] [j1.layout.default.html ] [ page generated: {{site.time}} ] -->
103
103
  <!-- [INFO ] [j1.layout.default.html ] [ environment detected as: {{environment}} ] -->
104
+ <!-- [INFO ] [j1.layout.default.html ] [ version detected as: {{template_version}} ] -->
104
105
 
105
106
  {% comment %} collect the head section (region head)
106
107
  ------------------------------------------------------------------------------ {% endcomment %}
@@ -402,7 +402,7 @@ exclude_from_search: true
402
402
  <div class="row {{panel_settings.id}}">
403
403
  <div id="{{card_id}}" class="accordion">
404
404
  {% for list in services %}
405
- <div class="card mb-4">
405
+ <div class="card">
406
406
  <div class="card-header" id="headingOne">
407
407
  <h2 class="clearfix mb-0">
408
408
  <a class="btn btn-link collapsed" data-toggle="collapse" data-target="#{{list.service.id}}" aria-expanded="false" aria-controls="{{list.service.id}}">
@@ -411,7 +411,7 @@ exclude_from_search: true
411
411
  </a>
412
412
  </h2>
413
413
  </div>
414
- <div id="{{list.service.id}}" class="collapse" aria-labelledby="{{list.service.id}}" data-parent="#{{card_id}}">
414
+ <div id="{{list.service.id}}" class="collapse mb-4" aria-labelledby="{{list.service.id}}" data-parent="#{{card_id}}">
415
415
  <div class="card-body r-text-200">
416
416
  {{list.service.description}}
417
417
  <hr>
@@ -539,7 +539,7 @@ exclude_from_search: true
539
539
  {% endif %}
540
540
  <h3 class="card-header bg-primary notoc">{{post.title}}</h3>
541
541
  <!-- Body|Excerpt -->
542
- <div class="card-body r-text-300">
542
+ <div class="card-body r-text-300 mt-4">
543
543
  {% comment %} {{post.excerpt|truncatewords: 50|replace:'...',' ...'|remove:'<div class="paragraph">'|remove:'</div>'|remove:'<p>'|remove:'</p>'}} {% endcomment %}
544
544
  {{post.excerpt|truncatewords: truncate_words}}
545
545
  </div>
@@ -640,20 +640,6 @@ exclude_from_search: true
640
640
  <!-- End recent posts -->
641
641
  {% endfor %}
642
642
 
643
- <div class="row page-load-status">
644
- <div class="loader-ellips infinite-scroll-request">
645
- <span class="loader-ellips__dot"></span>
646
- <span class="loader-ellips__dot"></span>
647
- <span class="loader-ellips__dot"></span>
648
- <span class="loader-ellips__dot"></span>
649
- </div>
650
- <p class="infinite-scroll-last">{{infinite_scroll_last}} <a href="/pages/public/blog/navigator/">Blog Navigator</a></p>
651
- </div>
652
-
653
- <div class="row page-scroll-last">
654
- <p class="infinite-scroll-last">{{infinite_scroll_last}} <a href="/pages/public/blog/navigator/">Blog Navigator</a></p>
655
- </div>
656
-
657
643
  </div>
658
644
  <!-- END container -->
659
645
 
@@ -0,0 +1,286 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/j1Scroll.js
10
+ # Liquid template to adapt j1Scroll plugin
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ # Copyright (C) 2021 Juergen Adams
15
+ #
16
+ # J1 Template is licensed under the MIT License.
17
+ # For details, see https://jekyll.one
18
+ # -----------------------------------------------------------------------------
19
+ # Test data:
20
+ # {{ liquid_var | debug }}
21
+ # -----------------------------------------------------------------------------
22
+ {% endcomment %}
23
+
24
+ {% comment %} Liquid procedures
25
+ -------------------------------------------------------------------------------- {% endcomment %}
26
+
27
+ {% comment %} Set global settings
28
+ -------------------------------------------------------------------------------- {% endcomment %}
29
+ {% assign environment = site.environment %}
30
+ {% assign template_version = site.version %}
31
+ {% assign asset_path = "/assets/themes/j1" %}
32
+
33
+ {% comment %} Process YML config data
34
+ ================================================================================ {% endcomment %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign template_config = site.data.j1_config %}
39
+ {% assign blocks = site.data.blocks %}
40
+ {% assign modules = site.data.modules %}
41
+
42
+ {% comment %} Set config data (settings only)
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign scroll_settings = modules.j1scroll.settings %}
45
+
46
+ {% comment %} Set config options (settings only)
47
+ -------------------------------------------------------------------------------- {% endcomment %}
48
+ {% assign scroll_options = scroll_settings %}
49
+
50
+ {% assign production = false %}
51
+ {% if environment == 'prod' or environment == 'production' %}
52
+ {% assign production = true %}
53
+ {% endif %}
54
+
55
+ /*
56
+ # -----------------------------------------------------------------------------
57
+ # ~/assets/themes/j1/adapter/js/j1Scroll.js
58
+ # J1 Adapter for j1Scroll
59
+ #
60
+ # Product/Info:
61
+ # https://jekyll.one
62
+ #
63
+ # Copyright (C) 2021 Juergen Adams
64
+ #
65
+ # J1 Template is licensed under the MIT License.
66
+ # For details, see https://jekyll.one
67
+ # -----------------------------------------------------------------------------
68
+ # Adapter generated: {{site.time}}
69
+ # -----------------------------------------------------------------------------
70
+ */
71
+
72
+ // -----------------------------------------------------------------------------
73
+ // ESLint shimming
74
+ // -----------------------------------------------------------------------------
75
+ /* eslint indent: "off" */
76
+ // -----------------------------------------------------------------------------
77
+ 'use strict';
78
+
79
+ {% comment %} Main
80
+ -------------------------------------------------------------------------------- {% endcomment %}
81
+ j1.adapter['j1Scroll'] = (function (j1, window) {
82
+
83
+ {% comment %} Set global variables
84
+ ------------------------------------------------------------------------------ {% endcomment %}
85
+ var environment = '{{environment}}';
86
+ var user_agent = platform.ua;
87
+ var moduleOptions = {};
88
+ var _this;
89
+ var logger;
90
+ var logText;
91
+
92
+ // ---------------------------------------------------------------------------
93
+ // Helper functions
94
+ // ---------------------------------------------------------------------------
95
+ function sleep(milliseconds) {
96
+ var start = new Date().getTime();
97
+ for (var i = 0; i < 1e7; i++) {
98
+ if ((new Date().getTime() - start) > milliseconds){
99
+ break;
100
+ }
101
+ }
102
+ return;
103
+ }
104
+
105
+ // ---------------------------------------------------------------------------
106
+ // Main object
107
+ // ---------------------------------------------------------------------------
108
+ return {
109
+
110
+ // -------------------------------------------------------------------------
111
+ // Initializer
112
+ // -------------------------------------------------------------------------
113
+ init: function (options) {
114
+ {% comment %} Set global variables
115
+ -------------------------------------------------------------------------- {% endcomment %}
116
+ _this = j1.adapter.j1Scroll;
117
+ logger = log4javascript.getLogger('j1.adapter.j1Scroll');
118
+
119
+ // initialize state flag
120
+ _this.setState('started');
121
+ logger.info('\n' + 'state: ' + _this.getState());
122
+ logger.info('\n' + 'module is being initialized');
123
+
124
+ // -----------------------------------------------------------------------
125
+ // Default module settings
126
+ // -----------------------------------------------------------------------
127
+ var settings = $.extend({
128
+ module_name: 'j1.adapter.j1Scroll',
129
+ generated: '{{site.time}}'
130
+ }, options);
131
+
132
+ {% comment %} Load module config from yml data (disabled)
133
+ --------------------------------------------------------------------------
134
+ // Load module DEFAULTS|CONFIG
135
+ //
136
+ /* eslint-disable */
137
+ moduleOptions = $.extend({}, {{scroll_options | replace: '=>', ':' | replace: 'nil', '""'}});
138
+ /* eslint-enable */
139
+
140
+ if (typeof settings !== 'undefined') {
141
+ moduleOptions = j1.mergeData(moduleOptions, settings);
142
+ }
143
+
144
+ // _this.initialize(moduleOptions);
145
+ -------------------------------------------------------------------------- {% endcomment %}
146
+
147
+ _this.initialize();
148
+
149
+ _this.setState('finished');
150
+ logger.info('\n' + 'state: ' + _this.getState());
151
+ logger.info('\n' + 'module initialized successfully');
152
+ }, // END init
153
+
154
+ // -----------------------------------------------------------------------
155
+ // Generate scrollers configured/enabled
156
+ // -----------------------------------------------------------------------
157
+ initialize: function () {
158
+ logger = log4javascript.getLogger('j1.adapter.j1Scroll');
159
+
160
+ var log_text = '\n' + 'j1Scroll is being initialized';
161
+ logger.info(log_text);
162
+
163
+ // START generate scrollers
164
+ var dependencies_met_page_ready = setInterval (function (options) {
165
+ if (j1.getState() === 'finished') {
166
+
167
+ {% for item in scroll_options.scrollers %} {% if item.scroller.enabled %}
168
+
169
+ {% assign scroller_id = item.scroller.id %}
170
+ {% assign container = item.scroller.container %}
171
+ {% assign path = item.scroller.path %}
172
+ {% assign elementScroll = item.scroller.elementScroll %}
173
+ {% assign scrollOffset = item.scroller.scrollOffset %}
174
+ {% assign lastPage = item.scroller.lastPage %}
175
+ {% assign infoLastPage = item.scroller.infoLastPage %}
176
+
177
+ // scroller_id: {{ scroller_id }}
178
+ var log_text = '\n' + 'j1Scroll is being initialized on: ' + '{{scroller_id}}';
179
+ logger.info(log_text);
180
+
181
+ {% comment %} Unused options
182
+ ----------------------------------------------------------------------
183
+ // status: '.page-scroll-last',
184
+ // firstPage: 2,
185
+ // onInit: function(){}, // Callback after plugin has loaded
186
+ // onBeforeLoad: function(link){}, // Callback before new content is loaded
187
+ // onAfterLoad: function(html){} // Callback after new content has been loaded
188
+ ---------------------------------------------------------------------- {% endcomment %}
189
+
190
+ var container = '#' + '{{container}}';
191
+ var pagePath = '{{path}}';
192
+
193
+ // Create an j1Scroll instance if container exists
194
+ if ($(container).length) {
195
+ $(container).j1Scroll({
196
+ path: pagePath,
197
+ elementScroll: {{elementScroll}},
198
+ scrollOffset: {{scrollOffset}},
199
+ lastPage: {{lastPage}},
200
+ infoLastPage: {{infoLastPage}},
201
+ });
202
+ }
203
+
204
+ {% comment %} Unused callbacks (disabled)
205
+ ----------------------------------------------------------------------
206
+ // $('.list-group').on( 'load.j1Scroll', function( event, body, path, response ) {
207
+ // var logger = log4javascript.getLogger('j1.adapter.infiniteScroll');
208
+ // var log_text = `\n loaded data from path: ${path}`;
209
+ // logger.info(log_text);
210
+ //
211
+ // var log_text = "\n initialize backdrops on load";
212
+ // logger.info(log_text);
213
+ //
214
+ // // initialize backdrops
215
+ // j1.core.createDropCap();
216
+ //
217
+ // });
218
+ //
219
+ // $('.list-group').on( 'request.j1Scroll', function( event, path, fetchPromise ) {
220
+ // var logger = log4javascript.getLogger('j1.adapter.infiniteScroll');
221
+ // var log_text = `\n request for the next page to be loaded from path: ${path}`;
222
+ // logger.info(log_text);
223
+ // });
224
+ ---------------------------------------------------------------------- {% endcomment %}
225
+
226
+ // END scroller_id: {{ scroller_id }}
227
+ {% endif %} {% endfor %}
228
+ clearInterval(dependencies_met_page_ready);
229
+ }
230
+ });
231
+ // END generate scrollers
232
+ },
233
+
234
+ // -------------------------------------------------------------------------
235
+ // messageHandler: MessageHandler for j1Scroll module
236
+ // Manage messages send from other J1 modules
237
+ // -------------------------------------------------------------------------
238
+ messageHandler: function (sender, message) {
239
+ var json_message = JSON.stringify(message, undefined, 2);
240
+
241
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
242
+ logger.debug(logText);
243
+
244
+ // -----------------------------------------------------------------------
245
+ // Process commands|actions
246
+ // -----------------------------------------------------------------------
247
+ if (message.type === 'command' && message.action === 'module_initialized') {
248
+ //
249
+ // Place handling of command|action here
250
+ //
251
+ logger.info('\n' + message.text);
252
+ }
253
+
254
+ //
255
+ // Place handling of other command|action here
256
+ //
257
+
258
+ return true;
259
+ }, // END messageHandler
260
+
261
+ // -------------------------------------------------------------------------
262
+ // setState()
263
+ // Sets the current (processing) state of the module
264
+ // -------------------------------------------------------------------------
265
+ setState: function (stat) {
266
+ _this.state = stat;
267
+ }, // END setState
268
+
269
+ // -------------------------------------------------------------------------
270
+ // getState()
271
+ // Returns the current (processing) state of the module
272
+ // -------------------------------------------------------------------------
273
+ getState: function () {
274
+ return _this.state;
275
+ } // END getState
276
+
277
+ }; // END return
278
+ })(j1, window);
279
+
280
+ {% endcapture %}
281
+ {% if production %}
282
+ {{ cache | minifyJS }}
283
+ {% else %}
284
+ {{ cache | strip_empty_lines }}
285
+ {% endif %}
286
+ {% assign cache = nil %}
@@ -17885,6 +17885,48 @@ a.card-title:hover {
17885
17885
  border-top: 1px solid rgba(0, 0, 0, 0.04);
17886
17886
  border-bottom: 1px solid rgba(0, 0, 0, 0.04); }
17887
17887
 
17888
+ .list-group-item {
17889
+ width: 96%;
17890
+ margin-right: 1% !important; }
17891
+
17892
+ /* Media breakpoints
17893
+ -------------------------------------------------------------------------------- */
17894
+ @media only screen and (min-width: 576px) {
17895
+ .list-group-item.items-auto {
17896
+ width: 48.3%; }
17897
+ .list-group-item.items-1 {
17898
+ width: 96%; }
17899
+ .list-group-item.items-2 {
17900
+ width: 48.3%; }
17901
+ .list-group-item.items-3 {
17902
+ width: 48.3%; }
17903
+ .list-group-item.items-4 {
17904
+ width: 48.3%; } }
17905
+
17906
+ @media only screen and (min-width: 768px) {
17907
+ .list-group-item.items-auto {
17908
+ width: 31.333%; }
17909
+ .list-group-item.items-1 {
17910
+ width: 96%; }
17911
+ .list-group-item.items-2 {
17912
+ width: 48.3%; }
17913
+ .list-group-item.items-3 {
17914
+ width: 48.3%; }
17915
+ .list-group-item.items-4 {
17916
+ width: 48.3%; } }
17917
+
17918
+ @media only screen and (min-width: 992px) {
17919
+ .list-group-item.items-auto {
17920
+ width: 23.8%; }
17921
+ .list-group-item.items-1 {
17922
+ width: 96%; }
17923
+ .list-group-item.items-2 {
17924
+ width: 48.3%; }
17925
+ .list-group-item.items-3 {
17926
+ width: 31.333%; }
17927
+ .list-group-item.items-4 {
17928
+ width: 23.8%; } }
17929
+
17888
17930
  /*
17889
17931
  # -----------------------------------------------------------------------------
17890
17932
  # ~/theme_uno/extentions/_pages.scss