j1-template 2021.1.27 → 2021.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_includes/themes/j1/layouts/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
|