j1-template 2023.2.6 → 2023.3.0

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 (373) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +2 -1
  3. data/_includes/themes/j1/layouts/content_generator_post.html +2 -2
  4. data/_includes/themes/j1/layouts/layout_metadata_generator.html +41 -38
  5. data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
  6. data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
  7. data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
  8. data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
  9. data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
  10. data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -3
  11. data/_includes/themes/j1/procedures/layouts/module_writer.proc +7 -23
  12. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +8 -8
  13. data/_layouts/compress.html +26 -21
  14. data/_layouts/default.html +36 -30
  15. data/assets/data/banner.html +5 -2
  16. data/assets/data/footer.html +15 -3
  17. data/assets/data/masterslider.html +1 -0
  18. data/assets/data/menu.html +4 -4
  19. data/assets/data/panel.html +6 -3
  20. data/assets/data/quicklinks.html +138 -149
  21. data/assets/error_pages/HTTP204.html +3 -3
  22. data/assets/error_pages/HTTP400.html +3 -3
  23. data/assets/error_pages/HTTP401.html +3 -3
  24. data/assets/error_pages/HTTP403.html +3 -3
  25. data/assets/error_pages/HTTP404.html +3 -3
  26. data/assets/error_pages/HTTP444.html +3 -3
  27. data/assets/error_pages/HTTP445.html +3 -3
  28. data/assets/error_pages/HTTP446.html +5 -5
  29. data/assets/error_pages/HTTP447.html +7 -7
  30. data/assets/error_pages/HTTP448.html +7 -7
  31. data/assets/error_pages/HTTP500.html +3 -3
  32. data/assets/error_pages/HTTP501.html +3 -3
  33. data/assets/error_pages/HTTP502.html +3 -3
  34. data/assets/error_pages/HTTP503.html +3 -3
  35. data/assets/themes/j1/adapter/js/advertising.js +109 -116
  36. data/assets/themes/j1/adapter/js/analytics.js +1 -1
  37. data/assets/themes/j1/adapter/js/asciidoctor.js +1 -1
  38. data/assets/themes/j1/adapter/js/attic.js +22 -14
  39. data/assets/themes/j1/adapter/js/bmd.js +1 -1
  40. data/assets/themes/j1/adapter/js/carousel.js +5 -4
  41. data/assets/themes/j1/adapter/js/clipboard.js +1 -1
  42. data/assets/themes/j1/adapter/js/comments.js +5 -5
  43. data/assets/themes/j1/adapter/js/cookieConsent.js +1 -1
  44. data/assets/themes/j1/adapter/js/customFunctions.js +1 -1
  45. data/assets/themes/j1/adapter/js/customModule.js +1 -1
  46. data/assets/themes/j1/adapter/js/dropdowns.js +4 -2
  47. data/assets/themes/j1/adapter/js/fab.js +9 -6
  48. data/assets/themes/j1/adapter/js/framer.js +1 -1
  49. data/assets/themes/j1/adapter/js/iconPicker.js +227 -0
  50. data/assets/themes/j1/adapter/js/j1.js +401 -76
  51. data/assets/themes/j1/adapter/js/justifiedGallery.js +9 -3
  52. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +2 -2
  53. data/assets/themes/j1/adapter/js/lightbox.js +4 -3
  54. data/assets/themes/j1/adapter/js/logger.js +1 -1
  55. data/assets/themes/j1/adapter/js/lunr.js +1 -1
  56. data/assets/themes/j1/adapter/js/masonry.js +4 -3
  57. data/assets/themes/j1/adapter/js/masterslider.js +30 -57
  58. data/assets/themes/j1/adapter/js/mmenu.js +2 -2
  59. data/assets/themes/j1/adapter/js/navigator.js +7 -5
  60. data/assets/themes/j1/adapter/js/nbinteract.js +9 -9
  61. data/assets/themes/j1/adapter/js/particles.js +2 -2
  62. data/assets/themes/j1/adapter/js/rangeSlider.js +2 -2
  63. data/assets/themes/j1/adapter/js/rouge.js +2 -2
  64. data/assets/themes/j1/adapter/js/rtable.js +1 -1
  65. data/assets/themes/j1/adapter/js/rtextResizer.js +1 -1
  66. data/assets/themes/j1/adapter/js/scroller.js +97 -109
  67. data/assets/themes/j1/adapter/js/slick.js +28 -18
  68. data/assets/themes/j1/adapter/js/themeToggler.js +259 -0
  69. data/assets/themes/j1/adapter/js/themer.js +17 -8
  70. data/assets/themes/j1/adapter/js/toccer.js +9 -6
  71. data/assets/themes/j1/adapter/js/translator.js +4 -2
  72. data/assets/themes/j1/adapter/js/waves.js +6 -4
  73. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1322 -417
  74. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -3
  75. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +1983 -1266
  76. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -3
  77. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +10268 -9402
  78. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +10 -10
  79. data/assets/themes/j1/core/css/vendor.css +0 -14
  80. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  81. data/assets/themes/j1/modules/advertising/js/adInitializer.js +160 -0
  82. data/assets/themes/j1/modules/backstretch/js/backstretch.js +6 -4
  83. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  84. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js +1 -1
  85. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.min.js +1 -1
  86. data/assets/themes/j1/modules/iconPicker/README.md +266 -0
  87. data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.css +419 -0
  88. data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.min.css +17 -0
  89. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-brands.json +467 -0
  90. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-brands.min.json +1 -0
  91. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-regular.json +169 -0
  92. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-regular.min.json +1 -0
  93. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-solid.json +1136 -0
  94. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-solid.min.json +1 -0
  95. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome.json +1772 -0
  96. data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome.min.json +1 -0
  97. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.json +292 -0
  98. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.min.json +1 -0
  99. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.json +7312 -0
  100. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.min.json +1 -0
  101. data/assets/themes/j1/modules/iconPicker/images/magnifying-glass-solid.svg +1 -0
  102. data/assets/themes/j1/modules/iconPicker/images/star-of-life-solid.svg +3 -0
  103. data/assets/themes/j1/modules/iconPicker/images/xmark-solid.svg +3 -0
  104. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.js +493 -0
  105. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.min.js +17 -0
  106. data/assets/themes/j1/modules/jquery/AUTHORS.txt +372 -0
  107. data/assets/themes/j1/modules/jquery/LICENSE.txt +43 -0
  108. data/assets/themes/j1/modules/jquery/css/images/ui-icons_444444_256x240.png +0 -0
  109. data/assets/themes/j1/modules/jquery/css/images/ui-icons_555555_256x240.png +0 -0
  110. data/assets/themes/j1/modules/jquery/css/images/ui-icons_777620_256x240.png +0 -0
  111. data/assets/themes/j1/modules/jquery/css/images/ui-icons_777777_256x240.png +0 -0
  112. data/assets/themes/j1/modules/jquery/css/images/ui-icons_cc0000_256x240.png +0 -0
  113. data/assets/themes/j1/modules/jquery/css/images/ui-icons_ffffff_256x240.png +0 -0
  114. data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.css +92 -92
  115. data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.min.css +4 -4
  116. data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.structure.css +88 -88
  117. data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.structure.min.css +2 -2
  118. data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.theme.css +4 -4
  119. data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.theme.min.css +2 -2
  120. data/assets/themes/j1/modules/jquery/js/jquery-ui.js +13683 -13678
  121. data/assets/themes/j1/modules/jquery/js/jquery-ui.min.js +3 -3
  122. data/assets/themes/j1/modules/jquery/js/jquery.js +1029 -1203
  123. data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -2
  124. data/assets/themes/j1/modules/jquery/js/jquery.min.map +1 -1
  125. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.css +1315 -0
  126. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.min.css +7 -0
  127. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.css +886 -0
  128. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.min.css +5 -0
  129. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.css +446 -0
  130. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.min.css +5 -0
  131. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.js +37 -0
  132. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.min.js +17 -0
  133. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.js +42 -0
  134. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.min.js +17 -0
  135. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.js +19057 -0
  136. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.min.js +6 -0
  137. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.js +10872 -0
  138. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.js +2 -0
  139. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.map +1 -0
  140. data/assets/themes/j1/modules/jquery-3.5.1/js/require.js +2145 -0
  141. data/assets/themes/j1/modules/jquery-3.5.1/js/require.min.js +5 -0
  142. data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.js +2 -2
  143. data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.min.js +1 -1
  144. data/assets/themes/j1/modules/masterslider/css/theme/uno.css +9 -9
  145. data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +1 -1
  146. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +2 -2
  147. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  148. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +136 -47
  149. data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +9 -9
  150. data/assets/themes/j1/modules/scroller/js/scroller.js +76 -69
  151. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  152. data/assets/themes/j1/modules/translator/js/translator.js +1 -1
  153. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  154. data/lib/j1/version.rb +1 -1
  155. data/lib/starter_web/Gemfile +2 -2
  156. data/lib/starter_web/README.md +5 -5
  157. data/lib/starter_web/_config.yml +4 -1
  158. data/lib/starter_web/_data/blocks/banner.yml +8 -5
  159. data/lib/starter_web/_data/blocks/defaults/footer.yml +3 -3
  160. data/lib/starter_web/_data/blocks/footer.yml +9 -5
  161. data/lib/starter_web/_data/blocks/panel.yml +41 -38
  162. data/lib/starter_web/_data/j1_config.yml +68 -58
  163. data/lib/starter_web/_data/layouts/collection.yml +1 -0
  164. data/lib/starter_web/_data/layouts/default.yml +1 -1
  165. data/lib/starter_web/_data/layouts/home.yml +9 -9
  166. data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -0
  167. data/lib/starter_web/_data/layouts/page.yml +2 -1
  168. data/lib/starter_web/_data/layouts/post.yml +1 -0
  169. data/lib/starter_web/_data/layouts/raw.yml +1 -0
  170. data/lib/starter_web/_data/modules/advertising.yml +134 -61
  171. data/lib/starter_web/_data/modules/analytics.yml +2 -2
  172. data/lib/starter_web/_data/modules/attics.yml +4 -7
  173. data/lib/starter_web/_data/modules/defaults/advertising.yml +2 -1
  174. data/lib/starter_web/_data/modules/defaults/attics.yml +3 -3
  175. data/lib/starter_web/_data/modules/defaults/iconPicker.yml +42 -0
  176. data/lib/starter_web/_data/modules/defaults/navigator.yml +15 -13
  177. data/lib/starter_web/_data/modules/defaults/theme_toggler.yml +42 -0
  178. data/lib/starter_web/_data/modules/iconPicker.yml +64 -0
  179. data/lib/starter_web/_data/modules/masonry.yml +1 -1
  180. data/lib/starter_web/_data/modules/masterslider.yml +5 -5
  181. data/lib/starter_web/_data/modules/navigator_menu.yml +150 -41
  182. data/lib/starter_web/_data/modules/scroller.yml +8 -8
  183. data/lib/starter_web/_data/modules/theme_toggler.yml +29 -0
  184. data/lib/starter_web/_data/modules/themer.yml +0 -6
  185. data/lib/starter_web/_data/resources.yml +53 -52
  186. data/lib/starter_web/_data/templates/feed.xml +1 -1
  187. data/lib/starter_web/_includes/attributes.asciidoc +57 -50
  188. data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +47 -0
  189. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  190. data/lib/starter_web/assets/images/icons/mdi/mdi.svg +1 -0
  191. data/lib/starter_web/assets/images/icons/mdi/mdil.svg +1 -0
  192. data/lib/starter_web/assets/images/modules/attics/1920x1280/alexander-redl.jpg +0 -0
  193. data/lib/starter_web/assets/images/modules/attics/1920x1280/alina-grubnyak.jpg +0 -0
  194. data/lib/starter_web/assets/images/modules/attics/1920x1280/andrea-badino.jpg +0 -0
  195. data/lib/starter_web/assets/images/modules/attics/1920x1280/brad-neathery.jpg +0 -0
  196. data/lib/starter_web/assets/images/modules/attics/1920x1280/bruno-figueiredo.jpg +0 -0
  197. data/lib/starter_web/assets/images/modules/attics/1920x1280/clem-onojeghuo.jpg +0 -0
  198. data/lib/starter_web/assets/images/modules/attics/1920x1280/core_web_vitals_best.png +0 -0
  199. data/lib/starter_web/assets/images/modules/attics/1920x1280/crawford-jolly.jpg +0 -0
  200. data/lib/starter_web/assets/images/modules/attics/1920x1280/eleni-afiontzi.jpg +0 -0
  201. data/lib/starter_web/assets/images/modules/attics/1920x1280/fly-d.jpg +0 -0
  202. data/lib/starter_web/assets/images/modules/attics/1920x1280/guillaume-bolduc.jpg +0 -0
  203. data/lib/starter_web/assets/images/modules/attics/1920x1280/harpal-singh.jpg +0 -0
  204. data/lib/starter_web/assets/images/modules/attics/1920x1280/hayden-mills-2.jpg +0 -0
  205. data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-1.jpg +0 -0
  206. data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-2.jpg +0 -0
  207. data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-3.jpg +0 -0
  208. data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-starter-mockup-1.jpg +0 -0
  209. data/lib/starter_web/assets/images/modules/attics/1920x1280/john-schnobrich-2.jpg +0 -0
  210. data/lib/starter_web/assets/images/modules/attics/1920x1280/josep-martins.jpg +0 -0
  211. data/lib/starter_web/assets/images/modules/attics/1920x1280/josh-liu.jpg +0 -0
  212. data/lib/starter_web/assets/images/modules/attics/1920x1280/kelly-sikkemal.jpg +0 -0
  213. data/lib/starter_web/assets/images/modules/attics/1920x1280/kira-auf-der-heide.jpg +0 -0
  214. data/lib/starter_web/assets/images/modules/attics/1920x1280/kristopher-roller.jpg +0 -0
  215. data/lib/starter_web/assets/images/modules/attics/1920x1280/kristopher-roller.webp +0 -0
  216. data/lib/starter_web/assets/images/modules/attics/1920x1280/matthaeus.jpg +0 -0
  217. data/lib/starter_web/assets/images/modules/attics/1920x1280/melanie-deziel.jpg +0 -0
  218. data/lib/starter_web/assets/images/modules/attics/1920x1280/milad-fakurian.jpg +0 -0
  219. data/lib/starter_web/assets/images/modules/attics/1920x1280/mohammad-rahmani.jpg +0 -0
  220. data/lib/starter_web/assets/images/modules/attics/1920x1280/nasa.jpg +0 -0
  221. data/lib/starter_web/assets/images/modules/attics/1920x1280/quino-al-2.jpg +0 -0
  222. data/lib/starter_web/assets/images/modules/attics/1920x1280/recha-oktaviani.jpg +0 -0
  223. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280.jpg +0 -0
  224. data/lib/starter_web/assets/images/modules/attics/christina-1920x1280.jpg +0 -0
  225. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200.jpg +0 -0
  226. data/lib/starter_web/assets/images/modules/attics/katie-moum-1920x1280.jpg +0 -0
  227. data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best.jpg +0 -0
  228. data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best.png +0 -0
  229. data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best_full.png +0 -0
  230. data/lib/starter_web/assets/images/pages/html_validator/appdevtools-html-validator.jpg +0 -0
  231. data/lib/starter_web/assets/images/pages/html_validator/freeformatter-html-validator.jpg +0 -0
  232. data/lib/starter_web/assets/images/pages/html_validator/w3c-nu-checker.jpg +0 -0
  233. data/lib/starter_web/assets/images/pages/html_validator/w3c-validator.jpg +0 -0
  234. data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +8 -9
  235. data/lib/starter_web/collections/_biography/becoming.adoc +22 -9
  236. data/lib/starter_web/collections/_biography/born-to-run.adoc +27 -9
  237. data/lib/starter_web/collections/_biography/forty-autumns.adoc +19 -12
  238. data/lib/starter_web/collections/_biography/not-dead-yet.adoc +24 -14
  239. data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +23 -14
  240. data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +24 -11
  241. data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +14 -10
  242. data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +11 -8
  243. data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +7 -8
  244. data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +17 -14
  245. data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +12 -13
  246. data/lib/starter_web/collections/_fantasy/terry-pratchet-diary.adoc +15 -15
  247. data/lib/starter_web/collections/_people/diana-petersen.adoc +2 -0
  248. data/lib/starter_web/collections/_people/larry-parker.adoc +2 -0
  249. data/lib/starter_web/collections/_people/parveen-anand.adoc +2 -0
  250. data/lib/starter_web/collections/_portfolio/branding.adoc +5 -0
  251. data/lib/starter_web/collections/_portfolio/graphic_design.adoc +5 -0
  252. data/lib/starter_web/collections/_portfolio/identity.adoc +5 -0
  253. data/lib/starter_web/collections/_portfolio/illustration.adoc +5 -0
  254. data/lib/starter_web/collections/_portfolio/photography.adoc +5 -0
  255. data/lib/starter_web/collections/_portfolio/web_design.adoc +5 -0
  256. data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes-a.adoc +8 -5
  257. data/lib/starter_web/collections/_romance/dressmaker-the.adoc +14 -14
  258. data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +12 -9
  259. data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +14 -11
  260. data/lib/starter_web/collections/_romance/outlander-novel.adoc +48 -25
  261. data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +30 -15
  262. data/lib/starter_web/index.html +6 -14
  263. data/lib/starter_web/package.json +3 -3
  264. data/lib/starter_web/pages/public/about/features.adoc +1 -4
  265. data/lib/starter_web/pages/public/about/reporting_issues.adoc +1 -3
  266. data/lib/starter_web/pages/public/blog/navigator/archive/allview.html +0 -5
  267. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +0 -4
  268. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +0 -5
  269. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +0 -5
  270. data/lib/starter_web/pages/public/blog/navigator/index.html +2 -6
  271. data/lib/starter_web/pages/public/features/general.adoc +0 -4
  272. data/lib/starter_web/pages/public/features/template.adoc +0 -4
  273. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +1 -3
  274. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +1 -1
  275. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +1 -1
  276. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +1 -2
  277. data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +75 -66
  278. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/attributes.asciidoc +58 -0
  279. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/accordion.asciidoc +34 -0
  280. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/alerts.asciidoc +15 -0
  281. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/badges.asciidoc +9 -0
  282. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/body.asciidoc +14 -0
  283. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/breadcrumbs.asciidoc +14 -0
  284. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/buttons.asciidoc +75 -0
  285. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/cards.asciidoc +22 -0
  286. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/carousel.asciidoc +37 -0
  287. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/close.asciidoc +15 -0
  288. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/code.asciidoc +14 -0
  289. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/color_system.asciidoc +353 -0
  290. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/components.asciidoc +69 -0
  291. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/dropdowns.asciidoc +53 -0
  292. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/figures.asciidoc +5 -0
  293. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/forms.asciidoc +270 -0
  294. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/grid.asciidoc +49 -0
  295. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/links.asciidoc +21 -0
  296. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/list_groups.asciidoc +28 -0
  297. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/modals.asciidoc +43 -0
  298. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/navbar.asciidoc +45 -0
  299. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/navs.asciidoc +28 -0
  300. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/offcanvas.asciidoc +16 -0
  301. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/options.asciidoc +30 -0
  302. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/pagination.asciidoc +40 -0
  303. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/paragraph.asciidoc +5 -0
  304. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/placeholders.asciidoc +5 -0
  305. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/popovers.asciidoc +28 -0
  306. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/position.asciidoc +8 -0
  307. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/progress_bars.asciidoc +12 -0
  308. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/spacing.asciidoc +14 -0
  309. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/spinners.asciidoc +12 -0
  310. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/tables.asciidoc +55 -0
  311. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/thumbnails.asciidoc +9 -0
  312. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/toasts.asciidoc +18 -0
  313. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/tooltips.asciidoc +28 -0
  314. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/typography.asciidoc +115 -0
  315. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/z_index.asciidoc +26 -0
  316. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/tables/_table.asciidoc +9 -0
  317. data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/tables/accordion.asciidoc +87 -0
  318. data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +262 -0
  319. data/lib/starter_web/pages/public/learn/cheatsheet/gem.adoc +255 -0
  320. data/lib/starter_web/pages/public/learn/cheatsheet/git.adoc +1458 -0
  321. data/lib/starter_web/pages/public/learn/cheatsheet/j1.adoc +63 -0
  322. data/lib/starter_web/pages/public/learn/cheatsheet/yaml.adoc +514 -0
  323. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/attributes.asciidoc +59 -0
  324. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/documents/100_chapter.asciidoc +541 -0
  325. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/documents/200_chapter.asciidoc +33 -0
  326. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/build_command_options.asciidoc +72 -0
  327. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/files_and_folders.asciidoc +66 -0
  328. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/global_configuration_options.asciidoc +63 -0
  329. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/global_variables.asciidoc +26 -0
  330. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/page_variables.asciidoc +54 -0
  331. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/serve_command_options.asciidoc +45 -0
  332. data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/site_variables.asciidoc +59 -0
  333. data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +442 -0
  334. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -1
  335. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +3 -4
  336. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +2 -2
  337. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +10 -10
  338. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +0 -2
  339. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +8 -2
  340. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +3 -7
  341. data/lib/starter_web/pages/public/learn/where_to_go.adoc +39 -45
  342. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +2 -6
  343. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +0 -1
  344. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -6
  345. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +2 -6
  346. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +0 -2
  347. data/lib/starter_web/pages/public/plans/plans.adoc +0 -2
  348. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +93 -7
  349. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  350. data/lib/starter_web/utilsrv/package.json +1 -1
  351. metadata +133 -24
  352. data/_includes/themes/j1/modules/ads/google_ad_content_home.html +0 -11
  353. data/_includes/themes/j1/modules/ads/google_ad_top_home.html +0 -11
  354. data/assets/themes/j1/core/css/nbinteract-tutorial/styles.css +0 -1711
  355. data/assets/themes/j1/core/css/nbinteract-tutorial/styles.min.css +0 -1
  356. data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +0 -127
  357. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.2.js +0 -460
  358. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +0 -97
  359. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +0 -15
  360. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +0 -115
  361. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +0 -15
  362. data/assets/themes/j1/modules/mdilPreviewer/css/previewer.css +0 -97
  363. data/assets/themes/j1/modules/mdilPreviewer/css/previewer.min.css +0 -15
  364. data/assets/themes/j1/modules/mdilPreviewer/js/previewer.js +0 -125
  365. data/assets/themes/j1/modules/mdilPreviewer/js/previewer.min.js +0 -15
  366. data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_content_home.html +0 -11
  367. data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_top_home.html +0 -11
  368. /data/lib/starter_web/assets/images/{promo → quotes/promo}/home/screenshot.jpg +0 -0
  369. /data/lib/starter_web/assets/images/{promo → quotes/promo}/jekyll/jekyll-faq.jpg +0 -0
  370. /data/lib/starter_web/assets/images/{promo → quotes/promo}/jekyll/jekyll-generator.jpg +0 -0
  371. /data/lib/starter_web/assets/images/{promo → quotes/promo}/jekyll/jekyll-generator.png +0 -0
  372. /data/lib/starter_web/assets/images/{promo → quotes/promo}/jekyll/jekyll-og.png +0 -0
  373. /data/lib/starter_web/assets/images/{promo → quotes/promo}/jekyll/scalable/jekyll-faq.psd +0 -0
@@ -1 +0,0 @@
1
- html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{-webkit-text-decoration-skip:objects;background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}[hidden],template{display:none}blockquote,body,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,legend,ol,p,pre,ul{margin:0;padding:0}li>ol,li>ul{margin-bottom:0}table{border-collapse:collapse;border-spacing:0}fieldset{border:0;min-width:0}address,blockquote,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,ol,p,pre,table,ul{margin-bottom:24px}dd,ol,ul{margin-left:24px}*{-webkit-overflow-scrolling:touch}html{font-size:1em;line-height:1.5;min-height:100%;overflow-y:scroll}h1{font-size:36px;font-size:2.25rem;line-height:1.16667}h2{font-size:28px;font-size:1.75rem;line-height:1.28571}h3{font-size:24px;font-size:1.5rem;line-height:1.25}h4{font-size:20px;font-size:1.25rem;line-height:1.5}h5{font-size:18px;font-size:1.125rem;line-height:1.33333}h6{font-size:16px;font-size:1rem;line-height:1.5}img{font-style:italic;max-width:100%;vertical-align:middle}img[height],img[width]{max-width:none}table{width:100%}html{color:#222;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol}code,kbd,pre,samp{font-family:Inconsolata,Monaco,Consolas,Andale Mono,Bitstream Vera Sans Mono,Courier New,Courier,monospace;font-style:normal}.highlight{background:#fff}.highlighter-rouge .highlight{background:#eef}.highlight .c{color:#998;font-style:italic}.highlight .err{background-color:#e3d2d2;color:#a61717}.highlight .k,.highlight .o{font-weight:700}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:700}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-style:italic;font-weight:700}.highlight .gd{background-color:#fdd;color:#000}.highlight .gd .x{background-color:#faa;color:#000}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{background-color:#dfd;color:#000}.highlight .gi .x{background-color:#afa;color:#000}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:700}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc,.highlight .kd,.highlight .kp,.highlight .kr,.highlight .kt{font-weight:700}.highlight .kt{color:#458}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086b3}.highlight .nc{color:#458;font-weight:700}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne,.highlight .nf{color:#900;font-weight:700}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:700}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#099}.highlight .s2,.highlight .sb,.highlight .sc,.highlight .sd,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc,.highlight .vg,.highlight .vi{color:teal}.highlight .il{color:#099}table{max-width:100%;width:auto}table td,table th{border:1px solid #ccc;padding:6px 12px;text-align:right}table tr:nth-child(2n){background-color:#f7f7f7}a,a:visited{color:#0077d8;text-decoration:none}pre{background-color:#f7f7f7;font-size:.9em;margin-bottom:12px;overflow-x:scroll;padding:12px}.o-wrapper{margin-left:auto;margin-right:auto;max-width:800px;padding-left:24px;padding-right:24px}.o-wrapper:after{clear:both!important;content:""!important;display:block!important}.o-layout{display:block;font-size:0;list-style:none;margin:0 0 0 -24px;padding:0}.o-layout__item{box-sizing:border-box;display:inline-block;font-size:16px;font-size:1rem;padding-left:24px;vertical-align:top;width:100%}.o-layout--flush{margin-left:0}.o-layout--flush>.o-layout__item{padding-left:0}.o-layout--tiny{margin-left:-6px}.o-layout--tiny>.o-layout__item{padding-left:6px}.o-layout--small{margin-left:-12px}.o-layout--small>.o-layout__item{padding-left:12px}.o-layout--large{margin-left:-48px}.o-layout--large>.o-layout__item{padding-left:48px}.o-layout--huge{margin-left:-96px}.o-layout--huge>.o-layout__item{padding-left:96px}.o-layout--middle>.o-layout__item{vertical-align:middle}.o-layout--bottom>.o-layout__item{vertical-align:bottom}.o-layout--stretch{display:flex;flex-wrap:wrap}.o-layout--stretch>.o-layout__item{display:flex}.o-layout--stretch.o-layout--center{justify-content:center}.o-layout--stretch.o-layout--right{justify-content:flex-end}.o-layout--stretch.o-layout--left{justify-content:flex-start}.o-layout--center{text-align:center}.o-layout--center>.o-layout__item{text-align:left}.o-layout--right{text-align:right}.o-layout--left,.o-layout--left>.o-layout__item,.o-layout--right>.o-layout__item{text-align:left}.o-layout--reverse{direction:rtl}.o-layout--reverse>.o-layout__item{direction:ltr}.o-layout--auto>.o-layout__item{width:auto}.hamburger{background-color:transparent;border:0;color:inherit;cursor:pointer;display:inline-block;font:inherit;margin:0;overflow:visible;padding:8px 0;text-transform:none;transition-duration:.15s;transition-property:opacity,filter;transition-timing-function:linear}.hamburger:hover{opacity:.7}.hamburger-box{display:inline-block;height:15px;position:relative;vertical-align:middle;width:20px}.hamburger-inner{display:block;margin-top:-1.5px;top:50%}.hamburger-inner,.hamburger-inner:after,.hamburger-inner:before{background-color:#222;border-radius:4px;height:3px;position:absolute;transition-duration:.15s;transition-property:transform;transition-timing-function:ease;width:20px}.hamburger-inner:after,.hamburger-inner:before{content:"";display:block}.hamburger-inner:before{top:-6px}.hamburger-inner:after{bottom:-6px}.hamburger--arrowalt .hamburger-inner:before{transition:top .1s ease .1s,transform .1s cubic-bezier(.165,.84,.44,1)}.hamburger--arrowalt .hamburger-inner:after{transition:bottom .1s ease .1s,transform .1s cubic-bezier(.165,.84,.44,1)}.hamburger--arrowalt.is-active .hamburger-inner:before{top:0;transform:translate3d(-4px,-5px,0) rotate(-45deg) scaleX(.7);transition:top .1s ease,transform .1s cubic-bezier(.895,.03,.685,.22) .1s}.hamburger--arrowalt.is-active .hamburger-inner:after{bottom:0;transform:translate3d(-4px,5px,0) rotate(45deg) scaleX(.7);transition:bottom .1s ease,transform .1s cubic-bezier(.895,.03,.685,.22) .1s}.c-textbook{height:100vh;overflow:hidden;position:relative}.c-textbook__page,.c-textbook__sidebar{background-color:#fff;height:100vh;overflow:scroll;position:absolute}.c-textbook__sidebar{width:260px}.c-textbook__page{transition:transform .25s ease;width:100%}.js-show-sidebar .c-textbook__page{transform:translate(260px)}@media (min-width:46.25em){.js-show-sidebar .c-textbook__page{width:calc(100% - 260px)}}.c-textbook__sidebar{background-color:#fafafa;border-right:1px solid rgba(0,0,0,.07);font-size:14px;font-size:.875rem;line-height:1.71429;padding:12px}.c-sidebar__chapters{list-style:none;margin-bottom:0;margin-left:0}.c-sidebar__sections{list-style:none;margin-bottom:0;margin-left:12px}.c-sidebar__entry{color:#364149;display:block;padding:6px;text-decoration:none}.c-sidebar__entry:hover{text-decoration:underline}.c-sidebar__entry:visited{color:#364149}.c-sidebar__entry--active.c-sidebar__entry--active{color:#0077d8}.c-sidebar__divider{border-top:1px solid #bbb;margin:6px}.c-textbook__page{padding:12px 0}@media (min-width:46.25em) and (max-width:61.24em){.c-textbook__page{padding-left:24px;padding-right:24px}}@media (min-width:61.25em){.c-textbook__page{padding-left:48px;padding-right:48px}}.c-textbook__page:focus{outline:none}#ipython-notebook:after{clear:both!important;content:""!important;display:block!important}#ipython-notebook .input_area pre,#ipython-notebook .output_text pre{background-color:#f7f7f7;font-size:.9em;margin-bottom:12px;overflow-x:scroll;padding:12px}#ipython-notebook .input_area pre{border:1px solid #ccc}#ipython-notebook .output_html{overflow-x:scroll}#ipython-notebook code{background-color:#f7f7f7;font-size:14px;font-size:.875rem;line-height:1.71429;padding:4px}#ipython-notebook blockquote{border-left:4px solid #ccc;margin:12px;padding:18px}#ipython-notebook blockquote p:last-child{margin-bottom:0}#ipython-notebook .cell.nbinteract-left{float:left;width:50%}#ipython-notebook .cell.nbinteract-right{float:right;width:50%}#ipython-notebook .cell.nbinteract-hide_in>.input,#ipython-notebook .cell.nbinteract-hide_out>.output_wrapper{display:none}#ipython-notebook .cell:after{clear:both;content:"";display:table}#ipython-notebook div.output_subarea{max-width:none}#ipython-notebook .jp-OutputPrompt{display:none}.c-page__nav{align-items:center;display:flex;justify-content:space-between}.c-page__nav__next,.c-page__nav__prev{border:1px solid rgba(0,140,255,.7);border-radius:3px;color:rgba(0,140,255,.7);flex:1;padding:12px 0}.c-page__nav__next{text-align:right}.c-sidebar-toggle{margin-bottom:24px}.c-sidebar-toggle__label{display:inline-block;font-size:12px;font-size:.75rem;line-height:1.5;margin-left:6px;text-transform:uppercase;vertical-align:middle}.buttons .interact-button,.js-nbinteract-widget{background-color:#477dca;border:none;border-radius:3px;color:#fff;cursor:pointer;display:inline-block;font-size:16px;font-size:1rem;font-weight:700;line-height:1.5;padding:6px 18px;text-decoration:none}.buttons .interact-button:focus,.buttons .interact-button:hover,.js-nbinteract-widget:focus,.js-nbinteract-widget:hover{text-decoration:none}.buttons{margin-bottom:24px}.js-nbinteract-widget{margin-bottom:12px;padding:6px 24px}.u-clearfix:after{clear:both!important;content:""!important;display:block!important}.u-hidden-visually{clip:rect(0 0 0 0)!important;border:0!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.u-hidden{display:none!important}.u-padding{padding:24px!important}.u-padding-tiny{padding:6px!important}.u-padding-small{padding:12px!important}.u-padding-large{padding:48px!important}.u-padding-huge{padding:96px!important}.u-padding-none{padding:0!important}.u-padding-top{padding-top:24px!important}.u-padding-top-tiny{padding-top:6px!important}.u-padding-top-small{padding-top:12px!important}.u-padding-top-large{padding-top:48px!important}.u-padding-top-huge{padding-top:96px!important}.u-padding-top-none{padding-top:0!important}.u-padding-right{padding-right:24px!important}.u-padding-right-tiny{padding-right:6px!important}.u-padding-right-small{padding-right:12px!important}.u-padding-right-large{padding-right:48px!important}.u-padding-right-huge{padding-right:96px!important}.u-padding-right-none{padding-right:0!important}.u-padding-bottom{padding-bottom:24px!important}.u-padding-bottom-tiny{padding-bottom:6px!important}.u-padding-bottom-small{padding-bottom:12px!important}.u-padding-bottom-large{padding-bottom:48px!important}.u-padding-bottom-huge{padding-bottom:96px!important}.u-padding-bottom-none{padding-bottom:0!important}.u-padding-left{padding-left:24px!important}.u-padding-left-tiny{padding-left:6px!important}.u-padding-left-small{padding-left:12px!important}.u-padding-left-large{padding-left:48px!important}.u-padding-left-huge{padding-left:96px!important}.u-padding-left-none{padding-left:0!important}.u-padding-horizontal{padding-left:24px!important;padding-right:24px!important}.u-padding-horizontal-tiny{padding-left:6px!important;padding-right:6px!important}.u-padding-horizontal-small{padding-left:12px!important;padding-right:12px!important}.u-padding-horizontal-large{padding-left:48px!important;padding-right:48px!important}.u-padding-horizontal-huge{padding-left:96px!important;padding-right:96px!important}.u-padding-horizontal-none{padding-left:0!important;padding-right:0!important}.u-padding-vertical{padding-bottom:24px!important;padding-top:24px!important}.u-padding-vertical-tiny{padding-bottom:6px!important;padding-top:6px!important}.u-padding-vertical-small{padding-bottom:12px!important;padding-top:12px!important}.u-padding-vertical-large{padding-bottom:48px!important;padding-top:48px!important}.u-padding-vertical-huge{padding-bottom:96px!important;padding-top:96px!important}.u-padding-vertical-none{padding-bottom:0!important;padding-top:0!important}.u-margin{margin:24px!important}.u-margin-tiny{margin:6px!important}.u-margin-small{margin:12px!important}.u-margin-large{margin:48px!important}.u-margin-huge{margin:96px!important}.u-margin-none{margin:0!important}.u-margin-top{margin-top:24px!important}.u-margin-top-tiny{margin-top:6px!important}.u-margin-top-small{margin-top:12px!important}.u-margin-top-large{margin-top:48px!important}.u-margin-top-huge{margin-top:96px!important}.u-margin-top-none{margin-top:0!important}.u-margin-right{margin-right:24px!important}.u-margin-right-tiny{margin-right:6px!important}.u-margin-right-small{margin-right:12px!important}.u-margin-right-large{margin-right:48px!important}.u-margin-right-huge{margin-right:96px!important}.u-margin-right-none{margin-right:0!important}.u-margin-bottom{margin-bottom:24px!important}.u-margin-bottom-tiny{margin-bottom:6px!important}.u-margin-bottom-small{margin-bottom:12px!important}.u-margin-bottom-large{margin-bottom:48px!important}.u-margin-bottom-huge{margin-bottom:96px!important}.u-margin-bottom-none{margin-bottom:0!important}.u-margin-left{margin-left:24px!important}.u-margin-left-tiny{margin-left:6px!important}.u-margin-left-small{margin-left:12px!important}.u-margin-left-large{margin-left:48px!important}.u-margin-left-huge{margin-left:96px!important}.u-margin-left-none{margin-left:0!important}.u-margin-horizontal{margin-left:24px!important;margin-right:24px!important}.u-margin-horizontal-tiny{margin-left:6px!important;margin-right:6px!important}.u-margin-horizontal-small{margin-left:12px!important;margin-right:12px!important}.u-margin-horizontal-large{margin-left:48px!important;margin-right:48px!important}.u-margin-horizontal-huge{margin-left:96px!important;margin-right:96px!important}.u-margin-horizontal-none{margin-left:0!important;margin-right:0!important}.u-margin-vertical{margin-bottom:24px!important;margin-top:24px!important}.u-margin-vertical-tiny{margin-bottom:6px!important;margin-top:6px!important}.u-margin-vertical-small{margin-bottom:12px!important;margin-top:12px!important}.u-margin-vertical-large{margin-bottom:48px!important;margin-top:48px!important}.u-margin-vertical-huge{margin-bottom:96px!important;margin-top:96px!important}.u-margin-vertical-none{margin-bottom:0!important;margin-top:0!important}
@@ -1,127 +0,0 @@
1
- ---
2
- regenerate: true
3
- ---
4
-
5
- {% capture cache %}
6
-
7
- {% comment %}
8
- # -----------------------------------------------------------------------------
9
- # ~/assets/themes/j1/modules/advertising/js/google/adInitializer.js
10
- # Liquid template for Google Adsense to initialze all units in a page
11
- #
12
- # Product/Info:
13
- # https://jekyll.one
14
- # Copyright (C) 2023 Juergen Adams
15
- #
16
- # J1 Theme is licensed under the MIT License.
17
- # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
18
- # -----------------------------------------------------------------------------
19
- # Test data:
20
- # {{ liquid_var | debug }}
21
- # -----------------------------------------------------------------------------
22
- {% endcomment %}
23
-
24
- {% comment %} Liquid procedures
25
- -------------------------------------------------------------------------------- {% endcomment %}
26
-
27
- {% comment %} Set global settings
28
- -------------------------------------------------------------------------------- {% endcomment %}
29
- {% assign environment = site.environment %}
30
- {% assign asset_path = "/assets/themes/j1" %}
31
-
32
- {% comment %} Process YML config data
33
- ================================================================================ {% endcomment %}
34
-
35
- {% comment %} Set config files
36
- -------------------------------------------------------------------------------- {% endcomment %}
37
- {% assign template_config = site.data.j1_config %}
38
- {% assign blocks = site.data.blocks %}
39
- {% assign modules = site.data.modules %}
40
-
41
- {% comment %} Set config data (settings only)
42
- -------------------------------------------------------------------------------- {% endcomment %}
43
- {% assign cookie_defaults = modules.defaults.cookies.defaults %}
44
- {% assign cookie_settings = modules.cookies.settings %}
45
-
46
- {% assign advertising_options = modules.defaults.advertising.defaults %}
47
- {% assign advertising_settings = modules.advertising.settings %}
48
-
49
- {% comment %} Set config options (settings only)
50
- -------------------------------------------------------------------------------- {% endcomment %}
51
- {% assign cookie_options = cookie_defaults | merge: cookie_settings %}
52
- {% assign advertising_options = advertising_options | merge: advertising_settings %}
53
-
54
- {% comment %} Variables
55
- -------------------------------------------------------------------------------- {% endcomment %}
56
- {% assign advertising = advertising_options.enabled %}
57
- {% assign advertising_provider = advertising_options.provider %}
58
-
59
- {% assign production = false %}
60
- {% if environment == 'prod' or environment == 'production' %}
61
- {% assign production = true %}
62
- {% endif %}
63
-
64
- /*
65
- # -----------------------------------------------------------------------------
66
- # ~/assets/themes/j1/modules/advertising/js/google/adInitializer.js
67
- # JS helper for Google Adsense to initialze all units in a page
68
- #
69
- # Product/Info:
70
- # http://jekyll.one
71
- #
72
- # Copyright (C) 2023 Juergen Adams
73
- #
74
- # J1 Theme is licensed under MIT License.
75
- # See: https://github.com/jekyll-one/J1 Theme/blob/master/LICENSE
76
- # -----------------------------------------------------------------------------
77
- */
78
-
79
- $(document).ready(function() {
80
- // [INFO ] [j1.adapter.advertising ] [ detected advertising provider: {{advertising_provider}}} ]
81
- // [INFO ] [j1.adapter.advertising ] [ advertising detected as: {{advertising}} ]
82
- {% if advertising %}
83
- var logger = log4javascript.getLogger('j1.core.advertising.google');
84
- var ads_found = document.getElementsByClassName('adsbygoogle').length;
85
- var cookie_names = j1.getCookieNames();
86
- var user_consent = j1.readCookie(cookie_names.user_consent);
87
- var providerID = '{{advertising_options.google.publisherID}}';
88
- var validProviderID = (providerID.includes('your')) ? false : true;
89
- var advertisingProvider = 'Google Adsense';
90
-
91
- var dependencies_met_page_ready = setInterval (function (options) {
92
- if (j1.getState() === 'finished') {
93
-
94
- if (!validProviderID) {
95
- logger.warn('\n' + 'disabled provider: ' + advertisingProvider);
96
- clearInterval(dependencies_met_page_ready);
97
- return false;
98
- }
99
-
100
- if (user_consent.personalization) {
101
- if (ads_found) {
102
- logger.info('\n' + 'initialize all ads in page: #' + ads_found);
103
- [].forEach.call(document.querySelectorAll('.adsbygoogle'), function() {
104
- (adsbygoogle = window.adsbygoogle || []).push({});
105
- });
106
- } else {
107
- logger.warn('\n' + 'no ads found in page');
108
- }
109
- } else {
110
- logger.warn('\n' + 'initializing ads skipped');
111
- logger.warn('\n' + 'consent on cookies disabled for personalization');
112
- }
113
- clearInterval(dependencies_met_page_ready);
114
- }
115
- }, 25);
116
- {% else %}
117
- // [WARN ] [j1.core.advertising ] [ no init code placed ]
118
- {% endif %}
119
- });
120
-
121
- {% endcapture %}
122
- {% if production %}
123
- {{ cache | minifyJS }}
124
- {% else %}
125
- {{ cache | strip_empty_lines }}
126
- {% endif %}
127
- {% assign cache = nil %}
@@ -1,460 +0,0 @@
1
- /*
2
- # -----------------------------------------------------------------------------
3
- # ~/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js
4
- # J1 core module for deeplAPI
5
- #
6
- # Product/Info:
7
- # https://jekyll.one
8
- #
9
- # Copyright (C) 2023 Juergen Adams
10
- #
11
- # J1 Theme is licensed under the MIT License.
12
- # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
13
- # -----------------------------------------------------------------------------
14
- # NOTE: Based on https://github.com/jquery-boilerplate/jquery-boilerplate
15
- # See: https://www.dotnetcurry.com/jquery/1069/authoring-jquery-plugins
16
- # -----------------------------------------------------------------------------
17
- */
18
-
19
- // the semi-colon before function invocation is a SAFETY method against
20
- // concatenated scripts and/or other plugins which may NOT be closed
21
- // properly.
22
- //
23
- ;(function($, window, document, undefined) {
24
-
25
- 'use strict';
26
-
27
- // Create the defaults
28
- var pluginName = 'deeplAPI',
29
- defaults = {
30
- api: 'free', // free (default) | pro
31
- auth_key: '', // API authorization key
32
- source_lang: 'auto', // autodetection (default: auto)|supported language. Specifies the language for the input text.
33
- target_lang: 'DE', // language to be tranlasted in.
34
- max_chars: false, // false (unlimited) or number. Number of chars from the source text passed for translation.
35
- split_sentences: '1', // enabled (1, default)|disabled (0)|nonewlines. Sets the translation engine to first split the input text into sentences.
36
- preserve_formatting: '0', // disabled (0, default)|enabled (1). Sets the translation engine to respect the original formatting.
37
- formality: 'default', // default|more|less. Sets the translated text should lean towards formal or informal language.
38
- tag_handling: false, // false (value=0)|xml. Sets which kind of tags should be handled. If set, API is able to process structured XML content.
39
- outline_detection: true, // false (value=0) or true (NO value passed). Controls the automatic mechanism on XML tags for splitting. If disabled, all splitting_tags are to be specified.
40
- non_splitting_tags: false, // false or comma-separated list of XML tags. Disable automated splitting on the tags specified.
41
- splitting_tags: false, // false or comma-separated list of XML tags which always cause splitting.
42
- ignore_tags: false, // false or comma-separated list of XML tags that indicate text NOT to be translated.
43
- onInit: function (){}, // callback after plugin has initialized.
44
- onBeforeTranslation: function (){}, // callback before translation started.
45
- onAfterTranslation: function (){} // callback after translation finished.
46
- };
47
-
48
- // -------------------------------------------------------------------------
49
- // plugin constructor
50
- // create the jquery plugin
51
- // -------------------------------------------------------------------------
52
- function Plugin (element, options) {
53
- this.element = element;
54
- this.settings = $.extend( {}, defaults, options);
55
- this.settings.elementID = '#' + this.element.id;
56
- this.xhr = new XMLHttpRequest();
57
-
58
- // call the plugin initializer
59
- this.init(this.settings);
60
- }
61
-
62
- // Avoid plugin prototype conflicts
63
- $.extend(Plugin.prototype, {
64
- // -----------------------------------------------------------------------
65
- // init()
66
- // initialize|run the translation
67
- // -----------------------------------------------------------------------
68
- init: function(options) {
69
- var _this = this;
70
- var logger = log4javascript.getLogger('deeplAPI.init');
71
- var data_url = '/assets/data/private.json';
72
- var settings = options;
73
- var auth_key;
74
- var encodedString;
75
- var encryptedString;
76
- var jsonObject;
77
-
78
- logger.info('\n' + 'initializing plugin: started');
79
-
80
- // loading private data (auth key)
81
- $.ajax({
82
- url: data_url,
83
- dataType: 'text',
84
- success: function (data) {
85
- encodedString = atob(data);
86
- encryptedString = _this.decryptData(data, '8c841fc2e3aa2bd5', '0000000000000000' );
87
- jsonObject = JSON.parse(encryptedString);
88
- auth_key = jsonObject.translators.deepl.auth_key;
89
- },
90
- error: function (jqXHR, textStatus, errorThrown) {
91
- logger.error('\n' + 'failed to retrieve JSON data from: ' + data_url);
92
- }
93
- });
94
-
95
- // run the translation (if private data loaded)
96
- var dependencies_met_page_ready = setInterval (function () {
97
- if (typeof auth_key !== 'undefined' ) {
98
- settings.auth_key = auth_key;
99
- _this.translate(settings);
100
- logger.info('\n' + 'translation: in progress');
101
- clearInterval(dependencies_met_page_ready);
102
- }
103
- }, 25);
104
- },
105
-
106
- encryptData: function (message = '', key = '') {
107
- var message = CryptoJS.AES.encrypt(message, key);
108
-
109
- return message.toString();
110
- },
111
-
112
- decryptData: function (message = '', key = '', iv = '') {
113
- // var test_key_32 = "2e35f242a46d67eeb74aabc37d5e5d05";
114
- // var data = CryptoJS.AES.encrypt("Message", test_key_32); // Encryption Part
115
- // var decrypted = CryptoJS.AES.decrypt(data, test_key_32).toString(CryptoJS.enc.Utf8);
116
-
117
- // 1. Separate ciphertext and salt
118
- var encryptedWA = CryptoJS.enc.Base64.parse(message);
119
- var prefixWA = CryptoJS.lib.WordArray.create(encryptedWA.words.slice(0, 8/4)); // Salted__ prefix
120
- // var saltWA = CryptoJS.lib.WordArray.create(encryptedWA.words.slice(8/4, 16/4)); // 8 bytes salt: 0x0123456789ABCDEF
121
- var ciphertextWA = CryptoJS.lib.WordArray.create(encryptedWA.words.slice(16/4, encryptedWA.words.length)); // ciphertext
122
-
123
- // 2. Determine key and IV using PBKDF2
124
- // var password = 'mypassword'
125
- // var keyIvWA = CryptoJS.PBKDF2(
126
- // password,
127
- // saltWA,
128
- // {
129
- // keySize: (32+16)/4, // key and IV
130
- // iterations: 10000,
131
- // hasher: CryptoJS.algo.SHA256
132
- // }
133
- // );
134
- // var keyWA = CryptoJS.lib.WordArray.create(keyIvWA.words.slice(0, 32/4));
135
- // var ivWA = CryptoJS.lib.WordArray.create(keyIvWA.words.slice(32/4, (32+16)/4));
136
-
137
- // 3. Decrypt
138
- var decryptedWA = CryptoJS.AES.decrypt(
139
- {ciphertext: ciphertextWA},
140
- key,
141
- {iv: iv}
142
- );
143
- var decrypted = decryptedWA.toString(CryptoJS.enc.Utf8)
144
- return decrypted;
145
- },
146
-
147
- // -----------------------------------------------------------------------
148
- // prepareXHR
149
- // Prepare a XHR request according to DeepL API specification
150
- // for the required HTTP header settings
151
- // See: https://www.deepl.com/de/docs-api/simulator/
152
- // -----------------------------------------------------------------------
153
- // NOTE: "User-Agent" NOT used as the use is qualified UNSECURE
154
- // -----------------------------------------------------------------------
155
- prepareXHR: function (settings) {
156
- if (settings.api === 'free') {
157
- this.xhr.open("POST", "https://api-free.deepl.com/v2/translate", true);
158
- } else if (settings.api === 'pro') {
159
- this.xhr.open("POST", "https://api.deepl.com/v2/translate", true);
160
- } else {
161
- this.xhr.open("POST", "https://api-free.deepl.com/v2/translate", true);
162
- }
163
- // Set required header parameters
164
- this.xhr.setRequestHeader("Accept", "*/*");
165
- this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
166
- },
167
-
168
- // -----------------------------------------------------------------------
169
- // prepareText
170
- // Prepare text function used to parse, or arrange text, designed as
171
- // a module. Currently it splits all text whenever a newline ("\n")
172
- // is met, so that it preserves the original layout of the text, which
173
- // would have otherwise been lost because of the way DeepL accepts
174
- // multiple sentences.
175
- // -----------------------------------------------------------------------
176
- prepareText: function (source_text) {
177
- return source_text.split("\n");
178
- },
179
-
180
- // -----------------------------------------------------------------------
181
- // translate
182
- // Translate text function which uses all the other modules, in order to
183
- // create a request, which is sent to the DeepL API to translate, and
184
- // then display the result, designed as a module.
185
- // -----------------------------------------------------------------------
186
- translate: function (settings) {
187
- const logger = log4javascript.getLogger('deeplAPI.translate');
188
- const READYSTATE_DONE = 4;
189
- const STATUS_OK = 200;
190
- const SUPPORTED_LANG = ['BG', 'CS', 'DA', 'DE', 'EL', 'EN-GB', 'EN-US', 'EN', 'ES', 'ET', 'FI', 'FR', 'HU', 'IT', 'JA', 'LT', 'LV', 'NL', 'PL', 'PT-PT', 'PT-BR', 'PT', 'RO', 'RU', 'SK', 'SL', 'SV', 'ZH'];
191
- const ALLOWED_FORMALITY_LANG = ['DE', 'FR', 'IT', 'ES', 'NL', 'PL', 'PT', 'PT-BR', 'RU'];
192
- const ALLOWED_TAG_HANDLING = ['xml'];
193
- const TARGET_ELEMENT = settings.targetElement;
194
- const TARGET_ELEMENT_EXISTS = $(TARGET_ELEMENT).length;
195
- const ERROR_TEXT = 'Translation failed.' + '\n' + 'Reason: ';
196
- const WARNING_TEXT = 'Translation skipped.' + '\n' + 'Reason: ';
197
-
198
- var BASE_TARGET_ELEMENT;
199
- var ELEMENT_TYPE;
200
- var SOURCE_TEXT_FOUND;
201
-
202
- var API_RESPONSE = {};
203
- API_RESPONSE['400'] = 'Bad request. Please check error message and your parameters.';
204
- API_RESPONSE['401'] = 'Authorization failed. Please supply a valid DeepL-Auth-Key.';
205
- API_RESPONSE['403'] = 'Forbidden. The access to the requested resource is denied, because of insufficient access rights.';
206
- API_RESPONSE['404'] = 'The requested resource could not be found.';
207
- API_RESPONSE['413'] = 'The request size exceeds the limit.';
208
- API_RESPONSE['415'] = 'The requested entries format specified in the Accept header is not supported.';
209
- API_RESPONSE['429'] = 'Too many requests. Please wait and resend your request.';
210
- API_RESPONSE['456'] = 'Quota exceeded. The maximum amount of glossaries has been reached.';
211
- API_RESPONSE['500'] = 'Internal server error';
212
- API_RESPONSE['503'] = 'Resource currently unavailable. Try again later.';
213
- API_RESPONSE['529'] = 'Too many requests. Please wait and resend your request.';
214
-
215
- var reason_text;
216
- var request = '';
217
- var element = '';
218
- var source_text = '';
219
- var source_text_lines = '';
220
- var source_lang;
221
- var target_lang;
222
-
223
- // check if passed HTML element or ID exists
224
- if (TARGET_ELEMENT_EXISTS) {
225
- BASE_TARGET_ELEMENT = (TARGET_ELEMENT.includes('.')||TARGET_ELEMENT.includes('#')) ? TARGET_ELEMENT.substring(1) : TARGET_ELEMENT;
226
- ELEMENT_TYPE = $(TARGET_ELEMENT).get(0).nodeName;
227
-
228
- // Read the text to be translated from the given HTML element
229
- if (ELEMENT_TYPE === 'TEXTAREA') {
230
- source_text = this.element.value;
231
- } else if (ELEMENT_TYPE === 'P') {
232
- element = this.element;
233
- source_text = $(TARGET_ELEMENT).text();
234
- }
235
- SOURCE_TEXT_FOUND = source_text.length;
236
- } else {
237
- logger.error('\n' + 'target element does not exists: ' + TARGET_ELEMENT);
238
- return false;
239
- }
240
-
241
- // limit the source text if required
242
- if (settings.max_char && source_text.length > settings.max_char ) {
243
- var source_text_limited = source_text.substring(0, settings.max_char -3);
244
- source_text = source_text_limited + ' ...';
245
- logger.info('\n' + 'limit for source text ' + '(max: ' + settings.max_char + ')' + ' reached: ' + source_text.length);
246
- }
247
- source_text_lines = this.prepareText(source_text);
248
-
249
- // prepare the XHR request for the API (free/pro) requested
250
- this.prepareXHR(settings);
251
-
252
- // Makes a request with every line, as a new text to translate
253
- var source_text_request = "";
254
- for(var i = 0; i < source_text_lines.length; i++) {
255
- source_text_request += "&text=" + source_text_lines[i];
256
- }
257
-
258
- this.xhr.onload = function () {
259
- if (this.readyState === READYSTATE_DONE) {
260
- if (this.status === STATUS_OK) {
261
- // JSON parse the response
262
- var result = JSON.parse(this.responseText);
263
-
264
- // recreate the response as one text to keep its original layout
265
- var translated_text = "";
266
- for(var i = 0; i < result.translations.length; i++) {
267
- translated_text += result.translations[i].text;
268
- translated_text += "\n";
269
- }
270
- logger.info('\n' + 'translation: finished');
271
-
272
- // update the HTM element (content) by the tranlation
273
- if (ELEMENT_TYPE === 'TEXTAREA') {
274
- $(TARGET_ELEMENT).val(translated_text);
275
- } else if (ELEMENT_TYPE === 'P') {
276
- $(TARGET_ELEMENT).text(translated_text);
277
- }
278
- } else {
279
- logger.error('\n' + 'API returned ' + this.status + ': ' + API_RESPONSE[this.status]);
280
- }
281
- }
282
- };
283
-
284
- // ---------------------------------------------------------------------
285
- // preflight (validity check) on given parameters
286
- // ---------------------------------------------------------------------
287
-
288
- // Check for SUPPORTED language by option source_lang|target_lang
289
- source_lang = this.settings.source_lang;
290
- target_lang = this.settings.target_lang;
291
-
292
- if (this.settings.source_lang !== 'auto') {
293
- this.settings.source_lang = (SUPPORTED_LANG.indexOf(this.settings.source_lang) > -1) ? this.settings.source_lang : false;
294
- }
295
- this.settings.target_lang = (SUPPORTED_LANG.indexOf(this.settings.target_lang) > -1) ? this.settings.target_lang : false;
296
-
297
- // stop processing if invalid language or NO AUTH key passed
298
- if (!this.settings.auth_key || !this.settings.source_lang || !this.settings.target_lang) {
299
- if (!this.settings.auth_key) {
300
- reason_text = 'NO AUTH key passed.';
301
- logger.error('\n' + 'invalid option found. ' + reason_text);
302
- }
303
- if (!this.settings.source_lang) {
304
- reason_text = 'WRONG source language passed: ' + source_lang;
305
- logger.error('\n' + 'invalid option found. ' + reason_text);
306
- }
307
- if (!this.settings.target_lang) {
308
- reason_text = 'WRONG target language passed: ' + target_lang;
309
- logger.error('\n' + 'invalid option found. ' + reason_text);
310
- }
311
-
312
- // update the HTML element (content) by an error text
313
- if (ELEMENT_TYPE === 'TEXTAREA') {
314
- $(TARGET_ELEMENT).val(ERROR_TEXT + reason_text);
315
- } else if (ELEMENT_TYPE === 'P') {
316
- $(TARGET_ELEMENT).text(ERROR_TEXT + reason_text);
317
- }
318
- return false;
319
- }
320
-
321
- if(!SOURCE_TEXT_FOUND) {
322
- reason_text = 'NO text found for translation';
323
- // update the HTML element (content) by an error text
324
- if (ELEMENT_TYPE === 'TEXTAREA') {
325
- $(TARGET_ELEMENT).val(WARNING_TEXT + reason_text);
326
- } else if (ELEMENT_TYPE === 'P') {
327
- $(TARGET_ELEMENT).text(WARNING_TEXT + reason_text);
328
- }
329
- logger.warn('\n' + 'no text found for translation');
330
- return false;
331
- }
332
-
333
- // Check for VALID language supported by option 'formality'
334
- if (this.settings.formality !== 'default' ) {
335
- if (!(ALLOWED_FORMALITY_LANG.indexOf(this.settings.target_lang) > -1)) {
336
- logger.warn('\n' + 'wrong language found for formality setting: ' + this.settings.target_lang);
337
- }
338
- this.settings.formality = (ALLOWED_FORMALITY_LANG.indexOf(this.settings.target_lang) > -1) ? this.settings.formality : 'default';
339
- }
340
-
341
- // Check for VALID tag handling and options
342
- if (this.settings.tag_handling) {
343
- var tag_handling = this.settings.tag_handling;
344
- // check for VALID method
345
- this.settings.tag_handling = (ALLOWED_TAG_HANDLING.indexOf(this.settings.tag_handling) > -1) ? this.settings.tag_handling : false;
346
- if (this.settings.tag_handling) {
347
- this.settings.non_splitting_tags = this.settings.non_splitting_tags ? encodeURIComponent(this.settings.non_splitting_tags) : false;
348
- this.settings.splitting_tags = this.settings.splitting_tags ? encodeURIComponent(this.settings.splitting_tags) : false;
349
- this.settings.ignore_tags = this.settings.ignore_tags ? encodeURIComponent(this.settings.ignore_tags) : false;
350
- } else {
351
- logger.error('\n' + 'invalid option found for tag handling : ' + tag_handling);
352
- logger.warn('\n' + 'disable option: ' + 'tag_handling');
353
- // reset to defaults if WRONG method detected
354
- if (this.settings.non_splitting_tags) {
355
- logger.warn('\n' + 'disable option: ' + this.settings.non_splitting_tags);
356
- this.settings.non_splitting_tags = false;
357
- }
358
- if (this.settings.splitting_tags) {
359
- logger.warn('\n' + 'disable option : ' + this.settings.splitting_tags);
360
- this.settings.splitting_tags = false;
361
- }
362
- if (this.settings.ignore_tags) {
363
- logger.warn('\n' + 'disable option: ' + this.settings.ignore_tags);
364
- this.settings.ignore_tags = false;
365
- }
366
- }
367
- } else {
368
- // reset tags to their defaults if NO tag_handling is enabled but settings passed
369
- if (this.settings.non_splitting_tags) {
370
- logger.warn('\n' + 'invalid option found: ' + this.settings.non_splitting_tags);
371
- this.settings.non_splitting_tags = false;
372
- }
373
- if (this.settings.splitting_tags) {
374
- logger.warn('\n' + 'invalid option found: ' + this.settings.splitting_tags);
375
- this.settings.splitting_tags = false;
376
- }
377
- if (this.settings.ignore_tags) {
378
- logger.warn('\n' + 'invalid option found: ' + this.settings.ignore_tags);
379
- this.settings.ignore_tags = false;
380
- }
381
- }
382
-
383
- // ---------------------------------------------------------------------
384
- // construct the API request body
385
- // ---------------------------------------------------------------------
386
- request = "auth_key=" + this.settings.auth_key;
387
- request += (this.settings.source_lang !== 'auto' ) ? "&source_lang=" + this.settings.source_lang : '';
388
- request += "&target_lang=" + this.settings.target_lang;
389
- request += (this.settings.formality !== 'default' ) ? "&formality=" + this.settings.formality : '';
390
- request += (this.settings.split_sentences) ? "&split_sentences=" + this.settings.formality : '';
391
- request += (this.settings.tag_handling) ? "&tag_handling=" + this.settings.tag_handling : "&tag_handling=0";
392
- request += (this.settings.tag_handling && this.settings.non_splitting_tags) ? "&non_splitting_tags=" + this.settings.non_splitting_tags : '';
393
- request += (this.settings.tag_handling && this.settings.splitting_tags) ? "&splitting_tags=" + this.settings.splitting_tags : '';
394
- request += (this.settings.tag_handling && this.settings.ignore_tags) ? "&ignore_tags=" + this.settings.ignore_tags : '';
395
- request += source_text_request;
396
-
397
- // Send the constructed request to the API for translation
398
- this.xhr.send(request);
399
- } // END translate
400
-
401
- }); // END prototype
402
-
403
- // ---------------------------------------------------------------------------
404
- // plugin wrapper
405
- // A really lightweight plugin wrapper around the constructor,
406
- // wrapper around the constructor to prevent multiple instantiations
407
- // preventing against multiple instantiations and allowing any
408
- // public function (ie. a function whose name doesn't start
409
- // with an underscore) to be called via the jQuery plugin,
410
- // e.g. $(element).defaultPluginName('functionName', arg1, arg2)
411
- // ---------------------------------------------------------------------------
412
- $.fn[pluginName] = function ( options ) {
413
- var args = arguments;
414
-
415
- // Is the first parameter an object (options), or was omitted,
416
- // instantiate a new instance of the plugin.
417
- //
418
- if (options === undefined || typeof options === 'object') {
419
- return this.each(function () {
420
- // Only allow the plugin to be instantiated once,
421
- // so we check that the element has no plugin instantiation yet
422
- if (!$.data(this, 'plugin_' + pluginName)) {
423
- // if it has no instance, create a new one, pass options to the
424
- // plugin constructor, and store the plugin instance in the
425
- // elements jQuery data object.
426
- $.data(this, 'plugin_' + pluginName, new Plugin( this, options ));
427
- }
428
- });
429
- } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {
430
- // If the first parameter is a string and it doesn't start
431
- // with an underscore or "contains" the `init`-function,
432
- // treat this as a call to a public method.
433
-
434
- // Cache the method call to make it possible to return a value
435
- var returns;
436
-
437
- this.each(function () {
438
- var instance = $.data(this, 'plugin_' + pluginName);
439
-
440
- // Tests that there's already a plugin-instance
441
- // and checks that the requested public method exists
442
- if (instance instanceof Plugin && typeof instance[options] === 'function') {
443
- // Call the method of our plugin instance,
444
- // and pass it the supplied arguments.
445
- returns = instance[options].apply( instance, Array.prototype.slice.call( args, 1 ) );
446
- }
447
-
448
- // Allow instances to be destroyed via the 'destroy' method
449
- if (options === 'destroy') {
450
- $.data(this, 'plugin_' + pluginName, null);
451
- }
452
- });
453
-
454
- // If the earlier cached method gives a value back return the value,
455
- // otherwise return "this" to preserve chainability.
456
- return returns !== undefined ? returns : this;
457
- }
458
- }; // END plugin wrapper
459
-
460
- })(jQuery, window, document);