j1-template 2022.0.12 → 2022.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/assets/themes/j1/adapter/js/advertising.js +61 -32
  3. data/assets/themes/j1/adapter/js/algolia.js +9 -9
  4. data/assets/themes/j1/adapter/js/analytics.js +46 -24
  5. data/assets/themes/j1/adapter/js/asciidoctor.js +9 -9
  6. data/assets/themes/j1/adapter/js/attic.js +9 -1
  7. data/assets/themes/j1/adapter/js/bmd.js +9 -10
  8. data/assets/themes/j1/adapter/js/carousel.js +9 -9
  9. data/assets/themes/j1/adapter/js/clipboard.js +8 -8
  10. data/assets/themes/j1/adapter/js/comments.js +31 -10
  11. data/assets/themes/j1/adapter/js/cookieConsent.js +70 -78
  12. data/assets/themes/j1/adapter/js/fab.js +10 -10
  13. data/assets/themes/j1/adapter/js/framer.js +59 -58
  14. data/assets/themes/j1/adapter/js/j1.js +139 -92
  15. data/assets/themes/j1/adapter/js/justifiedGallery.js +11 -10
  16. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +9 -9
  17. data/assets/themes/j1/adapter/js/lightbox.js +11 -4
  18. data/assets/themes/j1/adapter/js/logger.js +10 -3
  19. data/assets/themes/j1/adapter/js/mmenu.js +9 -9
  20. data/assets/themes/j1/adapter/js/navigator.js +9 -9
  21. data/assets/themes/j1/adapter/js/quicksearch.js +9 -9
  22. data/assets/themes/j1/adapter/js/rouge.js +9 -9
  23. data/assets/themes/j1/adapter/js/rtable.js +9 -9
  24. data/assets/themes/j1/adapter/js/rtextResizer.js +9 -9
  25. data/assets/themes/j1/adapter/js/scroller.js +12 -7
  26. data/assets/themes/j1/adapter/js/themer.js +11 -2
  27. data/assets/themes/j1/adapter/js/toccer.js +9 -9
  28. data/assets/themes/j1/adapter/js/translator.js +13 -16
  29. data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +14 -4
  30. data/lib/j1/version.rb +1 -1
  31. data/lib/starter_web/Gemfile +1 -1
  32. data/lib/starter_web/_config.yml +1 -1
  33. data/lib/starter_web/_data/layouts/home.ads.yml +262 -0
  34. data/lib/starter_web/_data/layouts/home.no-ads.yml +262 -0
  35. data/lib/starter_web/_data/layouts/home.yml +1 -1
  36. data/lib/starter_web/_data/modules/advertising.yml +1 -2
  37. data/lib/starter_web/_data/modules/analytics.yml +1 -1
  38. data/lib/starter_web/_data/modules/cookies.yml +0 -2
  39. data/lib/starter_web/_data/modules/defaults/advertising.yml +0 -1
  40. data/lib/starter_web/_data/modules/defaults/comments.yml +4 -4
  41. data/lib/starter_web/_data/modules/defaults/cookies.yml +104 -36
  42. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  43. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  44. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +1 -1
  45. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +1 -1
  46. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.ads.asciidoc +1 -1
  47. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.comments.asciidoc +1 -1
  48. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +1 -1
  49. data/lib/starter_web/collections/posts/public/featured/_posts/2021-03-03-about-j1.adoc +1 -1
  50. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +1 -1
  51. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +1 -1
  52. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +1 -1
  53. data/lib/starter_web/index.html +0 -3
  54. data/lib/starter_web/package.json +1 -1
  55. data/lib/starter_web/pages/public/manuals/dropdown-help.adoc +23 -2
  56. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +100 -166
  57. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  58. data/lib/starter_web/utilsrv/package.json +1 -1
  59. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c037151437cd15323621e862ab96516d0949d4de2d6126a7fd7b2b1ce61ea9f
4
- data.tar.gz: 4d70c7d408321ada5b32579b811c42c2758fec708878f6d839174239632889f8
3
+ metadata.gz: 4f1cafe13f11508c2bba1a30585af76cd2cf2ed917c746dfcdf12f646792b981
4
+ data.tar.gz: 06c239b5297206fde2f28b3f21046712a2f7beca6c8e8111583e2d50339aee0c
5
5
  SHA512:
6
- metadata.gz: 8262cafb8ec127d6ec93d2d39f8ec0d5826f6b3dca61314472af7b88506304f5c54024bee15ccc4a782d7baaeae0a0e39de3e9253b0cb6869d3618e63ea70d67
7
- data.tar.gz: 2da79d073c80ab3a76a8787b443e2d08b6a4bb3d8ef9ff119efb78ac3659b4a27acecab3925bc5f1527f4f2f6c2134f2524174010146c3cf5a28808fd86fa75d
6
+ metadata.gz: 3ece2178ed2e520a8d842411b9000ba5b95f3fe8f2c57aa97b0c568eddde3f5df6ab6533cead28d1ecb4ad560d11d2a5808ce8c6f4e5c1d6caf391811ea18b87
7
+ data.tar.gz: 3e5b29d8ee062cfc81dacccd6f74db3180878fbe3d22f41060256f4275b66c5dc640a500a8a2128663591fb5aed72fa3a1ab2b86c9ebec361518bc6649a78784
@@ -89,6 +89,8 @@ j1.adapter.advertising = (function (j1, window) {
89
89
  {% comment %} Set global variables
90
90
  -------------------------------------------------------------------------------- {% endcomment %}
91
91
  var environment = '{{environment}}';
92
+ var date = new Date();
93
+ var timestamp_now = date.toISOString();
92
94
  var gadScript = document.createElement('script');
93
95
  var adInitializerScript = document.createElement('script');
94
96
  var autoHideOnUnfilled = {{advertising_options.google.autoHideOnUnfilled}};
@@ -102,14 +104,18 @@ var baseUrl;
102
104
  var hostname;
103
105
  var cookie_names;
104
106
  var user_consent;
105
- var domain;
106
- var domainAttribute;
107
- var cookie_option_domain;
108
- var cookie_domain;
107
+ var advertisingProvider;
108
+ var providerID;
109
+ var validProviderID;
109
110
  var _this;
110
111
  var logger;
111
112
  var logText;
112
113
 
114
+ // var domain;
115
+ // var domainAttribute;
116
+ // var cookie_option_domain;
117
+ // var cookie_domain;
118
+
113
119
  // ---------------------------------------------------------------------------
114
120
  // Main object
115
121
  // ---------------------------------------------------------------------------
@@ -125,38 +131,57 @@ var logText;
125
131
  // [INFO ] [j1.adapter.advertising ] [ detected advertising provider (j1_config): {{advertising_provider}}} ]
126
132
  // [INFO ] [j1.adapter.advertising ] [ start processing load region head, layout: {{page.layout}} ]
127
133
 
134
+ // -----------------------------------------------------------------------
135
+ // Default module settings
136
+ // -----------------------------------------------------------------------
137
+ var settings = $.extend({
138
+ module_name: 'j1.adapter.advertising',
139
+ generated: '{{site.time}}'
140
+ }, options);
141
+
142
+ // -----------------------------------------------------------------------
143
+ // Global variable settings
144
+ // -----------------------------------------------------------------------
128
145
  cookie_names = j1.getCookieNames();
129
146
  user_consent = j1.readCookie(cookie_names.user_consent);
130
147
  url = new liteURL(window.location.href);
131
- baseUrl = url.origin;
132
148
  hostname = url.hostname;
133
- domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
134
- cookie_option_domain = '{{cookie_options.domain}}';
135
-
136
- // set domain used by cookies
137
- if (cookie_option_domain == 'auto') {
138
- domainAttribute = domain ;
139
- } else {
140
- domainAttribute = hostname;
141
- }
149
+
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
+ // }
142
159
 
143
160
  {% case advertising_provider %}
144
161
  {% when "google" %}
145
162
  // [INFO ] [j1.adapter.advertising ] [ place provider: Google Adsense ]
163
+
146
164
  _this = j1.adapter.advertising;
147
165
  logger = log4javascript.getLogger('j1.adapter.advertising.google');
166
+
148
167
  // initialize state flag
149
168
  _this.setState('started');
150
169
  logger.info('\n' + 'state: ' + _this.getState());
151
170
  logger.info('\n' + 'module is being initialized');
152
- // default module settings
153
- var settings = $.extend({
154
- module_name: 'j1.adapter.advertising',
155
- generated: '2021-12-18 18:55:38 +0000'
156
- }, options);
157
171
 
158
172
  var dependencies_met_page_ready = setInterval(function() {
159
173
  if (j1.getState() == 'finished') {
174
+
175
+ providerID = '{{advertising_options.google.publisherID}}';
176
+ advertisingProvider = 'Google Adsense';
177
+ validProviderID = (providerID.includes('your')) ? false : true;
178
+ if (!validProviderID) {
179
+ logger.warn('\n' + 'invalid publisherID detected for Google Adsense: ' + providerID);
180
+ logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
181
+ clearInterval(dependencies_met_page_ready);
182
+ return false;
183
+ }
184
+
160
185
  if (user_consent.personalization) {
161
186
  // place all ads configured for the page
162
187
  // NOTE: currently NOT implemented/used
@@ -217,22 +242,26 @@ var logText;
217
242
  }
218
243
  clearInterval(dependencies_met_page_ready);
219
244
  } else {
220
- var gaCookies = j1.findCookie('_ga');
245
+ // manage GAD cookies if no consent is given|rejected
246
+ // -----------------------------------------------------------------
247
+ var gasCookies = j1.findCookie('__ga');
221
248
  logger.warn('\n' + 'consent on cookies disabled for personalization');
222
249
  logger.warn('\n' + 'initialization of module advertising skipped');
223
250
 
224
- // jadams, 2021-12-19: remove cookies on invalid GAD config
225
- // or left cookies from previous session
226
- // -----------------------------------------------------------------
227
- j1.removeCookie({ name: '__gads' });
228
-
229
- // jadams, 2021-12-19: delete cookies in loop doesn't work
230
- // gaCookies.forEach(function (item) {
231
- // logger.warn('\n' + 'delete GAD cookie: ' + item);
232
- // // j1.removeCookie({ name: item, domain: domainAttribute });
233
- // // j1.removeCookie({ name: item });
234
- // });
251
+ // remove cookies on invalid GAS config or left from a previous
252
+ // session/page view if they exists
253
+ // ---------------------------------------------------------------------
254
+ gasCookies.forEach(function (item) {
255
+ // Remove cookies from Google Ads
256
+ if (hostname == 'localhost') {
257
+ j1.removeCookie({ name: item, domain: false, secure: false });
258
+ } else {
259
+ j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
260
+ }
261
+ });
235
262
 
263
+ // manage tracking protection
264
+ // -----------------------------------------------------------------
236
265
  if (checkTrackingProtection) {
237
266
  if (!user_consent.personalization) {
238
267
  logText = '\n' + 'consent on cookies disabled for personalization';
@@ -270,7 +299,7 @@ var logText;
270
299
 
271
300
  // -------------------------------------------------------------------------
272
301
  // monitor_ads()
273
- // monitor for state changes on the ad
302
+ // monitor for state changes on the ad placed in pages (if any)
274
303
  // -------------------------------------------------------------------------
275
304
  monitor_ads: function () {
276
305
 
@@ -98,15 +98,6 @@ j1.adapter.algolia = (function (j1, window) {
98
98
  // -------------------------------------------------------------------------
99
99
  init: function (options) {
100
100
 
101
- // -----------------------------------------------------------------------
102
- // globals
103
- // -----------------------------------------------------------------------
104
- _this = j1.adapter.algolia;
105
- logger = log4javascript.getLogger('j1.adapter.algolia');
106
-
107
- // initialize state flag
108
- _this.state = 'pending';
109
-
110
101
  // -----------------------------------------------------------------------
111
102
  // Default module settings
112
103
  // -----------------------------------------------------------------------
@@ -115,6 +106,15 @@ j1.adapter.algolia = (function (j1, window) {
115
106
  generated: '{{site.time}}'
116
107
  }, options);
117
108
 
109
+ // -----------------------------------------------------------------------
110
+ // Global variable settings
111
+ // -----------------------------------------------------------------------
112
+ _this = j1.adapter.algolia;
113
+ logger = log4javascript.getLogger('j1.adapter.algolia');
114
+
115
+ // initialize state flag
116
+ _this.state = 'pending';
117
+
118
118
  _this.setState('started');
119
119
  logger.info('\n' + 'state: ' + _this.getState());
120
120
  logger.info('\n' + 'module is being initialized');
@@ -85,12 +85,17 @@ j1.adapter.analytics = (function (j1, window) {
85
85
 
86
86
  {% comment %} Set global variables
87
87
  -------------------------------------------------------------------------------- {% endcomment %}
88
- var environment = '{{environment}}';
89
- var gaScript = document.createElement('script');
90
- var trackingID = '{{analytics_options.google.trackingID}}';
91
- var optInOut = {{analytics_options.google.optInOut}};
92
- var anonymizeIP = {{analytics_options.google.anonymizeIP}};
93
- var cookie_names = j1.getCookieNames();
88
+ var url = new liteURL(window.location.href);
89
+ var hostname = url.hostname;
90
+ var environment = '{{environment}}';
91
+ var gaScript = document.createElement('script');
92
+ var providerID = '{{analytics_options.google.trackingID}}';
93
+ var validProviderID = (providerID.includes('your')) ? false : true;
94
+ var optInOut = {{analytics_options.google.optInOut}};
95
+ var anonymizeIP = {{analytics_options.google.anonymizeIP}};
96
+ var cookie_names = j1.getCookieNames();
97
+ var date = new Date();
98
+ var timestamp_now = date.toISOString();
94
99
  var gaCookies;
95
100
  var user_consent;
96
101
  var gaExists;
@@ -116,24 +121,37 @@ var logText;
116
121
  {% case analytics_provider %}
117
122
  {% when "google" %}
118
123
  // [INFO ] [j1.adapter.analytics ] [ place provider: Google Adsense ]
124
+
125
+ // -----------------------------------------------------------------------
126
+ // Default module settings
127
+ // -----------------------------------------------------------------------
128
+ var settings = $.extend({
129
+ module_name: 'j1.adapter.analytics',
130
+ generated: '{{site.time}}'
131
+ }, options);
132
+
133
+ // -----------------------------------------------------------------------
134
+ // Global variable settings
135
+ // -----------------------------------------------------------------------
119
136
  _this = j1.adapter.analytics;
120
137
  logger = log4javascript.getLogger('j1.adapter.analytics.google');
138
+
121
139
  // initialize state flag
122
140
  _this.setState('started');
123
141
  logger.info('\n' + 'state: ' + _this.getState());
124
142
  logger.info('\n' + 'module is being initialized');
125
- // default module settings
126
- var settings = $.extend({
127
- module_name: 'j1.adapter.analytics',
128
- generated: '2021-12-18 18:55:38 +0000'
129
- }, options);
130
143
 
131
- // remove all ga cookies left from a previous session/page view
132
- // -----------------------------------------------------------------------
144
+ // remove cookies on invalid GA config or left from a previous
145
+ // session/page view if they exists
146
+ // ---------------------------------------------------------------------
133
147
  gaCookies = j1.findCookie('_ga');
134
148
  gaCookies.forEach(function (item) {
135
- logger.warn('\n' + 'delete GA cookie: ' + item);
136
- j1.removeCookie({ name: item });
149
+ logger.warn('\n' + 'delete cookie created by Google Analytics: ' + item);
150
+ if (hostname == 'localhost') {
151
+ j1.removeCookie({ name: item, domain: false, secure: false });
152
+ } else {
153
+ j1.removeCookie({ name: item, domain: '.' + hostname, secure: false });
154
+ }
137
155
  });
138
156
 
139
157
  var dependencies_met_page_ready = setInterval(function() {
@@ -143,23 +161,27 @@ var logText;
143
161
  if (!gaExists) {
144
162
  // add ga api dynamically in the head section
145
163
  // -----------------------------------------------------------------
146
- logger.info('\n' + 'add ga api dynamically in section: head');
164
+ logger.info('\n' + 'Google Analytics API added in section: head');
147
165
  gaScript.async = true;
148
166
  gaScript.id = 'google-tag-manager';
149
- gaScript.src = '//www.googletagmanager.com/gtag/js?id={{analytics_options.google.trackingID}}';
167
+ gaScript.src = '//www.googletagmanager.com/gtag/js?id=' + providerID;
150
168
  document.head.appendChild(gaScript);
151
169
  }
152
170
 
153
171
  user_consent = j1.readCookie(cookie_names.user_consent);
154
172
  if (user_consent.analysis) {
155
- logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
156
- logger.info('\n' + 'enable: GA');
157
- GTagOptIn.register(trackingID);
158
- GTagOptIn.optIn();
173
+ if (validProviderID) {
174
+ logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
175
+ logger.info('\n' + 'enable Google Analytics on ID: ' + providerID);
176
+ GTagOptIn.register(providerID);
177
+ GTagOptIn.optIn();
178
+ } else {
179
+ logger.warn('\n' + 'invalid trackig id detected for Google Analytics: ' + providerID);
180
+ }
159
181
  } else {
160
182
  logger.info('\n' + 'user consent on analytics: ' + user_consent.analysis);
161
- logger.warn('\n' + 'disable: GA');
162
- GTagOptIn.register(trackingID);
183
+ logger.warn('\n' + 'disable Google Analytics on ID: ' + providerID);
184
+ GTagOptIn.register(providerID);
163
185
  GTagOptIn.optOut();
164
186
  }
165
187
  clearInterval(dependencies_met_page_ready);
@@ -174,7 +196,7 @@ var logText;
174
196
  var dependencies_met_page_ready = setInterval(function() {
175
197
  if (j1.getState() == 'finished') {
176
198
  logger = log4javascript.getLogger('j1.adapter.analytics.google');
177
- logger.info('\n' + 'ga: disabled');
199
+ logger.info('\n' + 'Google Analytics: disabled');
178
200
  clearInterval(dependencies_met_page_ready);
179
201
  }
180
202
  }, 25);
@@ -69,7 +69,15 @@ j1.adapter.asciidoctor = (function (j1, window) {
69
69
  init: function (options) {
70
70
 
71
71
  // -----------------------------------------------------------------------
72
- // globals
72
+ // Default module settings
73
+ // -----------------------------------------------------------------------
74
+ var settings = $.extend({
75
+ module_name: 'j1.adapter.rtable',
76
+ generated: '{{site.time}}'
77
+ }, options);
78
+
79
+ // -----------------------------------------------------------------------
80
+ // Global variable settings
73
81
  // -----------------------------------------------------------------------
74
82
  _this = j1.adapter.asciidoctor;
75
83
  logger = log4javascript.getLogger('j1.adapter.asciidoctor');
@@ -79,14 +87,6 @@ j1.adapter.asciidoctor = (function (j1, window) {
79
87
  logger.info('\n' + 'state: ' + _this.getState());
80
88
  logger.info('\n' + 'module is being initialized');
81
89
 
82
- // -----------------------------------------------------------------------
83
- // Default module settings
84
- // -----------------------------------------------------------------------
85
- var settings = $.extend({
86
- module_name: 'j1.adapter.rtable',
87
- generated: '{{site.time}}'
88
- }, options);
89
-
90
90
  // -----------------------------------------------------------------------
91
91
  // asciidoctor initializer
92
92
  // -----------------------------------------------------------------------
@@ -102,7 +102,15 @@ j1.adapter.attic = (function (j1, window) {
102
102
  init: function (options) {
103
103
 
104
104
  // -----------------------------------------------------------------------
105
- // globals
105
+ // Default module settings
106
+ // -----------------------------------------------------------------------
107
+ var settings = $.extend({
108
+ module_name: 'j1.adapter.attic',
109
+ generated: '{{site.time}}'
110
+ }, options);
111
+
112
+ // -----------------------------------------------------------------------
113
+ // Global variable settings
106
114
  // -----------------------------------------------------------------------
107
115
  _this = j1.adapter.attic;
108
116
  logger = log4javascript.getLogger('j1.adapter.attic');
@@ -69,7 +69,15 @@ j1.adapter.bmd = (function (j1, window) {
69
69
  init: function (options) {
70
70
 
71
71
  // -----------------------------------------------------------------------
72
- // globals
72
+ // Default module settings
73
+ // -----------------------------------------------------------------------
74
+ var settings = $.extend({
75
+ module_name: 'j1.adapter.bmd',
76
+ generated: '{{site.time}}'
77
+ }, options);
78
+
79
+ // -----------------------------------------------------------------------
80
+ // Global variable settings
73
81
  // -----------------------------------------------------------------------
74
82
  _this = j1.adapter.bmd;
75
83
  logger = log4javascript.getLogger('j1.adapter.bmd');
@@ -78,15 +86,6 @@ j1.adapter.bmd = (function (j1, window) {
78
86
  _this.setState('started');
79
87
  logger.info('\n' + 'state: ' + _this.getState());
80
88
  logger.info('\n' + 'module is being initialized');
81
-
82
- // -----------------------------------------------------------------------
83
- // Default module settings
84
- // -----------------------------------------------------------------------
85
- var settings = $.extend({
86
- module_name: 'j1.adapter.bmd',
87
- generated: '{{site.time}}'
88
- }, options);
89
-
90
89
  // -----------------------------------------------------------------------
91
90
  // BMD initializer
92
91
  // -----------------------------------------------------------------------
@@ -99,15 +99,6 @@ j1.adapter.carousel = (function (j1, window) {
99
99
  // -------------------------------------------------------------------------
100
100
  init: function (options) {
101
101
 
102
- // -----------------------------------------------------------------------
103
- // globals
104
- // -----------------------------------------------------------------------
105
- _this = j1.adapter.carousel;
106
- logger = log4javascript.getLogger('j1.adapter.carousel');
107
-
108
- // initialize state flag
109
- _this.state = 'pending';
110
-
111
102
  // -----------------------------------------------------------------------
112
103
  // Default module settings
113
104
  // -----------------------------------------------------------------------
@@ -116,6 +107,15 @@ j1.adapter.carousel = (function (j1, window) {
116
107
  generated: '{{site.time}}'
117
108
  }, options);
118
109
 
110
+ // -----------------------------------------------------------------------
111
+ // Global variable settings
112
+ // -----------------------------------------------------------------------
113
+ _this = j1.adapter.carousel;
114
+ logger = log4javascript.getLogger('j1.adapter.carousel');
115
+
116
+ // initialize state flag
117
+ _this.state = 'pending';
118
+
119
119
  {% comment %} Load module config from yml data
120
120
  -------------------------------------------------------------------------- {% endcomment %}
121
121
  // Load module DEFAULTS|CONFIG
@@ -89,20 +89,20 @@ j1.adapter.clipboard = (function (j1, window) {
89
89
  init: function (options) {
90
90
 
91
91
  // -----------------------------------------------------------------------
92
- // globals
93
- // -----------------------------------------------------------------------
94
- _this = j1.adapter.clipboard;
95
- language = '{{site.language}}';
96
- logger = log4javascript.getLogger('j1.adapter.clipboard');
97
-
98
- // -----------------------------------------------------------------------
99
- // defaults
92
+ // Default module settings
100
93
  // -----------------------------------------------------------------------
101
94
  var settings = $.extend({
102
95
  module_name: 'j1.adapter.clipboard',
103
96
  generated: '{{site.time}}'
104
97
  }, options);
105
98
 
99
+ // -----------------------------------------------------------------------
100
+ // Global variable settings
101
+ // -----------------------------------------------------------------------
102
+ _this = j1.adapter.clipboard;
103
+ language = '{{site.language}}';
104
+ logger = log4javascript.getLogger('j1.adapter.clipboard');
105
+
106
106
  // initialize state flag
107
107
  _this.state = 'started';
108
108
  logText = '\n' + 'initialization: started';
@@ -124,7 +124,8 @@ var comments_provider = '{{comments_provider}}';
124
124
  var dqApiScript = document.createElement('script');
125
125
  var hvApiScript = document.createElement('script');
126
126
  var hvCallbackScript = document.createElement('script');
127
- var siteID = '{{site_id}}';
127
+ var providerID = '{{site_id}}';
128
+ var validProviderID = (providerID.includes('your')) ? false : true;
128
129
  var comments_headline = '{{comments_headline}}';
129
130
  var cookie_names = j1.getCookieNames();
130
131
  var user_consent;
@@ -147,13 +148,18 @@ var logText;
147
148
  // [INFO ] [j1.adapter.comments ] [ detected comments provider (j1_config): {{comments_provider}}} ]
148
149
  // [INFO ] [j1.adapter.comments ] [ start processing load region head, layout: {{page.layout}} ]
149
150
 
150
- // default module settings
151
- // ----------------------------------------------------------------------
151
+ // -----------------------------------------------------------------------
152
+ // Default module settings
153
+ // -----------------------------------------------------------------------
152
154
  var settings = $.extend({
153
155
  module_name: 'j1.adapter.comments',
154
- generated: '2021-12-18 18:55:38 +0000'
156
+ generated: '{{site.time}}'
155
157
  }, options);
156
158
 
159
+ // -----------------------------------------------------------------------
160
+ // Global variable settings
161
+ // -----------------------------------------------------------------------
162
+
157
163
  {% if site_id %}
158
164
 
159
165
  _this = j1.adapter.comments;
@@ -162,9 +168,17 @@ var logText;
162
168
  {% case comments_provider %}
163
169
  {% when "hyvor" %}
164
170
  // [INFO ] [j1.adapter.comments ] [ place provider: Hyvor Talk ]
171
+
165
172
  var dependencies_met_page_ready = setInterval(function() {
166
173
  if (j1.getState() == 'finished') {
167
174
 
175
+ if (!validProviderID) {
176
+ logger.warn('\n' + 'invalid site id detected for Hyvor Talk: ' + providerID);
177
+ logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
178
+ clearInterval(dependencies_met_page_ready);
179
+ return false;
180
+ }
181
+
168
182
  // initialize state flag, issue init message
169
183
  // -------------------------------------------------------------------
170
184
  _this.setState('started');
@@ -179,7 +193,7 @@ var logText;
179
193
  // -----------------------------------------------------------------
180
194
  $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
181
195
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
182
- logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
196
+ logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + providerID);
183
197
 
184
198
  // add Hyvor Talk Web API
185
199
  // NOTE: don't change the script id
@@ -193,7 +207,7 @@ var logText;
193
207
  // -----------------------------------------------------------------
194
208
  hvCallbackScript.id = 'hyvor-callback';
195
209
  hvCallbackScript.text = '\n';
196
- hvCallbackScript.text += 'var HYVOR_TALK_WEBSITE = ' + siteID + '\n';
210
+ hvCallbackScript.text += 'var HYVOR_TALK_WEBSITE = ' + providerID + '\n';
197
211
  hvCallbackScript.text += 'var HYVOR_TALK_CONFIG = {' + '\n';
198
212
  hvCallbackScript.text += ' url: false,' + '\n';
199
213
  hvCallbackScript.text += ' id: false' + '\n';
@@ -217,7 +231,7 @@ var logText;
217
231
  // disable Hyvor Talk
218
232
  // -----------------------------------------------------------------
219
233
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
220
- logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
234
+ logger.warn('\n' + 'disable Hyvor Talk on site id: ' + providerID);
221
235
 
222
236
  // remove Hyvor Talk resources
223
237
  // -----------------------------------------------------------------
@@ -235,6 +249,13 @@ var logText;
235
249
  var dependencies_met_page_ready = setInterval(function() {
236
250
  if (j1.getState() == 'finished') {
237
251
 
252
+ if (!validProviderID) {
253
+ logger.warn('\n' + 'invalid short name detected for Disqus: ' + providerID);
254
+ logger.info('\n' + 'skip initialization for provider: ' + comments_provider);
255
+ clearInterval(dependencies_met_page_ready);
256
+ return;
257
+ }
258
+
238
259
  // initialize state flag, issue init message
239
260
  // -------------------------------------------------------------------
240
261
  _this.setState('started');
@@ -247,7 +268,7 @@ var logText;
247
268
  if (user_consent.personalization) {
248
269
  $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
249
270
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
250
- logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
271
+ logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
251
272
 
252
273
  // old Disqus Web API init
253
274
  // -----------------------------------------------------------------
@@ -279,7 +300,7 @@ var logText;
279
300
  // add|initialize Disqus Web API
280
301
  // -----------------------------------------------------------------
281
302
  dqApiScript.id = 'dq-web-api';
282
- dqApiScript.src = '//' + siteID + '.disqus.com/embed.js";'
303
+ dqApiScript.src = '//' + providerID + '.disqus.com/embed.js";'
283
304
  dqApiScript.setAttribute("data-timestamp", '"' + timestamp_now + '"');
284
305
  document.head.appendChild(dqApiScript);
285
306
 
@@ -288,7 +309,7 @@ var logText;
288
309
  $('#main-content').append('<div id="disqus_thread"></div>');
289
310
  } else {
290
311
  logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
291
- logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
312
+ logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on short name: ' + providerID);
292
313
  $('#leave-a-comment').remove();
293
314
  $('#dq-web-api').remove();
294
315
  $('#hdisqus_thread').remove();