j1-template 2022.0.13 → 2022.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/themes/j1/adapter/js/advertising.js +20 -28
- data/assets/themes/j1/adapter/js/cookieConsent.js +3 -2
- data/assets/themes/j1/adapter/js/j1.js +28 -12
- 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/modules/advertising.yml +0 -10
- data/lib/starter_web/_data/modules/cookies.yml +5 -0
- data/lib/starter_web/_data/modules/defaults/advertising.yml +7 -7
- data/lib/starter_web/_data/modules/defaults/cookies.yml +10 -8
- 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/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -4
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -4
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -4
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b82f66a38e834f8d58482cd5b873f110de6474e2e0af3a644721b9b55cbbbaf
|
4
|
+
data.tar.gz: 9a611fe54f09585e29a1a355b4ff630d391cc627b86c5e15498244f276e152b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fcefcb4ef9cf86a75550e6155e6ad2607e5b11d8ac693bcd338a932c2ae964b15444b4c19b3803a6d0cc2d1676b979557c834678f7b44f71054ebfd80d57d43
|
7
|
+
data.tar.gz: 0bfed9014849a89820b08932378689492530212dcae7588530389f8bcd1f2af1bb75f2a56e6b3f89d730137e9edd218d43698743f64ae2295e2264e43cd61ae9
|
@@ -111,11 +111,6 @@ var _this;
|
|
111
111
|
var logger;
|
112
112
|
var logText;
|
113
113
|
|
114
|
-
// var domain;
|
115
|
-
// var domainAttribute;
|
116
|
-
// var cookie_option_domain;
|
117
|
-
// var cookie_domain;
|
118
|
-
|
119
114
|
// ---------------------------------------------------------------------------
|
120
115
|
// Main object
|
121
116
|
// ---------------------------------------------------------------------------
|
@@ -147,16 +142,6 @@ var logText;
|
|
147
142
|
url = new liteURL(window.location.href);
|
148
143
|
hostname = url.hostname;
|
149
144
|
|
150
|
-
// domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
151
|
-
// cookie_option_domain = '{{cookie_options.domain}}';
|
152
|
-
|
153
|
-
// // set domain used by cookies
|
154
|
-
// if (cookie_option_domain == 'auto') {
|
155
|
-
// domainAttribute = domain ;
|
156
|
-
// } else {
|
157
|
-
// domainAttribute = hostname;
|
158
|
-
// }
|
159
|
-
|
160
145
|
{% case advertising_provider %}
|
161
146
|
{% when "google" %}
|
162
147
|
// [INFO ] [j1.adapter.advertising ] [ place provider: Google Adsense ]
|
@@ -176,7 +161,7 @@ var logText;
|
|
176
161
|
advertisingProvider = 'Google Adsense';
|
177
162
|
validProviderID = (providerID.includes('your')) ? false : true;
|
178
163
|
if (!validProviderID) {
|
179
|
-
logger.warn('\n' + 'invalid publisherID detected for Google Adsense: ' + providerID);
|
164
|
+
logger.warn('\n' + 'invalid publisherID detected for Google Adsense (GAS): ' + providerID);
|
180
165
|
logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
|
181
166
|
clearInterval(dependencies_met_page_ready);
|
182
167
|
return false;
|
@@ -190,22 +175,22 @@ var logText;
|
|
190
175
|
|
191
176
|
// add gad api dynamically in the head section
|
192
177
|
// -----------------------------------------------------------------
|
193
|
-
logger.info('\n' + 'add
|
178
|
+
logger.info('\n' + 'add gas api in section: head');
|
194
179
|
gadScript.async = true;
|
195
|
-
gadScript.id = '
|
180
|
+
gadScript.id = 'gas-api';
|
196
181
|
gadScript.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
|
197
182
|
gadScript.setAttribute('data-ad-client', 'ca-pub-3885670015316130');
|
198
183
|
document.head.appendChild(gadScript);
|
199
184
|
|
200
185
|
// setup monitor for state changes on all ads configured
|
201
186
|
// ---------------------------------------------------------------
|
202
|
-
logger.
|
187
|
+
logger.debug('\n' + 'setup monitoring');
|
203
188
|
_this.monitor_ads();
|
204
189
|
|
205
190
|
// run protection check
|
206
191
|
// -------------------------------------------------------------------
|
207
192
|
if (checkTrackingProtection) {
|
208
|
-
logger.
|
193
|
+
logger.debug('\n' + 'run checks for tracking protection');
|
209
194
|
_this.check_tracking_protection();
|
210
195
|
|
211
196
|
var dependencies_met_tracking_check_ready = setInterval (function (options) {
|
@@ -300,20 +285,27 @@ var logText;
|
|
300
285
|
// -------------------------------------------------------------------------
|
301
286
|
// monitor_ads()
|
302
287
|
// monitor for state changes on the ad placed in pages (if any)
|
288
|
+
//
|
289
|
+
// NOTE: Check visibility state of the adSlot to prevent multiple
|
290
|
+
// processing of the same slot
|
303
291
|
// -------------------------------------------------------------------------
|
304
292
|
monitor_ads: function () {
|
293
|
+
var logger = log4javascript.getLogger('j1.adapter.advertising.monitor.ads');
|
305
294
|
|
306
295
|
$('.adsbygoogle').attrchange({
|
307
296
|
trackValues: true,
|
308
297
|
callback: function (event) {
|
309
298
|
if (event.newValue === 'unfilled') {
|
310
|
-
var elm
|
311
|
-
|
312
|
-
if (
|
313
|
-
|
314
|
-
if (
|
315
|
-
logger.warn('\n' + '
|
316
|
-
|
299
|
+
var elm = event.target.dataset;
|
300
|
+
var adSlotIsVisible = $('#' + elm.adSlot ).is(":visible");
|
301
|
+
if (adSlotIsVisible) {
|
302
|
+
if (addBorderOnUnfilled) { $('.adsbygoogle').addClass('border--dotted'); }
|
303
|
+
if (elm.adClient) {
|
304
|
+
logger.warn('\n' + 'found ad state ' + event.newValue + ' for slot: ' + elm.adSlot);
|
305
|
+
if (autoHideOnUnfilled) {
|
306
|
+
logger.warn('\n' + ' hide ad for slot: ' + elm.adSlot);
|
307
|
+
$('#' + elm.adSlot ).hide();
|
308
|
+
}
|
317
309
|
}
|
318
310
|
}
|
319
311
|
}
|
@@ -334,7 +326,7 @@ var logText;
|
|
334
326
|
// https://stackoverflow.com/questions/33959324/how-to-detect-if-a-user-is-using-tracking-protection-in-firefox-42
|
335
327
|
// -------------------------------------------------------------------------
|
336
328
|
check_tracking_protection: function () {
|
337
|
-
var logger = log4javascript.getLogger('j1.adapter.advertising.tracking
|
329
|
+
var logger = log4javascript.getLogger('j1.adapter.advertising.monitor.tracking');
|
338
330
|
|
339
331
|
logText = '\n' + 'check for trackingprotection';
|
340
332
|
logger.info(logText);
|
@@ -192,8 +192,9 @@ j1.adapter.cookieConsent = (function (j1, window) {
|
|
192
192
|
}
|
193
193
|
}
|
194
194
|
|
195
|
-
// Failsafe: if 'None' is given for samesite in non-secure
|
196
|
-
//
|
195
|
+
// Failsafe: if 'None' is given for samesite in non-secure
|
196
|
+
// environments open access to cookies to subdomains
|
197
|
+
// ---------------------------------------------------------------------
|
197
198
|
if (same_site == 'None' && !secure) {
|
198
199
|
same_site = 'Lax';
|
199
200
|
}
|
@@ -273,7 +273,6 @@ var j1 = (function () {
|
|
273
273
|
var timestamp_now = date.toISOString();
|
274
274
|
var curr_state = 'started';
|
275
275
|
var gaCookies = j1.findCookie('_ga');
|
276
|
-
var j1Cookies = j1.findCookie('j1');
|
277
276
|
var themerOptions = $.extend({}, {{themer_options | replace: '=>', ':' | replace: 'nil', '""' }});
|
278
277
|
|
279
278
|
// -----------------------------------------------------------------------
|
@@ -346,17 +345,6 @@ var j1 = (function () {
|
|
346
345
|
expires: 365
|
347
346
|
});
|
348
347
|
|
349
|
-
// jadams, 2021-12-06: Check if access to cookies for this site failed.
|
350
|
-
// Possibly, a third-party domain or an attacker tries to access it.
|
351
|
-
if (checkCookies) {
|
352
|
-
if (!user_state) {
|
353
|
-
logger.error('\n' + 'Access to cookie failed or cookie not found: ' + cookie_names.user_state);
|
354
|
-
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
355
|
-
// redirect to error page: blocked content
|
356
|
-
window.location.href = '/446.html';
|
357
|
-
}
|
358
|
-
}
|
359
|
-
|
360
348
|
if (!user_consent.analysis || !user_consent.personalization) {
|
361
349
|
if (expireCookiesOnRequiredOnly) {
|
362
350
|
// expire permanent cookies to session
|
@@ -902,6 +890,20 @@ var j1 = (function () {
|
|
902
890
|
// display page
|
903
891
|
$('#no_flicker').css('display', 'block');
|
904
892
|
|
893
|
+
// jadams, 2021-12-06: Check if access to cookies for this site failed.
|
894
|
+
// Possibly, a third-party domain or an attacker tries to access it.
|
895
|
+
if (checkCookies) {
|
896
|
+
var j1Cookies = j1.findCookie('j1');
|
897
|
+
if (!j1.existsCookie(cookie_names.user_state)) {
|
898
|
+
logger.error('\n' + 'Access to cookie failed or cookie not found: ' + cookie_names.user_state);
|
899
|
+
logger.info('\n' + 'j1 cookies found:' + j1Cookies.length);
|
900
|
+
// redirect to error page: blocked content
|
901
|
+
window.location.href = '/446.html';
|
902
|
+
} else {
|
903
|
+
logger.info('\n' + 'j1 cookies found:' + j1Cookies.length);
|
904
|
+
}
|
905
|
+
}
|
906
|
+
|
905
907
|
// manage Dropcaps if translation is enabled|disabled
|
906
908
|
// -----------------------------------------------------------------
|
907
909
|
if (user_translate.translationEnabled) {
|
@@ -1008,6 +1010,20 @@ var j1 = (function () {
|
|
1008
1010
|
// display the page loaded
|
1009
1011
|
$('#no_flicker').css('display', 'block');
|
1010
1012
|
|
1013
|
+
// jadams, 2021-12-06: Check if access to cookies for this site failed.
|
1014
|
+
// Possibly, a third-party domain or an attacker tries to access it.
|
1015
|
+
if (checkCookies) {
|
1016
|
+
var j1Cookies = j1.findCookie('j1');
|
1017
|
+
if (!j1.existsCookie(cookie_names.user_state)) {
|
1018
|
+
logger.error('\n' + 'Access to cookie failed or cookie not found: ' + cookie_names.user_state);
|
1019
|
+
logger.info('\n' + 'j1 cookies found:' + j1Cookies.length);
|
1020
|
+
// redirect to error page: blocked content
|
1021
|
+
window.location.href = '/446.html';
|
1022
|
+
} else {
|
1023
|
+
logger.info('\n' + 'j1 cookies found:' + j1Cookies.length);
|
1024
|
+
}
|
1025
|
+
}
|
1026
|
+
|
1011
1027
|
// jadams, 2021-11-19: test code for 'tapTarget' of 'materializeCss'
|
1012
1028
|
// See:
|
1013
1029
|
// https://stackoverflow.com/questions/49422111/opening-tap-target-in-materialize-css-for-2-seconds
|
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', '~> 2022.0.
|
56
|
+
gem 'j1-template', '~> 2022.0.14'
|
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: development
|
|
53
53
|
# ------------------------------------------------------------------------------
|
54
54
|
# Sets the build version of J1 Template Gem
|
55
55
|
#
|
56
|
-
version: 2022.0.
|
56
|
+
version: 2022.0.14
|
57
57
|
|
58
58
|
# version
|
59
59
|
# ------------------------------------------------------------------------------
|
@@ -32,14 +32,6 @@ settings:
|
|
32
32
|
# ----------------------------------------------------------------------------
|
33
33
|
# Settings
|
34
34
|
#
|
35
|
-
# enabled
|
36
|
-
# --------------------------------------------------------------------------
|
37
|
-
# Enables or disables the Ad services. If disabled, no ads services are
|
38
|
-
# enabled and no unit container get initialized on any page.
|
39
|
-
#
|
40
|
-
# values: [true|false]
|
41
|
-
# default: false
|
42
|
-
#
|
43
35
|
# provider
|
44
36
|
# --------------------------------------------------------------------------
|
45
37
|
# Currently, only Google adsense (google) is available as an provider
|
@@ -50,8 +42,6 @@ settings:
|
|
50
42
|
#
|
51
43
|
# ----------------------------------------------------------------------------
|
52
44
|
#
|
53
|
-
enabled: false
|
54
|
-
|
55
45
|
google:
|
56
46
|
|
57
47
|
# --------------------------------------------------------------------------
|
@@ -26,5 +26,10 @@ description:
|
|
26
26
|
settings:
|
27
27
|
enabled: true
|
28
28
|
|
29
|
+
# ----------------------------------------------------------------------------
|
30
|
+
# Switches
|
31
|
+
# ----------------------------------------------------------------------------
|
32
|
+
checkCookies: true
|
33
|
+
|
29
34
|
# ------------------------------------------------------------------------------
|
30
35
|
# END config
|
@@ -34,11 +34,12 @@ defaults:
|
|
34
34
|
#
|
35
35
|
# enabled
|
36
36
|
# --------------------------------------------------------------------------
|
37
|
-
# Enables or disables the Ad services. If disabled,
|
38
|
-
#
|
37
|
+
# Enables or disables the Ad services. If disabled, ad services is NOT
|
38
|
+
# initialized and no unit container get initialized on any page even the
|
39
|
+
# module is loaded.
|
39
40
|
#
|
40
41
|
# values: [true|false]
|
41
|
-
# default:
|
42
|
+
# default: true
|
42
43
|
#
|
43
44
|
# provider
|
44
45
|
# --------------------------------------------------------------------------
|
@@ -50,13 +51,12 @@ defaults:
|
|
50
51
|
#
|
51
52
|
# ----------------------------------------------------------------------------
|
52
53
|
#
|
53
|
-
enabled:
|
54
|
-
|
54
|
+
enabled: true
|
55
55
|
provider: google
|
56
|
-
google:
|
57
56
|
|
57
|
+
google:
|
58
58
|
# --------------------------------------------------------------------------
|
59
|
-
# Provider settings
|
59
|
+
# Provider settings (Google)
|
60
60
|
#
|
61
61
|
# publisherID
|
62
62
|
# ------------------------------------------------------------------------
|
@@ -35,15 +35,17 @@ defaults:
|
|
35
35
|
#
|
36
36
|
# checkCookies
|
37
37
|
# --------------------------------------------------------------------------
|
38
|
-
# Check if cookies are created and available to the browser. If the
|
39
|
-
# attributes does NOT allow to create and|or access on cookies,
|
40
|
-
# setting-up a page will fail.
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
38
|
+
# Check if cookies are created and available to the browser. If the
|
39
|
+
# cookie attributes does NOT allow to create and|or access on cookies,
|
40
|
+
# setting-up a page will fail.
|
41
|
+
# For testing sites deplayed on the Internet, it is recommended to enable
|
42
|
+
# checks on cookies to issue an error page (HTML 445) if access on cookies
|
43
|
+
# has failed for some reason. This will prevent severe failures and|or
|
44
|
+
# endless loops accessing a page on missing cookies or invalid cookie
|
45
|
+
# settings.
|
44
46
|
#
|
45
47
|
# values: [false|true]
|
46
|
-
# default:
|
48
|
+
# default: false
|
47
49
|
#
|
48
50
|
# encryptCookiesOnHttp (currently NOT supported)
|
49
51
|
# --------------------------------------------------------------------------
|
@@ -95,7 +97,7 @@ defaults:
|
|
95
97
|
#
|
96
98
|
# ----------------------------------------------------------------------------
|
97
99
|
#
|
98
|
-
checkCookies:
|
100
|
+
checkCookies: false
|
99
101
|
encryptCookiesOnHttp: false
|
100
102
|
expireCookiesOnRequiredOnly: true
|
101
103
|
|
@@ -437,7 +437,7 @@ end::tables[]
|
|
437
437
|
// -----------------------------------------------------------------------------
|
438
438
|
tag::products[]
|
439
439
|
:j1--license: MIT License
|
440
|
-
:j1--version: 2022.0.
|
440
|
+
:j1--version: 2022.0.14
|
441
441
|
:j1--site-name: Jekyll One
|
442
442
|
end::products[]
|
443
443
|
|
@@ -10,7 +10,7 @@ tags: [ Asciidoctor, PDF, Converter ]
|
|
10
10
|
permalink: /pages/public/skeleton/documentation/100_converter/
|
11
11
|
regenerate: false
|
12
12
|
|
13
|
-
resources: [ animate,
|
13
|
+
resources: [ animate, clipboard, lightbox, rouge ]
|
14
14
|
resource_options:
|
15
15
|
- toccer:
|
16
16
|
collapseDepth: 2
|
@@ -9,7 +9,7 @@ tags: [ Asciidoctor, PDF, Converter ]
|
|
9
9
|
permalink: /pages/public/skeleton/documentation/200_themes/
|
10
10
|
regenerate: false
|
11
11
|
|
12
|
-
resources: [ animate,
|
12
|
+
resources: [ animate, clipboard, lightbox, rouge ]
|
13
13
|
resource_options:
|
14
14
|
- toccer:
|
15
15
|
collapseDepth: 2
|
@@ -14,9 +14,6 @@ description: >
|
|
14
14
|
categories: [ Knowledge ]
|
15
15
|
tags: [ Asciidoc, Skeleton, Documentation, PDF ]
|
16
16
|
|
17
|
-
sitemap: false
|
18
|
-
comments: false
|
19
|
-
|
20
17
|
robots:
|
21
18
|
index: false
|
22
19
|
follow: false
|
@@ -24,7 +21,7 @@ robots:
|
|
24
21
|
permalink: /pages/public/skeleton/documentation/
|
25
22
|
regenerate: false
|
26
23
|
|
27
|
-
resources: [ clipboard, lightbox, rouge
|
24
|
+
resources: [ animate, clipboard, lightbox, rouge ]
|
28
25
|
resource_options:
|
29
26
|
- toccer:
|
30
27
|
collapseDepth: 4
|
@@ -12,9 +12,6 @@ description: >
|
|
12
12
|
categories: [ Knowledge ]
|
13
13
|
tags: [ Asciidoc, Skeleton, Document ]
|
14
14
|
|
15
|
-
sitemap: false
|
16
|
-
comments: false
|
17
|
-
|
18
15
|
robots:
|
19
16
|
index: false
|
20
17
|
follow: false
|
@@ -22,7 +19,7 @@ robots:
|
|
22
19
|
permalink: /pages/public/skeleton/multi/
|
23
20
|
regenerate: false
|
24
21
|
|
25
|
-
resources: [
|
22
|
+
resources: [ animate, clipboard, lightbox, rouge ]
|
26
23
|
resource_options:
|
27
24
|
- toccer:
|
28
25
|
collapseDepth: 4
|
@@ -11,9 +11,6 @@ description: >
|
|
11
11
|
categories: [ Knowledge ]
|
12
12
|
tags: [ Asciidoc, Skeleton, Document ]
|
13
13
|
|
14
|
-
sitemap: false
|
15
|
-
comments: false
|
16
|
-
|
17
14
|
robots:
|
18
15
|
index: false
|
19
16
|
follow: false
|
@@ -21,7 +18,7 @@ robots:
|
|
21
18
|
permalink: /pages/public/skeleton/simple/
|
22
19
|
regenerate: false
|
23
20
|
|
24
|
-
resources: [ clipboard,
|
21
|
+
resources: [ animate, clipboard, lightbox, rouge ]
|
25
22
|
resource_options:
|
26
23
|
- toccer:
|
27
24
|
collapseDepth: 4
|
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: 2022.0.
|
4
|
+
version: 2022.0.14
|
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-12-
|
11
|
+
date: 2021-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|