j1-template 2022.0.8 → 2022.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/ads/google_ad_content_home.html +11 -0
  3. data/_includes/themes/j1/modules/ads/google_ad_top_home.html +11 -0
  4. data/apps/public/cc/index.adoc +0 -1
  5. data/assets/data/article_navigator/index.html +0 -1
  6. data/assets/data/news_panel_posts/index.html +0 -1
  7. data/assets/error_pages/HTTP445.html +5 -4
  8. data/assets/error_pages/HTTP446.html +3 -3
  9. data/assets/error_pages/HTTP447.html +110 -0
  10. data/assets/error_pages/HTTP448.html +111 -0
  11. data/assets/themes/j1/adapter/js/advertising.js +413 -0
  12. data/assets/themes/j1/adapter/js/algolia.js +1 -4
  13. data/assets/themes/j1/adapter/js/analytics.js +237 -0
  14. data/assets/themes/j1/adapter/js/asciidoctor.js +1 -4
  15. data/assets/themes/j1/adapter/js/attic.js +1 -4
  16. data/assets/themes/j1/adapter/js/bmd.js +1 -4
  17. data/assets/themes/j1/adapter/js/carousel.js +1 -4
  18. data/assets/themes/j1/adapter/js/clipboard.js +1 -2
  19. data/assets/themes/j1/adapter/js/comments.js +386 -0
  20. data/assets/themes/j1/adapter/js/cookieConsent.js +84 -51
  21. data/assets/themes/j1/adapter/js/fab.js +1 -1
  22. data/assets/themes/j1/adapter/js/framer.js +1 -7
  23. data/assets/themes/j1/adapter/js/j1.js +125 -208
  24. data/assets/themes/j1/adapter/js/justifiedGallery.js +1 -4
  25. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +1 -4
  26. data/assets/themes/j1/adapter/js/lightbox.js +1 -5
  27. data/assets/themes/j1/adapter/js/logger.js +1 -2
  28. data/assets/themes/j1/adapter/js/mmenu.js +2 -3
  29. data/assets/themes/j1/adapter/js/navigator.js +4 -3
  30. data/assets/themes/j1/adapter/js/quicksearch.js +1 -4
  31. data/assets/themes/j1/adapter/js/rouge.js +2 -5
  32. data/assets/themes/j1/adapter/js/rtable.js +1 -4
  33. data/assets/themes/j1/adapter/js/rtextResizer.js +1 -4
  34. data/assets/themes/j1/adapter/js/scroller.js +2 -5
  35. data/assets/themes/j1/adapter/js/themer.js +1 -1
  36. data/assets/themes/j1/adapter/js/toccer.js +1 -4
  37. data/assets/themes/j1/adapter/js/translator.js +79 -124
  38. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +6 -0
  39. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  40. data/assets/themes/j1/core/js/template.js +13 -5
  41. data/assets/themes/j1/core/js/template.min.js +1 -1
  42. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  43. data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +117 -0
  44. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +11 -2
  45. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  46. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.2.js +1 -1
  47. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js +1 -1
  48. data/assets/themes/j1/modules/scroller/js/scroller.js +1 -1
  49. data/assets/themes/j1/modules/translator/js/translator.js +1 -1
  50. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  51. data/lib/j1/version.rb +1 -1
  52. data/lib/starter_web/Gemfile +1 -1
  53. data/lib/starter_web/_config.yml +1 -13
  54. data/lib/starter_web/_data/apps/carousel.yml +2 -2
  55. data/lib/starter_web/_data/apps/defaults/carousel.yml +3 -2
  56. data/lib/starter_web/_data/apps/defaults/justifiedGallery.yml +2 -2
  57. data/lib/starter_web/_data/apps/defaults/justifiedGalleryCustomizer.yml +2 -2
  58. data/lib/starter_web/_data/apps/defaults/lightGallery.yml +2 -2
  59. data/lib/starter_web/_data/apps/defaults/lightbox.yml +2 -2
  60. data/lib/starter_web/_data/apps/justifiedGallery.yml +2 -2
  61. data/lib/starter_web/_data/apps/justifiedGalleryCustomizer.yml +2 -2
  62. data/lib/starter_web/_data/apps/lightGallery.yml +2 -2
  63. data/lib/starter_web/_data/apps/lightbox.yml +2 -2
  64. data/lib/starter_web/_data/blocks/banner.yml +3 -2
  65. data/lib/starter_web/_data/blocks/defaults/banner.yml +9 -0
  66. data/lib/starter_web/_data/blocks/defaults/footer.yml +9 -0
  67. data/lib/starter_web/_data/blocks/defaults/panel.yml +9 -0
  68. data/lib/starter_web/_data/blocks/footer.yml +3 -2
  69. data/lib/starter_web/_data/blocks/panel.yml +3 -2
  70. data/lib/starter_web/_data/builder/blog_navigator.yml +3 -2
  71. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +8 -8
  72. data/lib/starter_web/_data/j1_config.yml +0 -116
  73. data/lib/starter_web/_data/layouts/default.yml +21 -21
  74. data/lib/starter_web/_data/layouts/home.yml +24 -0
  75. data/lib/starter_web/_data/layouts/page.yml +7 -18
  76. data/lib/starter_web/_data/layouts/post.yml +0 -11
  77. data/lib/starter_web/_data/modules/advertising.yml +140 -12
  78. data/lib/starter_web/_data/modules/analytics.yml +99 -0
  79. data/lib/starter_web/_data/modules/attics.yml +3 -2
  80. data/lib/starter_web/_data/modules/comments.yml +55 -0
  81. data/lib/starter_web/_data/modules/cookieconsent.yml +2 -1
  82. data/lib/starter_web/_data/modules/cookies.yml +3 -1
  83. data/lib/starter_web/_data/modules/defaults/advertising.yml +106 -0
  84. data/lib/starter_web/_data/modules/defaults/analytics.yml +93 -0
  85. data/lib/starter_web/_data/modules/defaults/attics.yml +3 -2
  86. data/lib/starter_web/_data/modules/defaults/authentication.yml +51 -48
  87. data/lib/starter_web/_data/modules/defaults/comments.yml +114 -0
  88. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +3 -3
  89. data/lib/starter_web/_data/modules/defaults/cookies.yml +39 -19
  90. data/lib/starter_web/_data/modules/defaults/fab.yml +4 -2
  91. data/lib/starter_web/_data/modules/defaults/framer.yml +2 -3
  92. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +3 -2
  93. data/lib/starter_web/_data/modules/defaults/log4r.yml +2 -2
  94. data/lib/starter_web/_data/modules/defaults/navigator.yml +4 -2
  95. data/lib/starter_web/_data/modules/defaults/quicksearch.yml +4 -3
  96. data/lib/starter_web/_data/modules/defaults/rtable.yml +3 -2
  97. data/lib/starter_web/_data/modules/defaults/scoller.yml +3 -2
  98. data/lib/starter_web/_data/modules/defaults/themer.yml +119 -118
  99. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  100. data/lib/starter_web/_data/modules/defaults/translator.yml +1 -1
  101. data/lib/starter_web/_data/modules/fab.yml +3 -2
  102. data/lib/starter_web/_data/modules/framer.yml +3 -4
  103. data/lib/starter_web/_data/modules/log4r.yml +2 -2
  104. data/lib/starter_web/_data/modules/navigator.yml +4 -2
  105. data/lib/starter_web/_data/modules/quicksearch.yml +3 -3
  106. data/lib/starter_web/_data/modules/rtable.yml +3 -3
  107. data/lib/starter_web/_data/modules/scroller.yml +2 -3
  108. data/lib/starter_web/_data/modules/themer.yml +2 -3
  109. data/lib/starter_web/_data/modules/toccer.yml +3 -3
  110. data/lib/starter_web/_data/modules/translator.yml +1 -1
  111. data/lib/starter_web/_data/plugins/defaults/paginator.yml +2 -2
  112. data/lib/starter_web/_data/plugins/paginator.yml +2 -2
  113. data/lib/starter_web/_data/resources.yml +447 -290
  114. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  115. data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_content_home.html +11 -0
  116. data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_top_home.html +11 -0
  117. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  118. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.ads.asciidoc +196 -0
  119. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.comments.asciidoc +182 -0
  120. data/lib/starter_web/index.html +0 -1
  121. data/lib/starter_web/package.json +1 -1
  122. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +0 -1
  123. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +0 -1
  124. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +0 -1
  125. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +0 -1
  126. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +0 -1
  127. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +0 -1
  128. data/lib/starter_web/pages/public/blog/navigator/archive.html +0 -1
  129. data/lib/starter_web/pages/public/blog/navigator/index.html +0 -1
  130. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +4 -3
  131. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.ads.asciidoc +265 -0
  132. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.base.asciidoc +237 -0
  133. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.comments.asciidoc +237 -0
  134. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +62 -0
  135. data/lib/starter_web/pages/public/learn/roundtrip/_includes/google-ad.js +130 -0
  136. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +0 -1
  137. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +0 -1
  138. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +0 -1
  139. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  140. data/lib/starter_web/utilsrv/package.json +1 -1
  141. metadata +23 -70
  142. data/_includes/themes/j1/blocks/ads/ad.html +0 -64
  143. data/_includes/themes/j1/modules/boards/news_pin_board.html +0 -183
  144. data/_includes/themes/j1/modules/connectors/ad/custom-provider.html +0 -30
  145. data/_includes/themes/j1/modules/connectors/ad/google-adsense.html +0 -62
  146. data/_includes/themes/j1/modules/connectors/ads +0 -56
  147. data/_includes/themes/j1/modules/connectors/analytic/custom-provider.html +0 -32
  148. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +0 -30
  149. data/_includes/themes/j1/modules/connectors/analytics +0 -60
  150. data/_includes/themes/j1/modules/connectors/comment/commento.html +0 -31
  151. data/_includes/themes/j1/modules/connectors/comment/custom-provider.html +0 -30
  152. data/_includes/themes/j1/modules/connectors/comment/disqus.html +0 -32
  153. data/_includes/themes/j1/modules/connectors/comment/facebook.html +0 -30
  154. data/_includes/themes/j1/modules/connectors/comment/hyvor.html +0 -32
  155. data/_includes/themes/j1/modules/connectors/comment/just-comments.html +0 -31
  156. data/_includes/themes/j1/modules/connectors/comments +0 -64
  157. data/_includes/themes/j1/modules/connectors/sharing +0 -29
  158. data/_includes/themes/j1/modules/connectors/survey/custom-provider.html +0 -30
  159. data/_includes/themes/j1/modules/connectors/survey/jotform.html +0 -32
  160. data/_includes/themes/j1/modules/connectors/surveys +0 -58
  161. data/_includes/themes/j1/modules/connectors/translator +0 -58
  162. data/_includes/themes/j1/modules/connectors/translators/custom-translator.html +0 -32
  163. data/_includes/themes/j1/modules/connectors/translators/google-translator.html +0 -53
  164. data/_includes/themes/j1/modules/search/algolia.html +0 -181
  165. data/_includes/themes/j1/modules/search/docsearch.html +0 -42
  166. data/assets/data/disqus.js +0 -81
  167. data/assets/data/hyvor.js +0 -72
  168. data/lib/starter_web/pages/_test_pages/100_side-bar-tester.adoc +0 -244
  169. data/lib/starter_web/pages/_test_pages/_includes/attributes.asciidoc +0 -110
  170. data/lib/starter_web/pages/_test_pages/_includes/documents/100_gistblock.asciidoc +0 -28
  171. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_info.asciidoc +0 -14
  172. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_left_warning.asciidoc +0 -11
  173. data/lib/starter_web/pages/_test_pages/_includes/documents/410_bottom_right_danger.asciidoc +0 -11
  174. data/lib/starter_web/pages/_test_pages/_includes/documents/410_central_success.asciidoc +0 -11
  175. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_left_info.asciidoc +0 -11
  176. data/lib/starter_web/pages/_test_pages/_includes/documents/410_full_height_right_success.asciidoc +0 -11
  177. data/lib/starter_web/pages/_test_pages/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -47
  178. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_info.asciidoc +0 -11
  179. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_left_info.asciidoc +0 -11
  180. data/lib/starter_web/pages/_test_pages/_includes/documents/410_top_right_success.asciidoc +0 -11
  181. data/lib/starter_web/pages/_test_pages/_includes/documents/419_advanced_modals_demo.asciidoc +0 -337
  182. data/lib/starter_web/pages/_test_pages/_includes/documents/tables/bs_modal_examples.asciidoc +0 -47
  183. data/lib/starter_web/pages/_test_pages/accordion-01-tester.adoc +0 -220
  184. data/lib/starter_web/pages/_test_pages/accordion-02-tester.adoc +0 -177
  185. data/lib/starter_web/pages/_test_pages/accordion-03-tester.adoc +0 -148
  186. data/lib/starter_web/pages/_test_pages/attribute-changes-01-tester.adoc +0 -226
  187. data/lib/starter_web/pages/_test_pages/backdrop-tester.adoc +0 -109
  188. data/lib/starter_web/pages/_test_pages/button-tester-1.adoc +0 -127
  189. data/lib/starter_web/pages/_test_pages/card-tester.adoc +0 -128
  190. data/lib/starter_web/pages/_test_pages/cookieConsent.adoc +0 -96
  191. data/lib/starter_web/pages/_test_pages/deepl.0.adoc +0 -258
  192. data/lib/starter_web/pages/_test_pages/deepl.adoc +0 -204
  193. data/lib/starter_web/pages/_test_pages/desandro-button.adoc +0 -171
  194. data/lib/starter_web/pages/_test_pages/desandro.adoc +0 -147
  195. data/lib/starter_web/pages/_test_pages/flipcard-1-tester.adoc +0 -308
  196. data/lib/starter_web/pages/_test_pages/formular-01-tester.adoc +0 -167
  197. data/lib/starter_web/pages/_test_pages/formular-02-tester.adoc +0 -727
  198. data/lib/starter_web/pages/_test_pages/google-translate-tester.0.adoc +0 -113
  199. data/lib/starter_web/pages/_test_pages/google-translate-tester.1.adoc +0 -231
  200. data/lib/starter_web/pages/_test_pages/google-translate-tester.3.adoc +0 -149
  201. data/lib/starter_web/pages/_test_pages/google-translate-tester.4.adoc +0 -237
  202. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-2.adoc +0 -183
  203. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-3.adoc +0 -235
  204. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-4.adoc +0 -222
  205. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester-5.adoc +0 -119
  206. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.1.adoc +0 -236
  207. data/lib/starter_web/pages/_test_pages/infinite-scroll-tester.adoc +0 -225
  208. data/lib/starter_web/pages/_test_pages/list-group-tester.adoc +0 -265
  209. data/lib/starter_web/pages/_test_pages/tictok.adoc +0 -127
@@ -44,10 +44,7 @@ regenerate: false
44
44
  /* eslint indent: "off" */
45
45
  // -----------------------------------------------------------------------------
46
46
  'use strict';
47
-
48
- {% comment %} Main
49
- -------------------------------------------------------------------------------- {% endcomment %}
50
- j1.adapter['bmd'] = (function (j1, window) {
47
+ j1.adapter.bmd = (function (j1, window) {
51
48
 
52
49
  {% comment %} Set global variables
53
50
  ------------------------------------------------------------------------------ {% endcomment %}
@@ -77,10 +77,7 @@ regenerate: true
77
77
  /* eslint indent: "off" */
78
78
  // -----------------------------------------------------------------------------
79
79
  'use strict';
80
-
81
- {% comment %} Main
82
- --------------------------------------------------------------- {% endcomment %}
83
- j1.adapter['carousel'] = (function (j1, window) {
80
+ j1.adapter.carousel = (function (j1, window) {
84
81
  var environment = '{{environment}}';
85
82
  var moduleOptions = {};
86
83
  var _this;
@@ -62,8 +62,7 @@ regenerate: false
62
62
  /* eslint indent: "off" */
63
63
  // -----------------------------------------------------------------------------
64
64
  'use strict';
65
-
66
- j1.adapter['clipboard'] = (function (j1, window) {
65
+ j1.adapter.clipboard = (function (j1, window) {
67
66
 
68
67
  // ---------------------------------------------------------------------------
69
68
  // globals
@@ -0,0 +1,386 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/comments.js
10
+ # Liquid template to adapt the Comments module
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ # Copyright (C) 2021 Juergen Adams
15
+ #
16
+ # J1 Template is licensed under the MIT License.
17
+ # For details, see https://jekyll.one
18
+ # -----------------------------------------------------------------------------
19
+ # Test data:
20
+ # {{ liquid_var | debug }}
21
+ # comments_options: {{ comments_options | debug }}
22
+ # -----------------------------------------------------------------------------
23
+ {% endcomment %}
24
+
25
+ {% comment %} Liquid procedures
26
+ -------------------------------------------------------------------------------- {% endcomment %}
27
+
28
+ {% comment %} Set global settings
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+ {% assign environment = site.environment %}
31
+ {% assign asset_path = "/assets/themes/j1" %}
32
+
33
+ {% comment %} Process YML config data
34
+ ================================================================================ {% endcomment %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign template_config = site.data.j1_config %}
39
+ {% assign blocks = site.data.blocks %}
40
+ {% assign modules = site.data.modules %}
41
+
42
+ {% comment %} Set config data (settings only)
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign comments_defaults = modules.defaults.comments.defaults %}
45
+ {% assign comments_settings = modules.comments.settings %}
46
+
47
+ {% comment %} Set config options (settings only)
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign comments_options = comments_defaults | merge: comments_settings %}
50
+
51
+ {% comment %} Variables
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign comments = comments_options.enabled %}
54
+ {% assign comments_provider = comments_options.provider %}
55
+
56
+ {% if comments_provider == 'disqus' %}
57
+ {% assign site_id = comments_options.disqus.site_id %}
58
+ {% elsif comments_provider == 'hyvor' %}
59
+ {% assign site_id = comments_options.hyvor.site_id %}
60
+ {% elsif comments_provider == 'commento' %}
61
+ {% assign site_id = comments_options.commento.site_id %}
62
+ {% elsif comments_provider == 'just-comments' %}
63
+ {% assign site_id = comments_options.just-comments.site_id %}
64
+ {% elsif comments_provider == 'facebook' %}
65
+ {% assign site_id = comments_options.facebook.site_id %}
66
+ {% else %}
67
+ {% assign site_id = false %}
68
+ {% endif %}
69
+
70
+ {% comment %} language detection
71
+ -------------------------------------------------------------------------------- {% endcomment %}
72
+ {% if site.language == "en" %}
73
+ {% assign language = "en" %}
74
+ {% elsif site.language == "de"%}
75
+ {% assign language = "de" %}
76
+ {% else %}
77
+ {% assign language = "en" %}
78
+ {% endif %}
79
+
80
+ {% if language == "en" %}
81
+ {% assign comments_headline = comments_options.comments_headline.en %}
82
+ {% endif %}
83
+
84
+ {% if language == "de" %}
85
+ {% assign comments_headline = comments_options.comments_headline.de %}
86
+ {% endif %}
87
+
88
+ {% assign production = false %}
89
+ {% if environment == 'prod' or environment == 'production' %}
90
+ {% assign production = true %}
91
+ {% endif %}
92
+
93
+ /*
94
+ # -----------------------------------------------------------------------------
95
+ # ~/assets/themes/j1/adapter/js/comments.js
96
+ # J1 Adapter for the comments module
97
+ #
98
+ # Product/Info:
99
+ # https://jekyll.one
100
+ #
101
+ # Copyright (C) 2021 Juergen Adams
102
+ #
103
+ # J1 Template is licensed under the MIT License.
104
+ # For details, see https://jekyll.one
105
+ # -----------------------------------------------------------------------------
106
+ # Adapter generated: {{site.time}}
107
+ # -----------------------------------------------------------------------------
108
+ */
109
+
110
+ // -----------------------------------------------------------------------------
111
+ // ESLint shimming
112
+ // -----------------------------------------------------------------------------
113
+ /* eslint indent: "off" */
114
+ // -----------------------------------------------------------------------------
115
+ 'use strict';
116
+ j1.adapter.comments = (function (j1, window) {
117
+
118
+ {% comment %} Set global variables
119
+ -------------------------------------------------------------------------------- {% endcomment %}
120
+ var environment = '{{environment}}';
121
+ var date = new Date();
122
+ var timestamp_now = date.toISOString();
123
+ var comments_provider = '{{comments_provider}}';
124
+ var dqApiScript = document.createElement('script');
125
+ var hvApiScript = document.createElement('script');
126
+ var hvCallbackScript = document.createElement('script');
127
+ var siteID = '{{site_id}}';
128
+ var comments_headline = '{{comments_headline}}';
129
+ var cookie_names = j1.getCookieNames();
130
+ var user_consent;
131
+ var _this;
132
+ var logger;
133
+ var logText;
134
+
135
+ // ---------------------------------------------------------------------------
136
+ // Main object
137
+ // ---------------------------------------------------------------------------
138
+ return {
139
+
140
+ // -------------------------------------------------------------------------
141
+ // init()
142
+ // adapter initializer
143
+ // -------------------------------------------------------------------------
144
+ init: function (options) {
145
+
146
+ {% if comments %}
147
+ // [INFO ] [j1.adapter.comments ] [ detected comments provider (j1_config): {{comments_provider}}} ]
148
+ // [INFO ] [j1.adapter.comments ] [ start processing load region head, layout: {{page.layout}} ]
149
+
150
+ // default module settings
151
+ // ----------------------------------------------------------------------
152
+ var settings = $.extend({
153
+ module_name: 'j1.adapter.comments',
154
+ generated: '2021-12-18 18:55:38 +0000'
155
+ }, options);
156
+
157
+ {% if site_id %}
158
+
159
+ _this = j1.adapter.comments;
160
+ logger = log4javascript.getLogger('j1.adapter.comments');
161
+
162
+ {% case comments_provider %}
163
+ {% when "hyvor" %}
164
+ // [INFO ] [j1.adapter.comments ] [ place provider: Hyvor Talk ]
165
+ var dependencies_met_page_ready = setInterval(function() {
166
+ if (j1.getState() == 'finished') {
167
+
168
+ // initialize state flag, issue init message
169
+ // -------------------------------------------------------------------
170
+ _this.setState('started');
171
+ logger.info('\n' + 'state: ' + _this.getState());
172
+ logger.info('\n' + 'module is being initialized for provider: ' + comments_provider);
173
+
174
+ // place|remove initialization code
175
+ // -------------------------------------------------------------------
176
+ user_consent = j1.readCookie(cookie_names.user_consent);
177
+ if (user_consent.personalization) {
178
+ // enable Hyvor Talk
179
+ // -----------------------------------------------------------------
180
+ $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
181
+ logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
182
+ logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
183
+
184
+ // add Hyvor Talk Web API
185
+ // NOTE: don't change the script id
186
+ // -----------------------------------------------------------------
187
+ hvApiScript.id = 'hyvor-embed';
188
+ hvApiScript.src = '//talk.hyvor.com/web-api/embed.js';
189
+ hvApiScript.async = true;
190
+ document.head.appendChild(hvApiScript);
191
+
192
+ // add Hyvor Talk callback script
193
+ // -----------------------------------------------------------------
194
+ hvCallbackScript.id = 'hyvor-callback';
195
+ hvCallbackScript.text = '\n';
196
+ hvCallbackScript.text += 'var HYVOR_TALK_WEBSITE = ' + siteID + '\n';
197
+ hvCallbackScript.text += 'var HYVOR_TALK_CONFIG = {' + '\n';
198
+ hvCallbackScript.text += ' url: false,' + '\n';
199
+ hvCallbackScript.text += ' id: false' + '\n';
200
+ hvCallbackScript.text += ' };' + '\n';
201
+ document.head.appendChild(hvCallbackScript);
202
+
203
+ // add Hyvor Talk comment container
204
+ // NOTE: don't change the div id
205
+ // -----------------------------------------------------------------
206
+ $('#main-content').append('<div id="hyvor-talk-view"></div>');
207
+
208
+ // add recommended title to the comments iframe for SEO optimization
209
+ // -------------------------------------------------------------------
210
+ var dependencies_met_load_provider_finished = setInterval (function () {
211
+ if ($('#hyvor-talk-view').children().length) {
212
+ $('#hyvor-talk-iframe').prop('title', 'Hyvor comments iframe');
213
+ clearInterval(dependencies_met_load_provider_finished);
214
+ }
215
+ }, 25);
216
+ } else {
217
+ // disable Hyvor Talk
218
+ // -----------------------------------------------------------------
219
+ logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
220
+ logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
221
+
222
+ // remove Hyvor Talk resources
223
+ // -----------------------------------------------------------------
224
+ $('#leave-a-comment').remove();
225
+ $('#hyvor-embed').remove();
226
+ $('#hyvor-callback').remove();
227
+ $('#hyvor-talk-view').remove();
228
+ }
229
+ clearInterval(dependencies_met_page_ready);
230
+ } // END if getState 'finished'
231
+ }, 25);
232
+
233
+ {% when "disqus" %}
234
+ // [INFO ] [j1.adapter.comments ] [ place provider: Disqus ]
235
+ var dependencies_met_page_ready = setInterval(function() {
236
+ if (j1.getState() == 'finished') {
237
+
238
+ // initialize state flag, issue init message
239
+ // -------------------------------------------------------------------
240
+ _this.setState('started');
241
+ logger.info('\n' + 'state: ' + _this.getState());
242
+ logger.info('\n' + 'module is being initialized for provider: ' + comments_provider);
243
+
244
+ // place|remove initialization code
245
+ // -------------------------------------------------------------------
246
+ user_consent = j1.readCookie(cookie_names.user_consent);
247
+ if (user_consent.personalization) {
248
+ $('#main-content').append('<h2 id="leave-a-comment" class="mt-4">{{comments_headline}}</h2>');
249
+ logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
250
+ logger.info('\n' + 'enable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
251
+
252
+ // old Disqus Web API init
253
+ // -----------------------------------------------------------------
254
+ // var disqus_shortname = '{{site_id}}';
255
+ // // -----------------------------------------------------------------
256
+ // // RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE
257
+ // // SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS.
258
+ // // LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT:
259
+ // // https://disqus.com/admin/universalcode/#configuration-variables
260
+ // // -----------------------------------------------------------------
261
+ // //
262
+ // // var disqus_config = function () {
263
+ // // this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable
264
+ // // Replace PAGE_IDENTIFIER with your page's unique
265
+ // // identifier variable
266
+ // // this.page.identifier = PAGE_IDENTIFIER;
267
+ // // };
268
+ // //
269
+ // // DON'T EDIT BELOW THIS LINE
270
+ // // -----------------------------------------------------------------
271
+ // (function() {
272
+ // var d = document,
273
+ // s = d.createElement('script');
274
+ // s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
275
+ // s.setAttribute('data-timestamp', +new Date());
276
+ // (d.head || d.body).appendChild(s);
277
+ // })();
278
+
279
+ // add|initialize Disqus Web API
280
+ // -----------------------------------------------------------------
281
+ dqApiScript.id = 'dq-web-api';
282
+ dqApiScript.src = '//' + siteID + '.disqus.com/embed.js";'
283
+ dqApiScript.setAttribute("data-timestamp", '"' + timestamp_now + '"');
284
+ document.head.appendChild(dqApiScript);
285
+
286
+ // add Disqus comment container
287
+ // -----------------------------------------------------------------
288
+ $('#main-content').append('<div id="disqus_thread"></div>');
289
+ } else {
290
+ logger.info('\n' + 'user consent on comments: ' + user_consent.personalization);
291
+ logger.warn('\n' + 'disable comments provider' + ' {{comments_provider}} on siteID: ' + siteID);
292
+ $('#leave-a-comment').remove();
293
+ $('#dq-web-api').remove();
294
+ $('#hdisqus_thread').remove();
295
+ }
296
+
297
+ // add recommended title to the comments iframe for SEO optimization
298
+ // -------------------------------------------------------------------
299
+ // var dependencies_met_load_provider_finished = setInterval (function () {
300
+ // if ($('#disqus_thread').children().length) {
301
+ // $('#hyvor-talk-iframe').prop('title', 'Disqus comments iframe');
302
+ // clearInterval(dependencies_met_load_provider_finished);
303
+ // }
304
+ // }, 25);
305
+
306
+ clearInterval(dependencies_met_page_ready);
307
+ } // END if getState 'finished'
308
+ }, 25);
309
+
310
+ {% endcase %}
311
+ // [INFO ] [j1.adapter.comments ] [ end processing ]
312
+ {% else %}
313
+ var dependencies_met_page_ready = setInterval(function() {
314
+ if (j1.getState() == 'finished') {
315
+ logger = log4javascript.getLogger('j1.adapter.comments');
316
+ logger.warn('\n' + 'provider or site ID for comment services wrong or not set');
317
+ clearInterval(dependencies_met_page_ready);
318
+ }
319
+ }, 25);
320
+ {% endif %}
321
+
322
+ {% else %}
323
+ var dependencies_met_page_ready = setInterval(function() {
324
+ if (j1.getState() == 'finished') {
325
+ logger = log4javascript.getLogger('j1.adapter.comments');
326
+ logger.info('\n' + 'comment services: disabled');
327
+ clearInterval(dependencies_met_page_ready);
328
+ }
329
+ }, 25);
330
+ {% endif %}
331
+ return;
332
+ }, // END init
333
+
334
+ // -------------------------------------------------------------------------
335
+ // messageHandler()
336
+ // manage messages send from other J1 modules
337
+ // -------------------------------------------------------------------------
338
+ messageHandler: function (sender, message) {
339
+ var json_message = JSON.stringify(message, undefined, 2);
340
+
341
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
342
+ logger.debug(logText);
343
+
344
+ // -----------------------------------------------------------------------
345
+ // Process commands|actions
346
+ // -----------------------------------------------------------------------
347
+ if (message.type === 'command' && message.action === 'module_initialized') {
348
+ //
349
+ // Place handling of command|action here
350
+ //
351
+ logger.info('\n' + message.text);
352
+ }
353
+
354
+ //
355
+ // Place handling of other command|action here
356
+ //
357
+
358
+ return true;
359
+ }, // END messageHandler
360
+
361
+ // -------------------------------------------------------------------------
362
+ // setState()
363
+ // Sets the current (processing) state of the module
364
+ // -------------------------------------------------------------------------
365
+ setState: function (stat) {
366
+ _this.state = stat;
367
+ }, // END setState
368
+
369
+ // -------------------------------------------------------------------------
370
+ // getState()
371
+ // Returns the current (processing) state of the module
372
+ // -------------------------------------------------------------------------
373
+ getState: function () {
374
+ return _this.state;
375
+ } // END getState
376
+
377
+ }; // END return
378
+ })(j1, window);
379
+
380
+ {% endcapture %}
381
+ {% if production %}
382
+ {{ cache | minifyJS }}
383
+ {% else %}
384
+ {{ cache | strip_empty_lines }}
385
+ {% endif %}
386
+ {% assign cache = nil %}
@@ -19,6 +19,7 @@ regenerate: true
19
19
  # -----------------------------------------------------------------------------
20
20
  # Test data:
21
21
  # {{ liquid_var | debug }}
22
+ # cookie_options: {{ cookie_options | debug }}
22
23
  # -----------------------------------------------------------------------------
23
24
  {% endcomment %}
24
25
 
@@ -78,10 +79,7 @@ regenerate: true
78
79
  /* eslint quotes: "off" */
79
80
  // -----------------------------------------------------------------------------
80
81
  'use strict';
81
-
82
- {% comment %} Main
83
- -------------------------------------------------------------------------------- {% endcomment %}
84
- j1.adapter['cookieConsent'] = (function (j1, window) {
82
+ j1.adapter.cookieConsent = (function (j1, window) {
85
83
 
86
84
  var environment = '{{environment}}';
87
85
  var tracking_enabled = ('{{tracking_enabled}}' === 'true') ? true: false;
@@ -97,14 +95,15 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
97
95
  var url;
98
96
  var baseUrl;
99
97
  var hostname;
100
- var domain;
101
- var domain_enabled;
98
+ var auto_domain;
99
+ var cookie_option_domain;
102
100
  var cookie_domain;
103
101
  var secure;
104
102
  var logText;
105
103
  var cookie_written;
106
104
  var contentLanguage;
107
105
  var navigatorLanguage;
106
+ var domainAttribute;
108
107
 
109
108
  // NOTE: RegEx for tracking_id: ^(G|UA|YT|MO)-[a-zA-Z0-9-]+$
110
109
  // See: https://stackoverflow.com/questions/20411767/how-to-validate-google-analytics-tracking-id-using-a-javascript-function/20412153
@@ -126,17 +125,17 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
126
125
  // -----------------------------------------------------------------------
127
126
  // globals
128
127
  // -----------------------------------------------------------------------
129
- _this = j1.adapter.cookieConsent;
130
- logger = log4javascript.getLogger('j1.adapter.cookieConsent');
131
- cookie_names = j1.getCookieNames();
132
- url = new liteURL(window.location.href);
133
- baseUrl = url.origin;
134
- hostname = url.hostname;
135
- domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
136
- domain_enabled = '{{cookie_options.domain}}';
137
- secure = (url.protocol.includes('https')) ? true : false;
138
- contentLanguage = '{{site.language}}';
139
- navigatorLanguage = navigator.language || navigator.userLanguage;
128
+ _this = j1.adapter.cookieConsent;
129
+ logger = log4javascript.getLogger('j1.adapter.cookieConsent');
130
+ cookie_names = j1.getCookieNames();
131
+ url = new liteURL(window.location.href);
132
+ baseUrl = url.origin;
133
+ hostname = url.hostname;
134
+ auto_domain = hostname.substring(hostname.lastIndexOf('.', hostname.lastIndexOf('.') - 1) + 1);
135
+ cookie_option_domain = ('{{cookie_options.domain}}' === 'true');
136
+ secure = (url.protocol.includes('https')) ? true : false;
137
+ contentLanguage = '{{site.language}}';
138
+ navigatorLanguage = navigator.language || navigator.userLanguage;
140
139
 
141
140
  // initialize state flag
142
141
  _this.state = 'pending';
@@ -170,14 +169,31 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
170
169
  // initializer
171
170
  // -----------------------------------------------------------------------
172
171
  var dependencies_met_page_ready = setInterval (function (options) {
173
- var expires = '{{cookie_options.expires}}';
174
- var same_site = '{{cookie_options.same_site}}';
172
+ var expires = '{{cookie_options.expires}}';
173
+ var same_site = '{{cookie_options.same_site}}';
174
+
175
+ // // set domain used by cookies
176
+ // if (cookie_option_domain == 'auto') {
177
+ // domainAttribute = domain ;
178
+ // } else {
179
+ // domainAttribute = '';
180
+ // }
175
181
 
176
182
  // set domain used by cookies
177
- if (domain != hostname) {
178
- cookie_domain = domain_enabled ? '.' + domain : hostname;
179
- } else {
180
- cookie_domain = hostname;
183
+ if (cookie_option_domain) {
184
+ if (cookie_option_domain == 'auto') {
185
+ domainAttribute = auto_domain;
186
+ stringifiedAttributes += '; ' + 'Domain=' + domainAttribute;
187
+ } else if (cookie_option_domain) {
188
+ domainAttribute = domain;
189
+ stringifiedAttributes += '; ' + 'Domain=' + domainAttribute;
190
+ }
191
+ }
192
+
193
+ // Failsafe: if 'None' is given for samesite in non-secure environments
194
+ // -----------------------------------------------------------------------
195
+ if (same_site == 'None' && !secure) {
196
+ same_site = 'Lax';
181
197
  }
182
198
 
183
199
  if ( j1.getState() === 'finished' ) {
@@ -190,7 +206,8 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
190
206
  cookieName: cookie_names.user_consent, // name of the consent cookie
191
207
  cookieStorageDays: expires, // lifetime of a cookie [0..365], 0: session cookie
192
208
  cookieSameSite: same_site, // restrict consent cookie
193
- cookieDomain: cookie_domain, // set domain (hostname|domain)
209
+ cookieSecure: secure, // only sent to the server with an encrypted request over HTTPS
210
+ cookieDomain: domainAttribute, // set domain (hostname|domain)
194
211
  dialogLanguage: moduleOptions.dialogLanguage, // language for the dialog (modal)
195
212
  whitelisted: moduleOptions.whitelisted, // pages NOt dialog is shown
196
213
  reloadPageOnChange: moduleOptions.reloadPageOnChange, // reload if setzings has changed
@@ -209,7 +226,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
209
226
 
210
227
  clearInterval(dependencies_met_page_ready);
211
228
  }
212
- });
229
+ }, 25);
213
230
  }, // END init
214
231
 
215
232
  // -------------------------------------------------------------------------
@@ -257,8 +274,8 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
257
274
 
258
275
  // -------------------------------------------------------------------------
259
276
  // cbCookie()
260
- // Called by CookieConsent module after the user has
261
- // made his selection (callback)
277
+ // Called (callback) by CookieConsent module after the user has
278
+ // made his selection
262
279
  // -------------------------------------------------------------------------
263
280
  cbCookie: function () {
264
281
  var gaCookies = j1.findCookie('_ga');
@@ -295,24 +312,30 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
295
312
  // Manage Google Analytics OptIn/Out
296
313
  // See: https://github.com/luciomartinez/gtag-opt-in/wiki
297
314
  if (tracking_enabled && tracking_id_valid) {
298
- GTagOptIn.register(tracking_id);
299
- if (user_consent.analysis) {
300
- logger.info('\n' + 'enable: GA');
301
- GTagOptIn.optIn();
302
- } else {
303
- logger.warn('\n' + 'disable: GA');
304
- GTagOptIn.optOut();
305
-
306
- if (!user_agent.includes('iPad')) {
307
- gaCookies.forEach(function (item) {
308
- logger.warn('\n' + 'delete GA cookie: ' + item);
309
- j1.removeCookie({ name: item, domain: cookie_domain });
310
- });
311
- }
312
- }
313
-
314
- // Managing providers using personalization OptIn/Out
315
- // (Comments|Ads|Translation)
315
+ // jadams, 2021-12-20: GA OptIn|Out handling moved to (new)
316
+ // analytics adapter (adapter/js/analytics.js)
317
+ // ---------------------------------------------------------------------
318
+ // GTagOptIn.register(tracking_id);
319
+ // if (user_consent.analysis) {
320
+ // logger.info('\n' + 'enable: GA');
321
+ // GTagOptIn.optIn();
322
+ // } else {
323
+ // logger.warn('\n' + 'disable: GA');
324
+ // GTagOptIn.optOut();
325
+ //
326
+ // if (!user_agent.includes('iPad')) {
327
+ // gaCookies.forEach(function (item) {
328
+ // logger.warn('\n' + 'delete GA cookie: ' + item);
329
+ // j1.removeCookie({ name: item, domain: cookie_domain });
330
+ // });
331
+ // }
332
+ // }
333
+
334
+ // Managing cookie life-time. If cookie settings allows only
335
+ // "required" cookies, all "persistent" cookies (Comments|Ads|Translation)
336
+ // get expired to "session" for better GDPR compliance. The GDPR
337
+ // regulations|privacy does NOT require any consent on using cookies
338
+ // for session-only cookies.
316
339
  //
317
340
  if (!user_consent.analysis || !user_consent.personalization) {
318
341
 
@@ -329,6 +352,7 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
329
352
  });
330
353
 
331
354
  // expire permanent cookies to session
355
+ // -------------------------------------------------------------------
332
356
  j1.expireCookie({ name: cookie_names.user_state });
333
357
  j1.expireCookie({ name: cookie_names.user_consent });
334
358
  j1.expireCookie({ name: cookie_names.user_translate });
@@ -339,14 +363,22 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
339
363
  }
340
364
  } else {
341
365
  // jadams, 2021-08-10: remove cookies on invalid GA config or left
342
- // cookies from previous session if they exists
366
+ // cookies from previous session/page view if they exists
367
+ // ---------------------------------------------------------------------
343
368
  gaCookies.forEach(function (item) {
344
- logger.warn('\n' + 'delete GA cookie: ' + item);
345
- j1.removeCookie({ name: item, domain: cookie_domain });
369
+ // Skip cookies from Google Ads
370
+ var gad = item.includes('gad');
371
+ if (!gad) {
372
+ logger.warn('\n' + 'delete GA cookie: ' + item);
373
+ j1.removeCookie({ name: item, domain: cookie_domain });
374
+ }
346
375
  });
347
376
 
348
- // Managing providers using personalization OptIn/Out
349
- // (Comments|Ads|Translation)
377
+ // Managing cookie life-time. If cookie settings allows only
378
+ // "required" cookies, all "persistent" cookies (Comments|Ads|Translation)
379
+ // get expired to "session" for better GDPR compliance. The GDPR
380
+ // regulations|privacy does NOT require any consent on using cookies
381
+ // for session-only cookies.
350
382
  //
351
383
  if (!user_consent.analysis || !user_consent.personalization) {
352
384
  // overload cookie consent settings
@@ -362,11 +394,12 @@ j1.adapter['cookieConsent'] = (function (j1, window) {
362
394
  });
363
395
 
364
396
  // expire permanent cookies to session
397
+ // -------------------------------------------------------------------
365
398
  j1.expireCookie({ name: cookie_names.user_state });
366
399
  j1.expireCookie({ name: cookie_names.user_consent });
367
400
  j1.expireCookie({ name: cookie_names.user_translate });
368
401
  }
369
-
402
+
370
403
  if (moduleOptions.reloadPageOnChange) {
371
404
  // reload current page (skip cache)
372
405
  location.reload(true);
@@ -78,8 +78,8 @@ regenerate: true
78
78
  /* eslint indent: "off" */
79
79
  // -----------------------------------------------------------------------------
80
80
  'use strict';
81
+ j1.adapter.fab = (function (j1, window) {
81
82
 
82
- j1.adapter['fab'] = (function (j1, window) {
83
83
  // ---------------------------------------------------------------------------
84
84
  // globals
85
85
  // ---------------------------------------------------------------------------