j1-template 2021.1.27 → 2021.1.28
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/content_generator_article_navigator.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +6 -4
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
- data/_layouts/default.html +1 -0
- data/assets/themes/j1/adapter/js/j1scroll.js +123 -44
- data/assets/themes/j1/modules/j1Scroll/css/theme/uno.min.css +1 -1
- data/assets/themes/j1/modules/j1Scroll/js/j1scroll.js +273 -252
- data/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js +16 -0
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/builder/blog_navigator.yml +1 -0
- data/lib/starter_web/_data/modules/{infiniteScroll.yml → j1scroll.yml} +16 -25
- data/lib/starter_web/_data/resources.yml +3 -28
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/blog/navigator/index.html +3 -2
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +4 -4
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d149f9e04f389fc677449fe654ff144b8536834de7cb6bc9f61c806df4ca858
|
4
|
+
data.tar.gz: 95ee34bd117d6c2b6a49274d21048be1cb5e530a6474d3055f006aa8e2197f34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
|
data/_layouts/default.html
CHANGED
@@ -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 %}
|
@@ -7,7 +7,7 @@ regenerate: true
|
|
7
7
|
{% comment %}
|
8
8
|
# -----------------------------------------------------------------------------
|
9
9
|
# ~/assets/themes/j1/adapter/js/j1Scroll.js
|
10
|
-
# Liquid template to adapt j1Scroll
|
10
|
+
# Liquid template to adapt j1Scroll plugin
|
11
11
|
#
|
12
12
|
# Product/Info:
|
13
13
|
# https://jekyll.one
|
@@ -21,6 +21,37 @@ regenerate: true
|
|
21
21
|
# -----------------------------------------------------------------------------
|
22
22
|
{% endcomment %}
|
23
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
|
+
|
24
55
|
/*
|
25
56
|
# -----------------------------------------------------------------------------
|
26
57
|
# ~/assets/themes/j1/adapter/js/j1Scroll.js
|
@@ -80,12 +111,10 @@ j1.adapter['j1Scroll'] = (function (j1, window) {
|
|
80
111
|
// Initializer
|
81
112
|
// -------------------------------------------------------------------------
|
82
113
|
init: function (options) {
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
_this = j1.adapter.j1Scroll;
|
88
|
-
logger = log4javascript.getLogger('j1.adapter.j1Scroll');
|
114
|
+
{% comment %} Set global variables
|
115
|
+
-------------------------------------------------------------------------- {% endcomment %}
|
116
|
+
_this = j1.adapter.j1Scroll;
|
117
|
+
logger = log4javascript.getLogger('j1.adapter.j1Scroll');
|
89
118
|
|
90
119
|
// initialize state flag
|
91
120
|
_this.setState('started');
|
@@ -100,60 +129,110 @@ j1.adapter['j1Scroll'] = (function (j1, window) {
|
|
100
129
|
generated: '{{site.time}}'
|
101
130
|
}, options);
|
102
131
|
|
103
|
-
|
104
|
-
|
105
|
-
//
|
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
|
+
|
106
160
|
var log_text = '\n' + 'j1Scroll is being initialized';
|
107
161
|
logger.info(log_text);
|
108
162
|
|
163
|
+
// START generate scrollers
|
109
164
|
var dependencies_met_page_ready = setInterval (function (options) {
|
110
165
|
if (j1.getState() === 'finished') {
|
111
|
-
var log_text = '\n' + 'j1Scroll is being initialized';
|
112
|
-
logger.info(log_text);
|
113
166
|
|
114
|
-
|
115
|
-
|
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 %}
|
116
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
|
+
----------------------------------------------------------------------
|
117
183
|
// status: '.page-scroll-last',
|
118
184
|
// firstPage: 2,
|
119
185
|
// onInit: function(){}, // Callback after plugin has loaded
|
120
186
|
// onBeforeLoad: function(link){}, // Callback before new content is loaded
|
121
187
|
// onAfterLoad: function(html){} // Callback after new content has been loaded
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
}
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
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 %}
|
150
228
|
clearInterval(dependencies_met_page_ready);
|
151
229
|
}
|
152
230
|
});
|
153
|
-
|
231
|
+
// END generate scrollers
|
232
|
+
},
|
154
233
|
|
155
234
|
// -------------------------------------------------------------------------
|
156
|
-
// messageHandler: MessageHandler for
|
235
|
+
// messageHandler: MessageHandler for j1Scroll module
|
157
236
|
// Manage messages send from other J1 modules
|
158
237
|
// -------------------------------------------------------------------------
|
159
238
|
messageHandler: function (sender, message) {
|
@@ -12,4 +12,4 @@
|
|
12
12
|
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
13
13
|
# -----------------------------------------------------------------------------
|
14
14
|
*/
|
15
|
-
.
|
15
|
+
.page-load-status,.page-scroll-last{display:none;padding-top:.5rem;border-top:1px dotted #212121;color:#777}span.infinite-scroll-last{border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:#212121;display:inline-block;margin:0 0 -1px 0;padding:10px 3px}.loader-ellips{font-size:20px;position:relative;width:4em;height:1em;margin:10px auto}.loader-ellips__dot{display:block;width:1em;height:1em;border-radius:.5em;background:#555;position:absolute;animation-duration:.5s;animation-timing-function:ease;animation-iteration-count:infinite}.loader-ellips__dot:nth-child(1),.loader-ellips__dot:nth-child(2){left:0}.loader-ellips__dot:nth-child(3){left:1.5em}.loader-ellips__dot:nth-child(4){left:3em}@keyframes reveal{from{transform:scale(0.001)}to{transform:scale(1)}}@keyframes slide{to{transform:translateX(1.5em)}}.loader-ellips__dot:nth-child(1){animation-name:reveal}.loader-ellips__dot:nth-child(2),.loader-ellips__dot:nth-child(3){animation-name:slide}.loader-ellips__dot:nth-child(4){animation-name:reveal;animation-direction:reverse}
|
@@ -1,252 +1,273 @@
|
|
1
|
-
/*
|
2
|
-
# -----------------------------------------------------------------------------
|
3
|
-
# ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.js
|
4
|
-
# J1 core module for j1scroll
|
5
|
-
#
|
6
|
-
# Product/Info:
|
7
|
-
# https://jekyll.one
|
8
|
-
#
|
9
|
-
# Copyright (C) 2021 Juergen Adams
|
10
|
-
#
|
11
|
-
# J1 Template is licensed under the MIT License.
|
12
|
-
# For details, see https://jekyll.one
|
13
|
-
# -----------------------------------------------------------------------------
|
14
|
-
*/
|
15
|
-
|
16
|
-
// the semi-colon before function invocation is a SAFETY method against
|
17
|
-
// concatenated scripts and/or other plugins which may NOT be closed
|
18
|
-
// properly.
|
19
|
-
//
|
20
|
-
;(function($, window, document, undefined) {
|
21
|
-
|
22
|
-
'use strict';
|
23
|
-
|
24
|
-
// Create the defaults
|
25
|
-
var pluginName = 'j1Scroll',
|
26
|
-
defaults = {
|
27
|
-
type: 'infiniteScroll',
|
28
|
-
|
29
|
-
elementScroll: false,
|
30
|
-
firstPage: 2,
|
31
|
-
lastPage: false,
|
32
|
-
loadStatus: true,
|
33
|
-
onInit: function (){}, // callback after plugin has initialized
|
34
|
-
onBeforeLoad: function (){}, // callback before new items are loaded
|
35
|
-
onAfterLoad: function (){} // callback after new items are loaded
|
36
|
-
};
|
37
|
-
|
38
|
-
// Plugin constructor
|
39
|
-
function Plugin (element, options) {
|
40
|
-
this.element = element;
|
41
|
-
this.settings = $.extend( {}, defaults, options);
|
42
|
-
this.settings.elementID = '#' + this.element["id"]
|
43
|
-
|
44
|
-
// call the initializer
|
45
|
-
this.init(this.settings);
|
46
|
-
}
|
47
|
-
|
48
|
-
// Avoid Plugin.prototype conflicts
|
49
|
-
$.extend(Plugin.prototype, {
|
50
|
-
// -------------------------------------------------------------------------
|
51
|
-
// init: initializer
|
52
|
-
// -------------------------------------------------------------------------
|
53
|
-
init: function(options) {
|
54
|
-
var logger = log4javascript.getLogger('j1Scroll');
|
55
|
-
|
56
|
-
logger.info('\n' + 'initializing plugin: started');
|
57
|
-
logger.info('\n' + 'state: started');
|
58
|
-
|
59
|
-
if (options.loadStatus) {
|
60
|
-
var spinner = '<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';
|
61
|
-
$(spinner).insertAfter(options.elementID);
|
62
|
-
}
|
63
|
-
|
64
|
-
if (options.infoLastPage ) {
|
65
|
-
var scroll_last_en = 'More articles can be found with the ';
|
66
|
-
var scroll_last_de = 'Weitere Artikel finden Sie im ';
|
67
|
-
var scroll_last;
|
68
|
-
|
69
|
-
if (document.documentElement.lang === 'en') {
|
70
|
-
scroll_last = scroll_last_en;
|
71
|
-
} else if (document.documentElement.lang === 'de') {
|
72
|
-
scroll_last = scroll_last_de;
|
73
|
-
} else {
|
74
|
-
scroll_last = scroll_last_en;
|
75
|
-
}
|
76
|
-
|
77
|
-
if ( this.settings.elementScroll ) {
|
78
|
-
this.scroller = this.element;
|
79
|
-
} else {
|
80
|
-
this.scroller = window;
|
81
|
-
}
|
82
|
-
var message = '<div class="page-scroll-last"><p class="infinite-scroll-last">' + scroll_last + '<a href="/pages/public/blog/navigator/">Blog Navigator</a></p> </div>';
|
83
|
-
$(message).insertAfter(options.elementID);
|
84
|
-
}
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
logger.info('\n' + '
|
90
|
-
logger.info('\n' + '
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
logger.info('\n' + '
|
95
|
-
|
96
|
-
|
97
|
-
//
|
98
|
-
//
|
99
|
-
//
|
100
|
-
isBottomReached
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.js
|
4
|
+
# J1 core module for j1scroll
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2021 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Template is licensed under the MIT License.
|
12
|
+
# For details, see https://jekyll.one
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
// the semi-colon before function invocation is a SAFETY method against
|
17
|
+
// concatenated scripts and/or other plugins which may NOT be closed
|
18
|
+
// properly.
|
19
|
+
//
|
20
|
+
;(function($, window, document, undefined) {
|
21
|
+
|
22
|
+
'use strict';
|
23
|
+
|
24
|
+
// Create the defaults
|
25
|
+
var pluginName = 'j1Scroll',
|
26
|
+
defaults = {
|
27
|
+
type: 'infiniteScroll',
|
28
|
+
scrollOffset: 400,
|
29
|
+
elementScroll: false,
|
30
|
+
firstPage: 2,
|
31
|
+
lastPage: false,
|
32
|
+
loadStatus: true,
|
33
|
+
onInit: function (){}, // callback after plugin has initialized
|
34
|
+
onBeforeLoad: function (){}, // callback before new items are loaded
|
35
|
+
onAfterLoad: function (){} // callback after new items are loaded
|
36
|
+
};
|
37
|
+
|
38
|
+
// Plugin constructor
|
39
|
+
function Plugin (element, options) {
|
40
|
+
this.element = element;
|
41
|
+
this.settings = $.extend( {}, defaults, options);
|
42
|
+
this.settings.elementID = '#' + this.element["id"]
|
43
|
+
|
44
|
+
// call the initializer
|
45
|
+
this.init(this.settings);
|
46
|
+
}
|
47
|
+
|
48
|
+
// Avoid Plugin.prototype conflicts
|
49
|
+
$.extend(Plugin.prototype, {
|
50
|
+
// -------------------------------------------------------------------------
|
51
|
+
// init: initializer
|
52
|
+
// -------------------------------------------------------------------------
|
53
|
+
init: function(options) {
|
54
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
55
|
+
|
56
|
+
logger.info('\n' + 'initializing plugin: started');
|
57
|
+
logger.info('\n' + 'state: started');
|
58
|
+
|
59
|
+
if (options.loadStatus) {
|
60
|
+
var spinner = '<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';
|
61
|
+
$(spinner).insertAfter(options.elementID);
|
62
|
+
}
|
63
|
+
|
64
|
+
if (options.infoLastPage ) {
|
65
|
+
var scroll_last_en = 'More articles can be found with the ';
|
66
|
+
var scroll_last_de = 'Weitere Artikel finden Sie im ';
|
67
|
+
var scroll_last;
|
68
|
+
|
69
|
+
if (document.documentElement.lang === 'en') {
|
70
|
+
scroll_last = scroll_last_en;
|
71
|
+
} else if (document.documentElement.lang === 'de') {
|
72
|
+
scroll_last = scroll_last_de;
|
73
|
+
} else {
|
74
|
+
scroll_last = scroll_last_en;
|
75
|
+
}
|
76
|
+
|
77
|
+
if ( this.settings.elementScroll ) {
|
78
|
+
this.scroller = this.element;
|
79
|
+
} else {
|
80
|
+
this.scroller = window;
|
81
|
+
}
|
82
|
+
var message = '<div class="page-scroll-last"><p class="infinite-scroll-last">' + scroll_last + '<a href="/pages/public/blog/navigator/">Blog Navigator</a></p> </div>';
|
83
|
+
$(message).insertAfter(options.elementID);
|
84
|
+
}
|
85
|
+
|
86
|
+
// initialize infinite scroll
|
87
|
+
if ( options.type === 'infiniteScroll') {
|
88
|
+
logger.info('\n' + 'processing mode: infiniteScroll');
|
89
|
+
logger.info('\n' + 'loading items from path: ' + options.path + "#");
|
90
|
+
logger.info('\n' + 'monitoring element set to: ' + this.scroller);
|
91
|
+
this.registerScrollEvent(options);
|
92
|
+
}
|
93
|
+
logger.info('\n' + 'initializing plugin: finished');
|
94
|
+
logger.info('\n' + 'state: finished');
|
95
|
+
},
|
96
|
+
// -------------------------------------------------------------------------
|
97
|
+
// bottomReached: detect final scroll position
|
98
|
+
// NOTE: the calculation for BOTTOM position is different for
|
99
|
+
// elementScroll and windowScroll. For elementScroll, the
|
100
|
+
// trigger isBottomReached is TRUE, if the scroll position has
|
101
|
+
// the end of the container PLUS a given scrollOffset.
|
102
|
+
// For windowScroll, the trigger isBottomReached is TRUE, if
|
103
|
+
// the scroll position has the end of the window MINUS
|
104
|
+
// a given scrollOffset.
|
105
|
+
// -------------------------------------------------------------------------
|
106
|
+
isBottomReached: function (options) {
|
107
|
+
var _this = this;
|
108
|
+
var bottom, scrollY;
|
109
|
+
var clientHeight = $(options.elementID).height();
|
110
|
+
|
111
|
+
if ( _this.settings.elementScroll ) {
|
112
|
+
// check scroll position of the container items are to be added
|
113
|
+
var $window = $(window);
|
114
|
+
var viewport_top = $window.scrollTop();
|
115
|
+
var viewport_height = $window.height();
|
116
|
+
var viewport_bottom = viewport_top + viewport_height - options.scrollOffset;
|
117
|
+
var $elm = $(options.elementID);
|
118
|
+
var top = $elm.offset().top + clientHeight;
|
119
|
+
var height = $elm.height();
|
120
|
+
bottom = top + height;
|
121
|
+
|
122
|
+
|
123
|
+
return (top >= viewport_top && top < viewport_bottom) ||
|
124
|
+
(bottom > viewport_top && bottom <= viewport_bottom) ||
|
125
|
+
(height > viewport_height && top <= viewport_top && bottom >= viewport_bottom);
|
126
|
+
} else {
|
127
|
+
// check scroll position of the (overall) window
|
128
|
+
return (window.innerHeight + window.pageYOffset + options.scrollOffset >= document.body.offsetHeight);
|
129
|
+
}
|
130
|
+
},
|
131
|
+
// -------------------------------------------------------------------------
|
132
|
+
// detectScroll: EventHandler to load new items for infinite scroll
|
133
|
+
// if final scroll position reached
|
134
|
+
// -------------------------------------------------------------------------
|
135
|
+
registerScrollEvent: function (options) {
|
136
|
+
var _this = this;
|
137
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
138
|
+
|
139
|
+
logger.info('\n' + 'scroll event: register');
|
140
|
+
|
141
|
+
var eventHandler_onscroll = function (event) {
|
142
|
+
var options = _this.settings;
|
143
|
+
|
144
|
+
if (_this.isBottomReached(options)) {
|
145
|
+
if (options.firstPage > options.lastPage ) {
|
146
|
+
logger.info('\n' + 'last page detected on: ' + options.lastPage);
|
147
|
+
window.removeEventListener('scroll', eventHandler_onscroll);
|
148
|
+
logger.info('\n' + 'scroll event: removed');
|
149
|
+
|
150
|
+
if (options.infoLastPage ) {
|
151
|
+
_this.infoLastPage(options);
|
152
|
+
}
|
153
|
+
return false;
|
154
|
+
}
|
155
|
+
_this.getNewPost(options);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
window.addEventListener('scroll', eventHandler_onscroll);
|
159
|
+
|
160
|
+
logger.info('\n' + 'scroll event: registered');
|
161
|
+
},
|
162
|
+
// -------------------------------------------------------------------------
|
163
|
+
// getNewPost: load new items (from current path)
|
164
|
+
// Note: loader flag prevents to load items if AJAX load in progress
|
165
|
+
// is NOT finished
|
166
|
+
// -------------------------------------------------------------------------
|
167
|
+
getNewPost: function (options) {
|
168
|
+
var _this = this;
|
169
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
170
|
+
|
171
|
+
logger.info('\n' + 'trigger loading ');
|
172
|
+
|
173
|
+
// initialze loader flag
|
174
|
+
if (this.itemsLoaded === false) return false;
|
175
|
+
|
176
|
+
// set loader flag (false == not loaded)
|
177
|
+
this.itemsLoaded = false;
|
178
|
+
|
179
|
+
// display spinner while loading
|
180
|
+
if (options.loadStatus) {
|
181
|
+
logger.info('\n' + 'show: spinner');
|
182
|
+
$('.loader-ellips').show();
|
183
|
+
}
|
184
|
+
|
185
|
+
var xmlhttp = new XMLHttpRequest();
|
186
|
+
xmlhttp.onreadystatechange = function () {
|
187
|
+
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
|
188
|
+
if (xmlhttp.status == 200) {
|
189
|
+
options.firstPage++;
|
190
|
+
var childItems = _this.getChildItemsByAjaxHTML(options, xmlhttp.responseText);
|
191
|
+
_this.appendNewItems(childItems);
|
192
|
+
|
193
|
+
logger.info('\n' + 'loading new items: successful');
|
194
|
+
|
195
|
+
// hide the spinner after loading
|
196
|
+
if (options.loadStatus) {
|
197
|
+
logger.info('\n' + 'hide: spinner');
|
198
|
+
$('.loader-ellips').hide();
|
199
|
+
}
|
200
|
+
|
201
|
+
// set loader flag (true == loaded)
|
202
|
+
return _this.itemsLoaded = true;
|
203
|
+
} else {
|
204
|
+
// hide the spinner
|
205
|
+
if (options.loadStatus) {
|
206
|
+
logger.info('\n' + 'hide: spinner');
|
207
|
+
$('.loader-ellips').hide();
|
208
|
+
}
|
209
|
+
|
210
|
+
logger.error('\n' + 'loading new items failed, HTTP response: ' + xmlhttp.status );
|
211
|
+
// set loader flag (true == loaded)
|
212
|
+
return _this.itemsLoaded = false;
|
213
|
+
}
|
214
|
+
}
|
215
|
+
};
|
216
|
+
logger.info('\n' + 'loading new items from path: ' + options.path + options.firstPage);
|
217
|
+
xmlhttp.open("GET", location.origin + options.path + options.firstPage + '/index.html', true);
|
218
|
+
xmlhttp.send();
|
219
|
+
|
220
|
+
},
|
221
|
+
// -------------------------------------------------------------------------
|
222
|
+
// getChildItemsByAjaxHTML: extract items from page loaded
|
223
|
+
// -------------------------------------------------------------------------
|
224
|
+
getChildItemsByAjaxHTML: function (options, HTMLText) {
|
225
|
+
var newHTML = document.createElement('html');
|
226
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
227
|
+
|
228
|
+
logger.info('\n' + 'load new items');
|
229
|
+
newHTML.innerHTML = HTMLText;
|
230
|
+
var childItems = newHTML.querySelectorAll(options.elementID + ' > *');
|
231
|
+
return childItems;
|
232
|
+
},
|
233
|
+
// -------------------------------------------------------------------------
|
234
|
+
// appendNewItems: append items and run post processing
|
235
|
+
// -------------------------------------------------------------------------
|
236
|
+
appendNewItems: function (items) {
|
237
|
+
var _this = this;
|
238
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
239
|
+
|
240
|
+
logger.info('\n' + 'append new items');
|
241
|
+
items.forEach(function (item) {
|
242
|
+
_this.element.appendChild(item);
|
243
|
+
});
|
244
|
+
|
245
|
+
logger.info('\n' + 'post processing: createDropCap');
|
246
|
+
// initialize backdrops
|
247
|
+
j1.core.createDropCap();
|
248
|
+
},
|
249
|
+
// -------------------------------------------------------------------------
|
250
|
+
// getNewPost: load/append new items
|
251
|
+
// Note: loader flag prevents to load items if AJAX load in progress
|
252
|
+
// is NOT finished
|
253
|
+
// -------------------------------------------------------------------------
|
254
|
+
infoLastPage: function (options) {
|
255
|
+
var _this = this;
|
256
|
+
var logger = log4javascript.getLogger('j1Scroll');
|
257
|
+
|
258
|
+
logger.info('\n' + 'show: infoLastPage');
|
259
|
+
$('.page-scroll-last').show();
|
260
|
+
}
|
261
|
+
}); // END prototype
|
262
|
+
|
263
|
+
// wrapper around the constructor to prevent multiple instantiations
|
264
|
+
$.fn [pluginName] = function(options) {
|
265
|
+
return this.each(function() {
|
266
|
+
if (!$.data( this, "plugin_" + pluginName)) {
|
267
|
+
$.data(this, "plugin_" +
|
268
|
+
pluginName, new Plugin(this, options));
|
269
|
+
}
|
270
|
+
});
|
271
|
+
};
|
272
|
+
|
273
|
+
})(jQuery, window, document);
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js
|
4
|
+
# J1 core module for j1scroll
|
5
|
+
#
|
6
|
+
# Product/Info:
|
7
|
+
# https://jekyll.one
|
8
|
+
#
|
9
|
+
# Copyright (C) 2021 Juergen Adams
|
10
|
+
#
|
11
|
+
# J1 Template is licensed under the MIT License.
|
12
|
+
# For details, see https://jekyll.one
|
13
|
+
# -----------------------------------------------------------------------------
|
14
|
+
*/
|
15
|
+
|
16
|
+
(function(e,c,a,g){var d="j1Scroll",f={type:"infiniteScroll",scrollOffset:400,elementScroll:false,firstPage:2,lastPage:false,loadStatus:true,onInit:function(){},onBeforeLoad:function(){},onAfterLoad:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.init(this.settings)}e.extend(b.prototype,{init:function(i){var h=log4javascript.getLogger("j1Scroll");h.info("\ninitializing plugin: started");h.info("\nstate: started");if(i.loadStatus){var n='<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';e(n).insertAfter(i.elementID)}if(i.infoLastPage){var m="More articles can be found with the ";var j="Weitere Artikel finden Sie im ";var l;if(a.documentElement.lang==="en"){l=m}else{if(a.documentElement.lang==="de"){l=j}else{l=m}}if(this.settings.elementScroll){this.scroller=this.element}else{this.scroller=c}var k='<div class="page-scroll-last"><p class="infinite-scroll-last">'+l+'<a href="/pages/public/blog/navigator/">Blog Navigator</a></p> </div>';e(k).insertAfter(i.elementID)}if(i.type==="infiniteScroll"){h.info("\nprocessing mode: infiniteScroll");h.info("\nloading items from path: "+i.path+"#");h.info("\nmonitoring element set to: "+this.scroller);this.registerScrollEvent(i)}h.info("\ninitializing plugin: finished");h.info("\nstate: finished")},isBottomReached:function(s){var n=this;var h,p;var m=e(s.elementID).height();if(n.settings.elementScroll){var j=e(c);var r=j.scrollTop();var i=j.height();var l=r+i-s.scrollOffset;var k=e(s.elementID);var o=k.offset().top+m;var q=k.height();h=o+q;return(o>=r&&o<l)||(h>r&&h<=l)||(q>i&&o<=r&&h>=l)}else{return(c.innerHeight+c.pageYOffset+s.scrollOffset>=a.body.offsetHeight)}},registerScrollEvent:function(i){var k=this;var h=log4javascript.getLogger("j1Scroll");h.info("\nscroll event: register");var j=function(m){var l=k.settings;if(k.isBottomReached(l)){if(l.firstPage>l.lastPage){h.info("\nlast page detected on: "+l.lastPage);c.removeEventListener("scroll",j);h.info("\nscroll event: removed");if(l.infoLastPage){k.infoLastPage(l)}return false}k.getNewPost(l)}};c.addEventListener("scroll",j);h.info("\nscroll event: registered")},getNewPost:function(i){var k=this;var h=log4javascript.getLogger("j1Scroll");h.info("\ntrigger loading ");if(this.itemsLoaded===false){return false}this.itemsLoaded=false;if(i.loadStatus){h.info("\nshow: spinner");e(".loader-ellips").show()}var j=new XMLHttpRequest();j.onreadystatechange=function(){if(j.readyState==XMLHttpRequest.DONE){if(j.status==200){i.firstPage++;var l=k.getChildItemsByAjaxHTML(i,j.responseText);k.appendNewItems(l);h.info("\nloading new items: successful");if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}return k.itemsLoaded=true}else{if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}h.error("\nloading new items failed, HTTP response: "+j.status);return k.itemsLoaded=false}}};h.info("\nloading new items from path: "+i.path+i.firstPage);j.open("GET",location.origin+i.path+i.firstPage+"/index.html",true);j.send()},getChildItemsByAjaxHTML:function(j,i){var l=a.createElement("html");var h=log4javascript.getLogger("j1Scroll");h.info("\nload new items");l.innerHTML=i;var k=l.querySelectorAll(j.elementID+" > *");return k},appendNewItems:function(h){var j=this;var i=log4javascript.getLogger("j1Scroll");i.info("\nappend new items");h.forEach(function(k){j.element.appendChild(k)});i.info("\npost processing: createDropCap");j1.core.createDropCap()},infoLastPage:function(i){var j=this;var h=log4javascript.getLogger("j1Scroll");h.info("\nshow: infoLastPage");e(".page-scroll-last").show()}});e.fn[d]=function(h){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,h))}})}})(jQuery,window,document);
|
data/lib/j1/version.rb
CHANGED
data/lib/starter_web/Gemfile
CHANGED
@@ -53,7 +53,7 @@ gem 'jekyll', '~> 4.2'
|
|
53
53
|
|
54
54
|
# Theme Rubies, default: J1 Template (NOT used for the development system)
|
55
55
|
#
|
56
|
-
gem 'j1-template', '~> 2021.1.
|
56
|
+
gem 'j1-template', '~> 2021.1.28'
|
57
57
|
|
58
58
|
# ------------------------------------------------------------------------------
|
59
59
|
# PRODUCTION: Gem needed for the Jekyll and J1 prod environment
|
data/lib/starter_web/_config.yml
CHANGED
@@ -53,7 +53,7 @@ environment: production
|
|
53
53
|
# ------------------------------------------------------------------------------
|
54
54
|
# Sets the build version of J1 Template Gem
|
55
55
|
#
|
56
|
-
version: 2021.1.
|
56
|
+
version: 2021.1.28
|
57
57
|
|
58
58
|
# version
|
59
59
|
# ------------------------------------------------------------------------------
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# ------------------------------------------------------------------------------
|
2
|
-
# ~/_data/modules/
|
2
|
+
# ~/_data/modules/j1Scroll.yml
|
3
3
|
# User configuration for J1 infiniteScroll
|
4
4
|
#
|
5
5
|
# Product/Info:
|
@@ -16,9 +16,9 @@
|
|
16
16
|
#
|
17
17
|
about_config:
|
18
18
|
|
19
|
-
title:
|
19
|
+
title:
|
20
20
|
scope: User settings
|
21
|
-
location: _data/modules/
|
21
|
+
location: _data/modules/j1Scroll.yml
|
22
22
|
|
23
23
|
# ------------------------------------------------------------------------------
|
24
24
|
# User configuration settings
|
@@ -27,40 +27,31 @@ settings:
|
|
27
27
|
enabled: true
|
28
28
|
|
29
29
|
scrollers:
|
30
|
-
|
31
|
-
# ==========================================================================
|
32
|
-
# Image Galleries
|
33
|
-
#
|
34
|
-
|
35
30
|
# --------------------------------------------------------------------------
|
36
31
|
# News Panel
|
37
32
|
#
|
38
33
|
- scroller:
|
39
34
|
enabled: true
|
40
35
|
id: home_news_panel
|
41
|
-
|
42
|
-
|
36
|
+
container: home_news_panel-scroll-group
|
37
|
+
path: /assets/data/news_panel_posts/page
|
38
|
+
elementScroll: true # false = window, true = container
|
39
|
+
scrollOffset: 100
|
43
40
|
lastPage: 4
|
44
|
-
|
45
|
-
scrollThreshold: 10
|
46
|
-
scrollOffset: 470
|
47
|
-
checkLastPage: true
|
48
|
-
check_status: true
|
41
|
+
infoLastPage: true
|
49
42
|
|
50
43
|
# --------------------------------------------------------------------------
|
51
|
-
#
|
44
|
+
# Blog Navigator Preview
|
52
45
|
#
|
53
46
|
- scroller:
|
54
47
|
enabled: true
|
55
|
-
id:
|
56
|
-
|
57
|
-
pages
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
checkLastPage: true
|
63
|
-
check_status: true
|
48
|
+
id: blog_navigator_preview
|
49
|
+
container: timeline
|
50
|
+
path: /pages/public/blog/navigator/page
|
51
|
+
elementScroll: true
|
52
|
+
scrollOffset: 200
|
53
|
+
lastPage: 6
|
54
|
+
infoLastPage: false
|
64
55
|
|
65
56
|
# ------------------------------------------------------------------------------
|
66
57
|
# END config
|
@@ -1261,30 +1261,8 @@ resources:
|
|
1261
1261
|
init_function: [ j1.adapter.rtextResizer.init ]
|
1262
1262
|
|
1263
1263
|
# ----------------------------------------------------------------------------
|
1264
|
-
#
|
1265
|
-
# NOTE: https://infinite-scroll.com/
|
1264
|
+
# showOnScroll
|
1266
1265
|
#
|
1267
|
-
- name: infiniteScroll
|
1268
|
-
resource:
|
1269
|
-
id: infinitescroll
|
1270
|
-
enabled: true
|
1271
|
-
comment: J1 infiniteScroll
|
1272
|
-
region: head
|
1273
|
-
layout: [ all ]
|
1274
|
-
required: ondemand # always | ondemand
|
1275
|
-
preload: false # property currently unused
|
1276
|
-
script_load: defer
|
1277
|
-
dependencies: false
|
1278
|
-
pass_init_data: false
|
1279
|
-
data:
|
1280
|
-
css: [ modules/infiniteScroll/css/theme/uno ]
|
1281
|
-
files: [ adapter/js/infiniteScroll.js ]
|
1282
|
-
js: [ modules/infiniteScroll/js/infiniteScroll ]
|
1283
|
-
init_function: [ j1.adapter.infiniteScroll.init ]
|
1284
|
-
|
1285
|
-
# ----------------------------------------------------------------------------
|
1286
|
-
# infiniteScroll
|
1287
|
-
# NOTE: https://infinite-scroll.com/
|
1288
1266
|
#
|
1289
1267
|
- name: showOnScroll
|
1290
1268
|
resource:
|
@@ -1322,11 +1300,8 @@ resources:
|
|
1322
1300
|
pass_init_data: false
|
1323
1301
|
data:
|
1324
1302
|
css: [ modules/j1Scroll/css/theme/uno ]
|
1325
|
-
files: [
|
1326
|
-
|
1327
|
-
adapter/js/j1scroll.js
|
1328
|
-
]
|
1329
|
-
js: []
|
1303
|
+
files: [ adapter/js/j1scroll.js ]
|
1304
|
+
js: [ modules/j1Scroll/js/j1scroll ]
|
1330
1305
|
init_function: [ j1.adapter.j1Scroll.init ]
|
1331
1306
|
|
1332
1307
|
# ------------------------------------------------------------------------------
|
@@ -423,7 +423,7 @@ end::tables[]
|
|
423
423
|
// -----------------------------------------------------------------------------
|
424
424
|
tag::products[]
|
425
425
|
:j1--license: MIT License
|
426
|
-
:j1--version: 2021.1.
|
426
|
+
:j1--version: 2021.1.28
|
427
427
|
:j1--site-name: Jekyll One
|
428
428
|
end::products[]
|
429
429
|
|
@@ -11,10 +11,11 @@ tags: [ Navigator ]
|
|
11
11
|
pagination:
|
12
12
|
enabled: true
|
13
13
|
permalink: /page:num/
|
14
|
+
per_page: 2
|
14
15
|
|
15
16
|
sort: date
|
16
17
|
toc: true
|
17
|
-
fam_menu_id:
|
18
|
+
fam_menu_id: default
|
18
19
|
|
19
20
|
analytics: true
|
20
21
|
advertising: false
|
@@ -22,7 +23,7 @@ comments: false
|
|
22
23
|
|
23
24
|
regenerate: true # needed to update pagination pages
|
24
25
|
|
25
|
-
resources: []
|
26
|
+
resources: [ animate, j1scroll ]
|
26
27
|
resource_options:
|
27
28
|
- attic:
|
28
29
|
padding_top: 400
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: j1-template
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2021.1.
|
4
|
+
version: 2021.1.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- juergen_jekyll_one
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -544,6 +544,7 @@ files:
|
|
544
544
|
- assets/themes/j1/modules/j1Scroll/css/theme/uno.css
|
545
545
|
- assets/themes/j1/modules/j1Scroll/css/theme/uno.min.css
|
546
546
|
- assets/themes/j1/modules/j1Scroll/js/j1scroll.js
|
547
|
+
- assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js
|
547
548
|
- assets/themes/j1/modules/jquery/css/jqueryUI/theme.css
|
548
549
|
- assets/themes/j1/modules/jquery/css/jqueryUI/theme.min.css
|
549
550
|
- assets/themes/j1/modules/jquery/js/jquery-3.5.1.min.map
|
@@ -1009,7 +1010,6 @@ files:
|
|
1009
1010
|
- lib/starter_web/_data/modules/defaults/cookieconsent.yml
|
1010
1011
|
- lib/starter_web/_data/modules/defaults/fam.yml
|
1011
1012
|
- lib/starter_web/_data/modules/defaults/framer.yml
|
1012
|
-
- lib/starter_web/_data/modules/defaults/infiniteScroll.yml
|
1013
1013
|
- lib/starter_web/_data/modules/defaults/log4javascript.yml
|
1014
1014
|
- lib/starter_web/_data/modules/defaults/log4r.yml
|
1015
1015
|
- lib/starter_web/_data/modules/defaults/navigator.yml
|
@@ -1018,7 +1018,7 @@ files:
|
|
1018
1018
|
- lib/starter_web/_data/modules/defaults/toccer.yml
|
1019
1019
|
- lib/starter_web/_data/modules/fam.yml
|
1020
1020
|
- lib/starter_web/_data/modules/framer.yml
|
1021
|
-
- lib/starter_web/_data/modules/
|
1021
|
+
- lib/starter_web/_data/modules/j1scroll.yml
|
1022
1022
|
- lib/starter_web/_data/modules/log4javascript.yml
|
1023
1023
|
- lib/starter_web/_data/modules/log4r.yml
|
1024
1024
|
- lib/starter_web/_data/modules/navigator.yml
|
@@ -1,73 +0,0 @@
|
|
1
|
-
# ------------------------------------------------------------------------------
|
2
|
-
# ~/_data/modules/infiniteScroll.yml
|
3
|
-
# User configuration for J1 infiniteScroll
|
4
|
-
#
|
5
|
-
# Product/Info:
|
6
|
-
# https://jekyll.one
|
7
|
-
#
|
8
|
-
# Copyright (C) 2021 Juergen Adams
|
9
|
-
#
|
10
|
-
# J1 Template is licensed under the MIT License.
|
11
|
-
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
12
|
-
# ------------------------------------------------------------------------------
|
13
|
-
|
14
|
-
# ------------------------------------------------------------------------------
|
15
|
-
# About this configuration (used for J1 CC only)
|
16
|
-
#
|
17
|
-
about_config:
|
18
|
-
|
19
|
-
title: infiniteScroll
|
20
|
-
scope: Default settings
|
21
|
-
location: _data/modules/defaults/infiniteScroll.yml
|
22
|
-
|
23
|
-
# ------------------------------------------------------------------------------
|
24
|
-
# Default configuration settings
|
25
|
-
#
|
26
|
-
settings:
|
27
|
-
|
28
|
-
# ----------------------------------------------------------------------------
|
29
|
-
# GENERAL gallery settings
|
30
|
-
#
|
31
|
-
# enabled
|
32
|
-
# ----------------------------------------------------------------------------
|
33
|
-
# Enables|Disables the use of a gallery
|
34
|
-
#
|
35
|
-
# xhr_data_path
|
36
|
-
# ----------------------------------------------------------------------------
|
37
|
-
# All data items displayed by a gallery are being read from a
|
38
|
-
# JSON file automatically generated from that configuration.
|
39
|
-
# AJAX get method is used to supply the gallery with respective
|
40
|
-
# the HTML code at the time the gallery is initialized (by the
|
41
|
-
# J1 Adapter for J1 Justified Gallery).
|
42
|
-
#
|
43
|
-
# values: string
|
44
|
-
# default: /assets/data/galleries.json
|
45
|
-
#
|
46
|
-
# instance_type
|
47
|
-
# ----------------------------------------------------------------------------
|
48
|
-
# Specifies if a modules can be run as a single instance
|
49
|
-
# (only) or run in multiple instances.
|
50
|
-
#
|
51
|
-
# NOTE: The parameter instance_type controls how MODULE runner
|
52
|
-
# manages configuration options.
|
53
|
-
#
|
54
|
-
# values: single|multiple
|
55
|
-
# default: single
|
56
|
-
#
|
57
|
-
# rowHeight
|
58
|
-
# ----------------------------------------------------------------------------
|
59
|
-
# All data items displayed by a gallery are being read from a
|
60
|
-
# JSON file automatically generated from that configuration.
|
61
|
-
#
|
62
|
-
# values: string
|
63
|
-
# default: /assets/data/galleries.json
|
64
|
-
#
|
65
|
-
# ----------------------------------------------------------------------------
|
66
|
-
|
67
|
-
enabled: false
|
68
|
-
history: false
|
69
|
-
checkLastPage: true
|
70
|
-
check_status: true
|
71
|
-
|
72
|
-
# ------------------------------------------------------------------------------
|
73
|
-
# END config
|