j1-template 2021.1.13 → 2021.1.14
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/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
|