j1-template 2021.1.13 → 2021.1.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/cookieConsent.js +4 -5
- data/assets/themes/j1/adapter/js/j1.js +66 -36
- data/assets/themes/j1/adapter/js/navigator.js +7 -0
- data/assets/themes/j1/adapter/js/themer.js +8 -6
- data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +2 -288
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +60 -41
- data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +75 -57
- 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/defaults/cookieconsent.yml +10 -9
- data/lib/starter_web/_data/modules/defaults/themer.yml +2 -0
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/assets/images/modules/attics/matthew-dockery-1920x1280.jpg +0 -0
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/learn/quickstart.adoc +473 -0
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +5 -5
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +31 -15
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +4 -2
@@ -47,16 +47,21 @@
|
|
47
47
|
|
48
48
|
var old = $.fn.bootstrapThemeSwitcher;
|
49
49
|
|
50
|
-
var cookie_names
|
51
|
-
|
50
|
+
var cookie_names = j1.getCookieNames();
|
51
|
+
var gaCookies = j1.findCookie('_ga');
|
52
|
+
var j1Cookies = j1.findCookie('j1');
|
53
|
+
var url = new liteURL(window.location.href);
|
54
|
+
var hostname = url.hostname;
|
55
|
+
var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
56
|
+
var secure = (url.protocol.includes('https')) ? true : false;
|
52
57
|
|
53
58
|
var logger = log4javascript.getLogger('j1.core.switcher');
|
54
59
|
var logText;
|
55
60
|
|
56
61
|
var user_state_detected;
|
57
|
-
var
|
58
|
-
var
|
59
|
-
var
|
62
|
+
var user_state = {};
|
63
|
+
var user_state_json;
|
64
|
+
var user_state_cookie;
|
60
65
|
|
61
66
|
// Constructor
|
62
67
|
// ---------------------------------------------------------------------------
|
@@ -112,27 +117,29 @@
|
|
112
117
|
// -------------------------------------------------------------------------
|
113
118
|
switchTheme: function (name, cssFile) {
|
114
119
|
|
115
|
-
var $this
|
116
|
-
var settings
|
120
|
+
var $this = $(this);
|
121
|
+
var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
|
122
|
+
var id = settings.cssThemeLink;
|
123
|
+
var debug = settings.debug;
|
124
|
+
var includeCSS = this.settings.includeBootswatch;
|
117
125
|
var themeName;
|
118
126
|
var theme_css;
|
119
|
-
var theme_extension_css;
|
120
|
-
|
121
|
-
var id = settings.cssThemeLink;
|
122
|
-
var debug = settings.debug;
|
123
|
-
var includeCSS = this.settings.includeBootswatch;
|
124
127
|
|
125
128
|
// detect|set user state cookie
|
126
|
-
user_state_detected = j1.existsCookie (
|
129
|
+
user_state_detected = j1.existsCookie (cookie_names.user_state);
|
127
130
|
if ( user_state_detected ) {
|
128
|
-
logger.debug('\n' + 'cookie found:
|
129
|
-
|
131
|
+
logger.debug('\n' + 'cookie found: ' + cookie_names.user_state);
|
132
|
+
user_state = j1.readCookie(cookie_names.user_state);
|
130
133
|
} else {
|
131
|
-
logger.error('\n' + 'cookie not found:
|
134
|
+
logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
|
135
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
136
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
137
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
138
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
132
139
|
}
|
133
140
|
|
134
|
-
themeName
|
135
|
-
theme_css
|
141
|
+
themeName = user_state.theme_name;
|
142
|
+
theme_css = user_state.theme_css;
|
136
143
|
|
137
144
|
if (typeof cssFile === 'undefined') { cssFile = this.settings.defaultCssFile; }
|
138
145
|
if (typeof name === 'undefined') { name = cssFile; }
|
@@ -146,26 +153,30 @@
|
|
146
153
|
return false;
|
147
154
|
}
|
148
155
|
|
149
|
-
|
150
|
-
|
156
|
+
user_state.theme_name = name;
|
157
|
+
user_state.theme_css = cssFile;
|
151
158
|
|
152
|
-
if (!(
|
153
|
-
|
154
|
-
|
159
|
+
if (!(user_state.theme_name.includes('Uno') || user_state.theme_name == 'Bootstrap')) {
|
160
|
+
user_state.theme_author = 'Bootswatch';
|
161
|
+
user_state.theme_author_url = 'https://bootswatch.com/';
|
155
162
|
} else {
|
156
|
-
|
157
|
-
|
163
|
+
user_state.theme_author = 'J1 Team';
|
164
|
+
user_state.theme_author_url = 'https://jekyll.one/';
|
158
165
|
}
|
159
166
|
|
167
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
|
160
168
|
j1.writeCookie({
|
161
|
-
name:
|
162
|
-
data:
|
169
|
+
name: cookie_names.user_state,
|
170
|
+
data: user_state,
|
171
|
+
samesite: 'Strict',
|
172
|
+
secure: secure,
|
173
|
+
expires: 365
|
163
174
|
});
|
164
175
|
|
165
176
|
// reload current page (skip cache)
|
166
177
|
location.reload(true);
|
167
178
|
} else {
|
168
|
-
logger.
|
179
|
+
logger.debug('\n' + 'write to cookie : disabled');
|
169
180
|
logger.warn('\n' + 'selected theme not activated: ' + name);
|
170
181
|
} // END if saveToCookie
|
171
182
|
|
@@ -184,17 +195,21 @@
|
|
184
195
|
var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, options);
|
185
196
|
|
186
197
|
// detect|set user state cookie
|
187
|
-
user_state_detected = j1.existsCookie (
|
198
|
+
user_state_detected = j1.existsCookie (cookie_names.user_state);
|
188
199
|
|
189
200
|
if ( user_state_detected ) {
|
190
|
-
logger.info('\n' + 'cookie found:
|
191
|
-
|
201
|
+
logger.info('\n' + 'cookie found: ' + cookie_names.user_state);
|
202
|
+
user_state = j1.readCookie(cookie_names.user_state);
|
192
203
|
} else {
|
193
|
-
logger.error('\n' + 'cookie not found:
|
204
|
+
logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
|
205
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
206
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
207
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
208
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
194
209
|
}
|
195
210
|
|
196
|
-
var themeName =
|
197
|
-
var themeCss =
|
211
|
+
var themeName = user_state.theme_name;
|
212
|
+
var themeCss = user_state.theme_css;
|
198
213
|
this.switchTheme(themeName, themeCss);
|
199
214
|
|
200
215
|
}, // END loadThemeFromCookie
|
@@ -247,22 +262,26 @@
|
|
247
262
|
var base = this;
|
248
263
|
|
249
264
|
if (this.$element.is('ul')) {
|
250
|
-
var $this
|
251
|
-
var settings
|
252
|
-
var id
|
265
|
+
var $this = $(this);
|
266
|
+
var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
|
267
|
+
var id = settings.cssThemeLink;
|
268
|
+
var debug = settings.debug;
|
253
269
|
var themeName;
|
254
|
-
var debug = settings.debug;
|
255
270
|
|
256
271
|
// detect|set user state cookie
|
257
|
-
user_state_detected = j1.existsCookie (
|
272
|
+
user_state_detected = j1.existsCookie (cookie_names.user_state);
|
258
273
|
if ( user_state_detected ) {
|
259
274
|
logger.debug('\n' + 'user state cookie found');
|
260
|
-
|
275
|
+
user_state = j1.readCookie(cookie_names.user_state);
|
261
276
|
} else {
|
262
277
|
logger.error('\n' + 'user state NOT cookie found');
|
278
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
279
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
280
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
281
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
263
282
|
}
|
264
283
|
|
265
|
-
themeName =
|
284
|
+
themeName = user_state.theme_name;
|
266
285
|
|
267
286
|
if ( debug === 'true' ) {
|
268
287
|
logger.debug('\n' + 'bootstrapThemeSelector: UL element selected');
|
@@ -47,16 +47,21 @@
|
|
47
47
|
|
48
48
|
var old = $.fn.bootstrapThemeSwitcher;
|
49
49
|
|
50
|
-
var cookie_names
|
51
|
-
|
50
|
+
var cookie_names = j1.getCookieNames();
|
51
|
+
var gaCookies = j1.findCookie('_ga');
|
52
|
+
var j1Cookies = j1.findCookie('j1');
|
53
|
+
var url = new liteURL(window.location.href);
|
54
|
+
var hostname = url.hostname;
|
55
|
+
var domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
|
56
|
+
var secure = (url.protocol.includes('https')) ? true : false;
|
52
57
|
|
53
58
|
var logger = log4javascript.getLogger('j1.core.switcher');
|
54
59
|
var logText;
|
55
60
|
|
56
61
|
var user_state_detected;
|
57
|
-
var
|
58
|
-
var
|
59
|
-
var
|
62
|
+
var user_state = {};
|
63
|
+
var user_state_json;
|
64
|
+
var user_state_cookie;
|
60
65
|
|
61
66
|
// Constructor
|
62
67
|
// ---------------------------------------------------------------------------
|
@@ -75,13 +80,13 @@
|
|
75
80
|
// ---------------------------------------------------------------------------
|
76
81
|
BootstrapThemeSwitcher.prototype = {
|
77
82
|
clear: function () {
|
78
|
-
logger.debug('bootstrapThemeSwitcher.clear');
|
83
|
+
logger.debug('\n' + 'bootstrapThemeSwitcher.clear');
|
79
84
|
return this.$element.each(function () {
|
80
85
|
this.$element.empty();
|
81
86
|
});
|
82
87
|
},
|
83
88
|
update: function () {
|
84
|
-
logger.debug('bootstrapThemeSwitcher.update');
|
89
|
+
logger.debug('\n' + 'bootstrapThemeSwitcher.update');
|
85
90
|
this.getThemes();
|
86
91
|
},
|
87
92
|
|
@@ -112,27 +117,29 @@
|
|
112
117
|
// -------------------------------------------------------------------------
|
113
118
|
switchTheme: function (name, cssFile) {
|
114
119
|
|
115
|
-
var $this
|
116
|
-
var settings
|
120
|
+
var $this = $(this);
|
121
|
+
var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
|
122
|
+
var id = settings.cssThemeLink;
|
123
|
+
var debug = settings.debug;
|
124
|
+
var includeCSS = this.settings.includeBootswatch;
|
117
125
|
var themeName;
|
118
126
|
var theme_css;
|
119
|
-
var theme_extension_css;
|
120
|
-
|
121
|
-
var id = settings.cssThemeLink;
|
122
|
-
var debug = settings.debug;
|
123
|
-
var includeCSS = this.settings.includeBootswatch;
|
124
127
|
|
125
128
|
// detect|set user state cookie
|
126
|
-
user_state_detected = j1.existsCookie (
|
129
|
+
user_state_detected = j1.existsCookie (cookie_names.user_state);
|
127
130
|
if ( user_state_detected ) {
|
128
|
-
logger.debug('cookie found:
|
129
|
-
|
131
|
+
logger.debug('\n' + 'cookie found: ' + cookie_names.user_state);
|
132
|
+
user_state = j1.readCookie(cookie_names.user_state);
|
130
133
|
} else {
|
131
|
-
logger.error('cookie not found:
|
134
|
+
logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
|
135
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
136
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
137
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
138
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
132
139
|
}
|
133
140
|
|
134
|
-
themeName
|
135
|
-
theme_css
|
141
|
+
themeName = user_state.theme_name;
|
142
|
+
theme_css = user_state.theme_css;
|
136
143
|
|
137
144
|
if (typeof cssFile === 'undefined') { cssFile = this.settings.defaultCssFile; }
|
138
145
|
if (typeof name === 'undefined') { name = cssFile; }
|
@@ -141,33 +148,36 @@
|
|
141
148
|
if (settings.saveToCookie) {
|
142
149
|
if ( typeof Cookies === 'undefined' ) {
|
143
150
|
if ( debug === 'true' ) {
|
144
|
-
logger.error('cookies library not present');
|
151
|
+
logger.error('\n' + 'cookies library not present');
|
145
152
|
}
|
146
153
|
return false;
|
147
154
|
}
|
148
155
|
|
149
|
-
|
150
|
-
|
156
|
+
user_state.theme_name = name;
|
157
|
+
user_state.theme_css = cssFile;
|
151
158
|
|
152
|
-
if (!(
|
153
|
-
|
154
|
-
|
159
|
+
if (!(user_state.theme_name.includes('Uno') || user_state.theme_name == 'Bootstrap')) {
|
160
|
+
user_state.theme_author = 'Bootswatch';
|
161
|
+
user_state.theme_author_url = 'https://bootswatch.com/';
|
155
162
|
} else {
|
156
|
-
|
157
|
-
|
163
|
+
user_state.theme_author = 'J1 Team';
|
164
|
+
user_state.theme_author_url = 'https://jekyll.one/';
|
158
165
|
}
|
159
166
|
|
167
|
+
logger.debug('\n' + 'write to cookie : ' + cookie_names.user_state);
|
160
168
|
j1.writeCookie({
|
161
|
-
name:
|
162
|
-
data:
|
169
|
+
name: cookie_names.user_state,
|
170
|
+
data: user_state,
|
171
|
+
samesite: 'Strict',
|
172
|
+
secure: secure,
|
173
|
+
expires: 365
|
163
174
|
});
|
164
175
|
|
165
|
-
//
|
166
|
-
// and detect selected theme from cookie
|
176
|
+
// reload current page (skip cache)
|
167
177
|
location.reload(true);
|
168
178
|
} else {
|
169
|
-
logger.
|
170
|
-
logger.warn('selected theme not activated: ' + name);
|
179
|
+
logger.debug('\n' + 'write to cookie : disabled');
|
180
|
+
logger.warn('\n' + 'selected theme not activated: ' + name);
|
171
181
|
} // END if saveToCookie
|
172
182
|
|
173
183
|
}, // END switchTheme
|
@@ -178,24 +188,28 @@
|
|
178
188
|
loadThemeFromCookie: function (options) {
|
179
189
|
|
180
190
|
if ( typeof Cookies === 'undefined' ) {
|
181
|
-
logger.error('cookies library not present');
|
191
|
+
logger.error('\n' + 'cookies library not present');
|
182
192
|
return false;
|
183
193
|
}
|
184
194
|
|
185
195
|
var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, options);
|
186
196
|
|
187
197
|
// detect|set user state cookie
|
188
|
-
user_state_detected = j1.existsCookie (
|
198
|
+
user_state_detected = j1.existsCookie (cookie_names.user_state);
|
189
199
|
|
190
200
|
if ( user_state_detected ) {
|
191
|
-
logger.info('cookie found:
|
192
|
-
|
201
|
+
logger.info('\n' + 'cookie found: ' + cookie_names.user_state);
|
202
|
+
user_state = j1.readCookie(cookie_names.user_state);
|
193
203
|
} else {
|
194
|
-
logger.error('cookie not found:
|
204
|
+
logger.error('\n' + 'cookie not found: ' + cookie_names.user_state);
|
205
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
206
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
207
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
208
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
195
209
|
}
|
196
210
|
|
197
|
-
var themeName =
|
198
|
-
var themeCss =
|
211
|
+
var themeName = user_state.theme_name;
|
212
|
+
var themeCss = user_state.theme_css;
|
199
213
|
this.switchTheme(themeName, themeCss);
|
200
214
|
|
201
215
|
}, // END loadThemeFromCookie
|
@@ -215,11 +229,11 @@
|
|
215
229
|
// -------------------------------------------------------------------------
|
216
230
|
addThemesToControl: function() {
|
217
231
|
if (typeof this.$element === 'undefined') {
|
218
|
-
logger.error('bootstrapThemeSelector|addThemesToControl: Element is undefined');
|
232
|
+
logger.error('\n' + 'bootstrapThemeSelector|addThemesToControl: Element is undefined');
|
219
233
|
return false;
|
220
234
|
}
|
221
235
|
if (typeof this.themesList === 'undefined') {
|
222
|
-
logger.error('bootstrapThemeSelector|addThemesToControl: Themes is undefined');
|
236
|
+
logger.error('\n' + 'bootstrapThemeSelector|addThemesToControl: Themes is undefined');
|
223
237
|
return false;
|
224
238
|
}
|
225
239
|
|
@@ -248,25 +262,29 @@
|
|
248
262
|
var base = this;
|
249
263
|
|
250
264
|
if (this.$element.is('ul')) {
|
251
|
-
var $this
|
252
|
-
var settings
|
253
|
-
var id
|
265
|
+
var $this = $(this);
|
266
|
+
var settings = $.extend({}, $.fn.bootstrapThemeSwitcher.defaults, $this.data('bootstrapThemeSwitcher'));
|
267
|
+
var id = settings.cssThemeLink;
|
268
|
+
var debug = settings.debug;
|
254
269
|
var themeName;
|
255
|
-
var debug = settings.debug;
|
256
270
|
|
257
271
|
// detect|set user state cookie
|
258
|
-
user_state_detected = j1.existsCookie (
|
272
|
+
user_state_detected = j1.existsCookie (cookie_names.user_state);
|
259
273
|
if ( user_state_detected ) {
|
260
|
-
logger.debug('
|
261
|
-
|
274
|
+
logger.debug('\n' + 'user state cookie found');
|
275
|
+
user_state = j1.readCookie(cookie_names.user_state);
|
262
276
|
} else {
|
263
|
-
logger.error('
|
277
|
+
logger.error('\n' + 'user state NOT cookie found');
|
278
|
+
logger.debug('\n' + 'j1 cookies found:' + j1Cookies.length);
|
279
|
+
j1Cookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
280
|
+
logger.debug('\n' + 'ga cookies found:' + gaCookies.length);
|
281
|
+
gaCookies.forEach(item => console.log('j1.core.switcher: ' + item));
|
264
282
|
}
|
265
283
|
|
266
|
-
themeName =
|
284
|
+
themeName = user_state.theme_name;
|
267
285
|
|
268
286
|
if ( debug === 'true' ) {
|
269
|
-
logger.debug('bootstrapThemeSelector: UL element selected');
|
287
|
+
logger.debug('\n' + 'bootstrapThemeSelector: UL element selected');
|
270
288
|
}
|
271
289
|
this.$element.empty();
|
272
290
|
|
@@ -306,7 +324,7 @@
|
|
306
324
|
});
|
307
325
|
|
308
326
|
} else if (this.$element.is('select')) {
|
309
|
-
logger.debug('bootstrapThemeSelector: SELECT element selected');
|
327
|
+
logger.debug('\n' + 'bootstrapThemeSelector: SELECT element selected');
|
310
328
|
this.$element.empty();
|
311
329
|
|
312
330
|
var optionSelectedMarker;
|
@@ -328,8 +346,8 @@
|
|
328
346
|
|
329
347
|
} else {
|
330
348
|
// no container found to add Theme list
|
331
|
-
logger.info('bootstrapThemeSelector: no UL or SELECT element found');
|
332
|
-
logger.error('bootstrapThemeSelector: failed');
|
349
|
+
logger.info('\n' + 'bootstrapThemeSelector: no UL or SELECT element found');
|
350
|
+
logger.error('\n' + 'bootstrapThemeSelector: failed');
|
333
351
|
// console.warn('bootstrapThemeSelector only works with ul or select elements');
|
334
352
|
}
|
335
353
|
}, // END addThemesToControl
|
@@ -352,7 +370,7 @@
|
|
352
370
|
base.addThemesToControl();
|
353
371
|
},
|
354
372
|
error: function (jqXHR, textStatus, errorThrown) {
|
355
|
-
logger.error('
|
373
|
+
logger.error('\n' + 'failed to retrieve the local feed from: \'' + base.settings.localFeed + '\'');
|
356
374
|
}
|
357
375
|
});
|
358
376
|
} else {
|
data/lib/j1/version.rb
CHANGED
data/lib/starter_web/Gemfile
CHANGED
@@ -54,7 +54,7 @@ gem 'jekyll', '~> 4.2'
|
|
54
54
|
|
55
55
|
# Theme Rubies, default: J1 Template (NOT used for the development system)
|
56
56
|
#
|
57
|
-
gem 'j1-template', '~> 2021.1.
|
57
|
+
gem 'j1-template', '~> 2021.1.14'
|
58
58
|
|
59
59
|
# ------------------------------------------------------------------------------
|
60
60
|
# 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.14
|
57
57
|
|
58
58
|
# version
|
59
59
|
# ------------------------------------------------------------------------------
|
@@ -102,10 +102,11 @@ defaults:
|
|
102
102
|
This website does <b>not</b> transfer any personal data to GA. Implicit
|
103
103
|
personal information, like IP addresses, is anonymized to protect your privacy.
|
104
104
|
<br><br>
|
105
|
-
<code>Personalization</code> is used e.g. to
|
106
|
-
advertising campaigns to provide you a website
|
107
|
-
Disqus or Google enables us to provide
|
108
|
-
enables us to finance the costs for
|
105
|
+
<code>Personalization</code> is used e.g. to provide personal themes, collect
|
106
|
+
visitors feedback or running advertising campaigns to provide you a website
|
107
|
+
free of charge. Partners like Bootswatch, Disqus or Google enables us to provide
|
108
|
+
you excellent personalized services and enables us to finance the costs for
|
109
|
+
running this site.
|
109
110
|
de: >
|
110
111
|
Die Betreiber dieser Website nehmen den Schutz Ihrer persönlichen Daten ernst.
|
111
112
|
Wir behandeln Ihre Daten vertraulich und halten uns zum Schutz Ihrer Privatsphäre
|
@@ -127,11 +128,11 @@ defaults:
|
|
127
128
|
übermittelt keine personenbezogenen Daten an GA. Implizite personenbezogene Daten wie
|
128
129
|
IP-Adressen werden zum Schutz Ihrer Privatsphäre anonymisiert.
|
129
130
|
<br><br>
|
130
|
-
<code>Personalisierung</code> wird z.B.
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
zu finanzieren.
|
131
|
+
<code>Personalisierung</code> wird eingesetzt um Ihnen z.B. personalierte Ansichten der
|
132
|
+
Webseite (Themen) anzubieten, Benutzerfeedback zu sammeln oder Werbekampagnen durchzuführen,
|
133
|
+
um Ihnen diese Website kostenlos zur Verfügung zu stellen. Partner wie Bootswatch, Disqus
|
134
|
+
oder Google ermöglichen es uns, Ihnen exzellente personalisierte Dienste anzubieten sowie
|
135
|
+
die Kosten für den Betrieb dieser Website zu finanzieren.
|
135
136
|
|
136
137
|
# ------------------------------------------------------------------------------
|
137
138
|
# END config
|