j1-template 2023.10.2 → 2024.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (629) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/_includes/themes/j1/layouts/content_generator_collection.html +1 -1
  4. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +1 -1
  5. data/_includes/themes/j1/layouts/content_generator_page.html +1 -1
  6. data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
  7. data/_includes/themes/j1/layouts/content_generator_raw.html +1 -1
  8. data/_includes/themes/j1/layouts/layout_metadata_generator.html +1 -1
  9. data/_includes/themes/j1/layouts/layout_module_generator.html +1 -1
  10. data/_includes/themes/j1/layouts/layout_resource_generator.html +1 -1
  11. data/_includes/themes/j1/modules/attics/generator.html +1 -1
  12. data/_includes/themes/j1/modules/navigator/generator.html +8 -9
  13. data/_includes/themes/j1/modules/searcher/generator.html +7 -8
  14. data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +1 -2
  15. data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
  16. data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
  17. data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
  18. data/_includes/themes/j1/procedures/blocks/footer/boxes/legal_statements.proc +1 -1
  19. data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
  20. data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
  21. data/_includes/themes/j1/procedures/blocks/footer/boxes/social_media_icons.proc +1 -1
  22. data/_includes/themes/j1/procedures/blocks/get_wave.proc +1 -2
  23. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +6 -7
  24. data/_includes/themes/j1/procedures/collections/pager.proc +1 -1
  25. data/_includes/themes/j1/procedures/global/attributes_loader.proc +1 -1
  26. data/_includes/themes/j1/procedures/global/collect_frontmatter_options.proc +8 -9
  27. data/_includes/themes/j1/procedures/global/collect_page_options.proc +8 -13
  28. data/_includes/themes/j1/procedures/global/create_bs_button.proc +7 -7
  29. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +7 -8
  30. data/_includes/themes/j1/procedures/global/date-german.proc +6 -7
  31. data/_includes/themes/j1/procedures/global/get_category.proc +6 -7
  32. data/_includes/themes/j1/procedures/global/get_category_item.proc +6 -7
  33. data/_includes/themes/j1/procedures/global/get_documents_dir.proc +7 -7
  34. data/_includes/themes/j1/procedures/global/get_page_path.proc +6 -8
  35. data/_includes/themes/j1/procedures/global/get_page_url.proc +6 -7
  36. data/_includes/themes/j1/procedures/global/select_color.proc +6 -7
  37. data/_includes/themes/j1/procedures/global/select_font_size.proc +6 -7
  38. data/_includes/themes/j1/procedures/global/select_icon_size.proc +6 -7
  39. data/_includes/themes/j1/procedures/global/select_location.proc +7 -8
  40. data/_includes/themes/j1/procedures/global/set_base_vars_folders.proc +1 -1
  41. data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +7 -7
  42. data/_includes/themes/j1/procedures/global/set_image_block.proc +6 -6
  43. data/_includes/themes/j1/procedures/global/setup.proc +1 -1
  44. data/_includes/themes/j1/procedures/layouts/content_writer.proc +1 -1
  45. data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
  46. data/_includes/themes/j1/procedures/layouts/module_writer.proc +1 -1
  47. data/_includes/themes/j1/procedures/layouts/resource_writer.proc +1 -1
  48. data/_includes/themes/j1/procedures/posts/collate_calendar.proc +1 -1
  49. data/_includes/themes/j1/procedures/posts/collate_list.proc +1 -1
  50. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +1 -1
  51. data/_includes/themes/j1/procedures/posts/create_ad_block.proc +1 -1
  52. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  53. data/_includes/themes/j1/procedures/posts/pager.proc +1 -1
  54. data/_layouts/autopage_category.html +1 -2
  55. data/_layouts/autopage_collection.html +7 -8
  56. data/_layouts/autopage_collections_tags.html +7 -8
  57. data/_layouts/autopage_tags.html +7 -8
  58. data/_layouts/collection.html +7 -8
  59. data/_layouts/compress.html +11 -12
  60. data/_layouts/default.html +1 -2
  61. data/_layouts/home.html +8 -9
  62. data/_layouts/news_panel_posts.html +7 -8
  63. data/_layouts/page.html +7 -8
  64. data/_layouts/post.html +7 -8
  65. data/_layouts/raw.html +7 -8
  66. data/apps/public/cc/cc.yml +36 -35
  67. data/assets/data/authclient.html +1 -1
  68. data/assets/data/banner.html +1 -1
  69. data/assets/data/carousel.json +1 -1
  70. data/assets/data/cookieconsent.html +16 -107
  71. data/assets/data/docsearch.html +155 -0
  72. data/assets/data/fab.html +2 -2
  73. data/assets/data/footer.html +1 -1
  74. data/assets/data/galeries.html +11 -6
  75. data/assets/data/gallery_customizer.html +1 -1
  76. data/assets/data/iframes.html +96 -0
  77. data/assets/data/iso-639-language-codes.json +1 -1
  78. data/assets/data/j1_config.json +1 -1
  79. data/assets/data/masonry.html +1 -1
  80. data/assets/data/masterslider.html +1 -1
  81. data/assets/data/mdi_icons.json +1 -1
  82. data/assets/data/mdil_icons.json +1 -1
  83. data/assets/data/menu.html +1 -1
  84. data/assets/data/mmenu.html +1 -1
  85. data/assets/data/mmenu_sidebar.html +1 -1
  86. data/assets/data/mmenu_toc.html +1 -1
  87. data/assets/data/panel.html +1 -1
  88. data/assets/data/particles.yml +1 -1
  89. data/assets/data/private.json +1 -1
  90. data/assets/data/quicklinks.html +11 -1
  91. data/assets/data/rtext_resizer.html +1 -1
  92. data/assets/data/slick.html +1 -1
  93. data/assets/data/speak2me.html +5 -4
  94. data/assets/data/themes.bootswatch.json +1 -1
  95. data/assets/data/themes.json +1 -1
  96. data/assets/data/translator.html +28 -148
  97. data/assets/error_pages/HTTP204.html +1 -1
  98. data/assets/error_pages/HTTP400.html +1 -1
  99. data/assets/error_pages/HTTP401.html +1 -1
  100. data/assets/error_pages/HTTP403.html +1 -1
  101. data/assets/error_pages/HTTP404.html +1 -1
  102. data/assets/error_pages/HTTP444.html +1 -1
  103. data/assets/error_pages/HTTP445.html +1 -1
  104. data/assets/error_pages/HTTP446.html +1 -1
  105. data/assets/error_pages/HTTP447.html +1 -1
  106. data/assets/error_pages/HTTP448.html +1 -1
  107. data/assets/error_pages/HTTP500.html +1 -1
  108. data/assets/error_pages/HTTP501.html +1 -1
  109. data/assets/error_pages/HTTP502.html +1 -1
  110. data/assets/error_pages/HTTP503.html +1 -1
  111. data/assets/themes/j1/adapter/js/advertising.js +2 -2
  112. data/assets/themes/j1/adapter/js/algolia.js +2 -2
  113. data/assets/themes/j1/adapter/js/analytics.js +2 -2
  114. data/assets/themes/j1/adapter/js/asciidoctor.js +2 -2
  115. data/assets/themes/j1/adapter/js/attic.js +2 -2
  116. data/assets/themes/j1/adapter/js/bmd.js +2 -2
  117. data/assets/themes/j1/adapter/js/carousel.js +2 -2
  118. data/assets/themes/j1/adapter/js/chatbot.js +466 -0
  119. data/assets/themes/j1/adapter/js/clipboard.js +3 -3
  120. data/assets/themes/j1/adapter/js/comments.js +2 -2
  121. data/assets/themes/j1/adapter/js/cookieConsent.js +2 -2
  122. data/assets/themes/j1/adapter/js/customFunctions.js +2 -2
  123. data/assets/themes/j1/adapter/js/customModule.js +2 -2
  124. data/assets/themes/j1/adapter/js/docsearch.js +270 -0
  125. data/assets/themes/j1/adapter/js/dropdowns.js +2 -2
  126. data/assets/themes/j1/adapter/js/fab.js +5 -87
  127. data/assets/themes/j1/adapter/js/gallery.js +93 -8
  128. data/assets/themes/j1/adapter/js/iconPicker.js +2 -2
  129. data/assets/themes/j1/adapter/js/iframer.js +350 -0
  130. data/assets/themes/j1/adapter/js/j1.js +231 -111
  131. data/assets/themes/j1/adapter/js/lazyLoader.js +2 -2
  132. data/assets/themes/j1/adapter/js/lightbox.js +2 -2
  133. data/assets/themes/j1/adapter/js/logger.js +2 -2
  134. data/assets/themes/j1/adapter/js/lunr.js +2 -2
  135. data/assets/themes/j1/adapter/js/masonry.js +2 -2
  136. data/assets/themes/j1/adapter/js/masterslider.js +2 -2
  137. data/assets/themes/j1/adapter/js/mmenu.js +3 -3
  138. data/assets/themes/j1/adapter/js/navigator.js +6 -2
  139. data/assets/themes/j1/adapter/js/particles.js +2 -2
  140. data/assets/themes/j1/adapter/js/rangeSlider.js +2 -2
  141. data/assets/themes/j1/adapter/js/rouge.js +3 -3
  142. data/assets/themes/j1/adapter/js/rtable.js +2 -2
  143. data/assets/themes/j1/adapter/js/rtextResizer.js +2 -2
  144. data/assets/themes/j1/adapter/js/scroller.js +2 -2
  145. data/assets/themes/j1/adapter/js/slick.js +2 -2
  146. data/assets/themes/j1/adapter/js/speak2me.js +4 -4
  147. data/assets/themes/j1/adapter/js/themeToggler.js +2 -2
  148. data/assets/themes/j1/adapter/js/themer.js +2 -2
  149. data/assets/themes/j1/adapter/js/toccer.js +2 -2
  150. data/assets/themes/j1/adapter/js/translator.js +7 -2
  151. data/assets/themes/j1/adapter/js/waves.js +2 -2
  152. data/assets/themes/j1/core/country-flags/css/theme/uno.css +1 -1
  153. data/assets/themes/j1/core/country-flags/css/theme/uno.min.css +1 -1
  154. data/assets/themes/j1/core/css/animate.css +6 -6
  155. data/assets/themes/j1/core/css/animate.min.css +1 -1
  156. data/assets/themes/j1/core/css/icon-fonts/fontawesome.css +2 -2
  157. data/assets/themes/j1/core/css/icon-fonts/iconify.css +5 -5
  158. data/assets/themes/j1/core/css/icon-fonts/mdi.css +9 -9
  159. data/assets/themes/j1/core/css/icon-fonts/mdib.css +7 -7
  160. data/assets/themes/j1/core/css/icon-fonts/mdil.css +10 -10
  161. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1 -1
  162. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +39 -39
  163. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +91 -94
  164. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  165. data/assets/themes/j1/core/css/vendor.css +14 -15
  166. data/assets/themes/j1/core/js/template.js +425 -148
  167. data/assets/themes/j1/core/js/template.min.js +9 -9
  168. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  169. data/assets/themes/j1/modules/backstretch/js/backstretch.js +1 -1
  170. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  171. data/assets/themes/j1/modules/bmd/js/bmd.js +1 -1
  172. data/assets/themes/j1/modules/bmd/js/bmd.min.js +1 -1
  173. data/assets/themes/j1/modules/carousel/css/carousel.css +1 -1
  174. data/assets/themes/j1/modules/carousel/css/carousel.min.css +1 -1
  175. data/assets/themes/j1/modules/carousel/css/carousel_transitions.css +1 -1
  176. data/assets/themes/j1/modules/carousel/css/carousel_transitions.min.css +1 -1
  177. data/assets/themes/j1/modules/carousel/css/theme/uno.css +1 -1
  178. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +1 -1
  179. data/assets/themes/j1/modules/chatbot/css/theme/uno.css +92 -0
  180. data/assets/themes/j1/modules/chatbot/css/theme/uno.min.css +16 -0
  181. data/assets/themes/j1/modules/clipboard/css/theme/uno.css +1 -1
  182. data/assets/themes/j1/modules/clipboard/css/theme/uno.min.css +1 -1
  183. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +1 -1
  184. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  185. data/assets/themes/j1/modules/dropdowns/css/theme/uno/dropdowns.css +1 -1
  186. data/assets/themes/j1/modules/dropdowns/css/theme/uno/dropdowns.min.css +1 -1
  187. data/assets/themes/j1/modules/dropdowns/js/cash.js +1 -1
  188. data/assets/themes/j1/modules/dropdowns/js/cash.min.js +1 -1
  189. data/assets/themes/j1/modules/dropdowns/js/dropdowns.js +1 -1
  190. data/assets/themes/j1/modules/dropdowns/js/dropdowns.min.js +1 -1
  191. data/assets/themes/j1/modules/fab/js/cash.js +1 -1
  192. data/assets/themes/j1/modules/fab/js/cash.min.js +1 -1
  193. data/assets/themes/j1/modules/fab/js/fab.js +1 -1
  194. data/assets/themes/j1/modules/fab/js/fab.min.js +1 -1
  195. data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.css +1 -1
  196. data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.min.css +1 -1
  197. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.js +1 -1
  198. data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.min.js +1 -1
  199. data/assets/themes/j1/modules/iframeResizer/LICENSE +1 -1
  200. data/assets/themes/j1/modules/iframeResizer/README.md +105 -0
  201. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.absolute.html +12 -11
  202. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.content.html +22 -28
  203. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.hover.html +9 -8
  204. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.nested.html +12 -12
  205. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.textarea.html +6 -8
  206. data/assets/themes/j1/modules/iframeResizer/{examples → example}/frame.tolerance.html +11 -11
  207. data/assets/themes/j1/modules/iframeResizer/{examples → example}/index.html +43 -19
  208. data/assets/themes/j1/modules/iframeResizer/{examples → example}/two.html +8 -11
  209. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.js +84 -68
  210. data/assets/themes/j1/modules/iframeResizer/js/client/iframeResizer.contentWindow.min.js +10 -8
  211. data/assets/themes/j1/modules/iframeResizer/js/resizer.js +149 -72
  212. data/assets/themes/j1/modules/iframeResizer/js/resizer.min.js +11 -7
  213. data/assets/themes/j1/modules/jquery/js/extensions/hasClass.js +1 -1
  214. data/assets/themes/j1/modules/jquery/js/extensions/hasClass.min.js +1 -1
  215. data/assets/themes/j1/modules/jquery/js/extensions/removeClass.js +1 -1
  216. data/assets/themes/j1/modules/jquery/js/extensions/removeClass.min.js +1 -1
  217. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.css +1 -1
  218. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.min.css +1 -1
  219. data/assets/themes/j1/modules/lightGallery/css/lg-transitions.css +1 -1
  220. data/assets/themes/j1/modules/lightGallery/css/lg-transitions.min.css +1 -1
  221. data/assets/themes/j1/modules/lightGallery/css/lightgallery-bundle.css +1 -1
  222. data/assets/themes/j1/modules/lightGallery/css/lightgallery-bundle.min.css +1 -1
  223. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-autoplay.css +1 -1
  224. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-comments.css +1 -1
  225. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-fullscreen.css +1 -1
  226. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-medium-zoom.css +1 -1
  227. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-pager.css +1 -1
  228. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-rotate.css +1 -1
  229. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-share.css +1 -1
  230. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-thumbnail.css +1 -1
  231. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-video.css +1 -1
  232. data/assets/themes/j1/modules/lightGallery/css/plugins/lg-zoom.css +1 -1
  233. data/assets/themes/j1/modules/lightGallery/css/themes/uno/uno.css +1 -1
  234. data/assets/themes/j1/modules/lightGallery/css/themes/uno/uno.min.css +1 -1
  235. data/assets/themes/j1/modules/lightGallery/js/lightgallery.js +1 -1
  236. data/assets/themes/j1/modules/lightGallery/js/lightgallery.min.js +1 -1
  237. data/assets/themes/j1/modules/lightGallery/js/plugins/j1/j1-video.js +1 -1
  238. data/assets/themes/j1/modules/lightGallery/js/plugins/j1/j1-video.min.js +1 -1
  239. data/assets/themes/j1/modules/lightGallery/js/plugins/j1/lg-video.1.js +1 -1
  240. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-autoplay.js +1 -1
  241. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-autoplay.min.js +1 -1
  242. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-comment.js +1 -1
  243. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-comment.min.js +1 -1
  244. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-fullscreen.js +1 -1
  245. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-fullscreen.min.js +1 -1
  246. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-hash.js +1 -1
  247. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-hash.min.js +1 -1
  248. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-medium-zoom.js +1 -1
  249. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-medium-zoom.min.js +1 -1
  250. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-pager.js +1 -1
  251. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-pager.min.js +1 -1
  252. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-rotate.js +1 -1
  253. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-rotate.min.js +1 -1
  254. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-share.js +1 -1
  255. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-share.min.js +1 -1
  256. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-thumbnail.js +1 -1
  257. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-thumbnail.min.js +1 -1
  258. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.js +1 -1
  259. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-video.min.js +1 -1
  260. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.js +1 -1
  261. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-vimeo-thumbnail.min.js +1 -1
  262. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-zoom.js +1 -1
  263. data/assets/themes/j1/modules/lightGallery/js/plugins/lg-zoom.min.js +1 -1
  264. data/assets/themes/j1/modules/lightbox/css/lightbox.css +1 -1
  265. data/assets/themes/j1/modules/lightbox/css/lightbox.min.css +1 -1
  266. data/assets/themes/j1/modules/lightbox/css/theme/uno.css +1 -1
  267. data/assets/themes/j1/modules/lightbox/css/theme/uno.min.css +1 -1
  268. data/assets/themes/j1/modules/lightbox/js/lightbox.js +1 -1
  269. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +1 -1
  270. data/assets/themes/j1/modules/lunr/css/j1.css +1 -1
  271. data/assets/themes/j1/modules/lunr/css/j1.min.css +1 -1
  272. data/assets/themes/j1/modules/lunr/js/j1.js +1 -1
  273. data/assets/themes/j1/modules/lunr/js/j1.min.js +1 -1
  274. data/assets/themes/j1/modules/masterslider/css/theme/uno.css +1 -1
  275. data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +1 -1
  276. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.css +1 -1
  277. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.min.css +1 -1
  278. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +1 -1
  279. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  280. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +1 -1
  281. data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +1 -1
  282. data/assets/themes/j1/modules/msDropdown/css/flags.css +1 -1
  283. data/assets/themes/j1/modules/msDropdown/css/flags.min.css +1 -1
  284. data/assets/themes/j1/modules/msDropdown/css/msDropdown.css +1 -1
  285. data/assets/themes/j1/modules/msDropdown/css/msDropdown.min.css +1 -1
  286. data/assets/themes/j1/modules/msDropdown/css/themes/uno/msDropdown.css +1 -1
  287. data/assets/themes/j1/modules/msDropdown/css/themes/uno/msDropdown.min.css +1 -1
  288. data/assets/themes/j1/modules/msDropdown/js/msDropdown.js +1 -1
  289. data/assets/themes/j1/modules/msDropdown/js/msDropdown.min.js +1 -1
  290. data/assets/themes/j1/modules/rangeSlider/css/theme/uno/nouislider.css +1 -1
  291. data/assets/themes/j1/modules/rangeSlider/css/theme/uno/nouislider.min.css +1 -1
  292. data/assets/themes/j1/modules/rouge/css/base16/theme.css +1 -1
  293. data/assets/themes/j1/modules/rouge/css/base16/theme.min.css +1 -1
  294. data/assets/themes/j1/modules/rouge/css/base16.dark/theme.css +1 -1
  295. data/assets/themes/j1/modules/rouge/css/base16.dark/theme.min.css +1 -1
  296. data/assets/themes/j1/modules/rouge/css/base16.light/theme.css +1 -1
  297. data/assets/themes/j1/modules/rouge/css/base16.light/theme.min.css +1 -1
  298. data/assets/themes/j1/modules/rouge/css/base16.monokai/theme.css +1 -1
  299. data/assets/themes/j1/modules/rouge/css/base16.monokai/theme.min.css +1 -1
  300. data/assets/themes/j1/modules/rouge/css/base16.monokai.dark/theme.css +1 -1
  301. data/assets/themes/j1/modules/rouge/css/base16.monokai.dark/theme.min.css +1 -1
  302. data/assets/themes/j1/modules/rouge/css/base16.monokai.light/theme.css +1 -1
  303. data/assets/themes/j1/modules/rouge/css/base16.monokai.light/theme.min.css +1 -1
  304. data/assets/themes/j1/modules/rouge/css/base16.solarized/theme.css +1 -1
  305. data/assets/themes/j1/modules/rouge/css/base16.solarized/theme.min.css +1 -1
  306. data/assets/themes/j1/modules/rouge/css/base16.solarized.dark/theme.css +1 -1
  307. data/assets/themes/j1/modules/rouge/css/base16.solarized.dark/theme.min.css +1 -1
  308. data/assets/themes/j1/modules/rouge/css/base16.solarized.light/theme.css +1 -1
  309. data/assets/themes/j1/modules/rouge/css/base16.solarized.light/theme.min.css +1 -1
  310. data/assets/themes/j1/modules/rouge/css/colorful/theme.css +1 -1
  311. data/assets/themes/j1/modules/rouge/css/colorful/theme.min.css +1 -1
  312. data/assets/themes/j1/modules/rouge/css/github/theme.css +1 -1
  313. data/assets/themes/j1/modules/rouge/css/github/theme.min.css +1 -1
  314. data/assets/themes/j1/modules/rouge/css/gruvbox/theme.css +1 -1
  315. data/assets/themes/j1/modules/rouge/css/gruvbox/theme.min.css +1 -1
  316. data/assets/themes/j1/modules/rouge/css/gruvbox.dark/theme.css +1 -1
  317. data/assets/themes/j1/modules/rouge/css/gruvbox.dark/theme.min.css +1 -1
  318. data/assets/themes/j1/modules/rouge/css/gruvbox.light/theme.css +1 -1
  319. data/assets/themes/j1/modules/rouge/css/gruvbox.light/theme.min.css +1 -1
  320. data/assets/themes/j1/modules/rouge/css/igorpro/theme.css +1 -1
  321. data/assets/themes/j1/modules/rouge/css/igorpro/theme.min.css +1 -1
  322. data/assets/themes/j1/modules/rouge/css/molokai/theme.css +1 -1
  323. data/assets/themes/j1/modules/rouge/css/molokai/theme.min.css +1 -1
  324. data/assets/themes/j1/modules/rouge/css/monokai/theme.css +1 -1
  325. data/assets/themes/j1/modules/rouge/css/monokai/theme.min.css +1 -1
  326. data/assets/themes/j1/modules/rouge/css/monokai.sublime/theme.css +1 -1
  327. data/assets/themes/j1/modules/rouge/css/monokai.sublime/theme.min.css +1 -1
  328. data/assets/themes/j1/modules/rouge/css/pastie/theme.css +1 -1
  329. data/assets/themes/j1/modules/rouge/css/pastie/theme.min.css +1 -1
  330. data/assets/themes/j1/modules/rouge/css/thankful_eyes/theme.css +1 -1
  331. data/assets/themes/j1/modules/rouge/css/thankful_eyes/theme.min.css +1 -1
  332. data/assets/themes/j1/modules/rouge/css/themes.txt +1 -1
  333. data/assets/themes/j1/modules/rouge/css/tulip/theme.css +1 -1
  334. data/assets/themes/j1/modules/rouge/css/tulip/theme.min.css +1 -1
  335. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +1 -1
  336. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.min.css +1 -1
  337. data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +1 -1
  338. data/assets/themes/j1/modules/rouge/css/uno.light/theme.min.css +1 -1
  339. data/assets/themes/j1/modules/rouge/js/select.js +1 -1
  340. data/assets/themes/j1/modules/rtable/css/theme/uno/rtable.css +1 -1
  341. data/assets/themes/j1/modules/rtable/css/theme/uno/rtable.min.css +1 -1
  342. data/assets/themes/j1/modules/rtable/js/rtable.js +1 -1
  343. data/assets/themes/j1/modules/rtable/js/rtable.min.js +1 -1
  344. data/assets/themes/j1/modules/scroller/css/theme/uno.css +3 -3
  345. data/assets/themes/j1/modules/scroller/css/theme/uno.min.css +3 -3
  346. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  347. data/assets/themes/j1/modules/slick/lightbox/css/theme/uno.css +1 -1
  348. data/assets/themes/j1/modules/slick/lightbox/css/theme/uno.min.css +1 -1
  349. data/assets/themes/j1/modules/slick/slider/css/theme/uno.css +1 -1
  350. data/assets/themes/j1/modules/slick/slider/css/theme/uno.min.css +1 -1
  351. data/assets/themes/j1/modules/spinner/css/spin.css +1 -1
  352. data/assets/themes/j1/modules/spinner/css/spin.min.css +1 -1
  353. data/assets/themes/j1/modules/spinner/js/spin.js +1 -1
  354. data/assets/themes/j1/modules/spinner/js/spin.min.js +1 -1
  355. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +1 -1
  356. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  357. data/assets/themes/j1/modules/translator/css/translator.css +1 -1
  358. data/assets/themes/j1/modules/translator/css/translator.min.css +1 -1
  359. data/assets/themes/j1/modules/translator/js/translator.js +1 -1
  360. data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
  361. data/assets/themes/j1/modules/videojs/css/themes/uno.css +1 -1
  362. data/assets/themes/j1/modules/videojs/css/themes/uno.min.css +1 -1
  363. data/assets/themes/j1/modules/videojs/js/plugins/dm/api/dailymotion.min.js +1 -1
  364. data/assets/themes/j1/modules/videojs/js/plugins/dm/dailymotion.js +1 -1
  365. data/assets/themes/j1/modules/videojs/js/plugins/dm/dailymotion.min.js +1 -1
  366. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/player.min.js +1 -1
  367. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/vimeo.js +1 -1
  368. data/assets/themes/j1/modules/videojs/js/plugins/vm/api/vimeo.min.js +1 -1
  369. data/assets/themes/j1/modules/videojs/js/plugins/vm/vimeo.js +1 -1
  370. data/assets/themes/j1/modules/videojs/js/plugins/vm/vimeo.min.js +1 -1
  371. data/assets/themes/j1/modules/videojs/js/plugins/wt/wistia.js +1 -1
  372. data/assets/themes/j1/modules/videojs/js/plugins/wt/wistia.min.js +1 -1
  373. data/assets/themes/j1/modules/videojs/js/plugins/yt/api/youtube.min.js +1 -1
  374. data/assets/themes/j1/modules/videojs/js/plugins/yt/youtube.js +1 -1
  375. data/assets/themes/j1/modules/videojs/js/plugins/yt/youtube.min.js +1 -1
  376. data/lib/j1/version.rb +1 -1
  377. data/lib/j1_app/j1_auth_manager/auth_manager.rb +1 -1
  378. data/lib/j1_app/j1_auth_manager/error_pages.rb +1 -1
  379. data/lib/j1_app/j1_auth_manager/helpers_disqus.rb +1 -1
  380. data/lib/j1_app/j1_auth_manager/helpers_facebook.rb +1 -1
  381. data/lib/j1_app/j1_auth_manager/helpers_github.rb +1 -1
  382. data/lib/j1_app/j1_auth_manager/helpers_patreon.rb +1 -1
  383. data/lib/j1_app/j1_auth_manager/helpers_twitter.rb +1 -1
  384. data/lib/j1_app/j1_auth_manager/warden_omniauth.rb +1 -1
  385. data/lib/j1_app/omniauth/strategies/disqus.rb +1 -1
  386. data/lib/j1_app/omniauth/strategies/facebook.rb +1 -1
  387. data/lib/j1_app/omniauth/strategies/github.rb +1 -1
  388. data/lib/j1_app/omniauth/strategies/patreon.rb +1 -1
  389. data/lib/j1_app/omniauth/strategies/twitter.rb +1 -1
  390. data/lib/starter_web/Gemfile +3 -3
  391. data/lib/starter_web/README.md +5 -5
  392. data/lib/starter_web/_config.yml +3 -3
  393. data/lib/starter_web/_data/_defaults/categories.yml +1 -1
  394. data/lib/starter_web/_data/_defaults/colors.yml +1 -1
  395. data/lib/starter_web/_data/_defaults/font_sizes.yml +1 -1
  396. data/lib/starter_web/_data/_defaults/j1_config.yml +1 -1
  397. data/lib/starter_web/_data/_defaults/resources.yml +1 -1
  398. data/lib/starter_web/_data/apps/defaults/justifiedGalleryCustomizer.yml +1 -1
  399. data/lib/starter_web/_data/apps/justifiedGalleryCustomizer.yml +1 -1
  400. data/lib/starter_web/_data/asciidoc2pdf/themes/j1-theme.yml +1 -1
  401. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  402. data/lib/starter_web/_data/blocks/defaults/banner.yml +1 -1
  403. data/lib/starter_web/_data/blocks/defaults/footer.yml +1 -1
  404. data/lib/starter_web/_data/blocks/defaults/panel.yml +1 -1
  405. data/lib/starter_web/_data/blocks/footer.yml +2 -2
  406. data/lib/starter_web/_data/blocks/panel.yml +1 -1
  407. data/lib/starter_web/_data/categories.yml +2 -3
  408. data/lib/starter_web/_data/colors.yml +2 -3
  409. data/lib/starter_web/_data/font_sizes.yml +2 -3
  410. data/lib/starter_web/_data/j1_config.yml +1 -1
  411. data/lib/starter_web/_data/layouts/collection.yml +1 -1
  412. data/lib/starter_web/_data/layouts/default.yml +1 -1
  413. data/lib/starter_web/_data/layouts/home.yml +1 -1
  414. data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -1
  415. data/lib/starter_web/_data/layouts/page.yml +1 -1
  416. data/lib/starter_web/_data/layouts/post.yml +1 -1
  417. data/lib/starter_web/_data/layouts/raw.yml +1 -1
  418. data/lib/starter_web/_data/modules/_docsearch.yml +45 -0
  419. data/lib/starter_web/_data/modules/advertising.yml +1 -5
  420. data/lib/starter_web/_data/modules/analytics.yml +7 -7
  421. data/lib/starter_web/_data/modules/attics.yml +1 -2
  422. data/lib/starter_web/_data/modules/authentication.yml +1 -2
  423. data/lib/starter_web/_data/modules/blog_navigator.yml +1 -2
  424. data/lib/starter_web/_data/modules/carousel.yml +1 -1
  425. data/lib/starter_web/_data/modules/{framer.yml → chatbots.yml} +12 -11
  426. data/lib/starter_web/_data/modules/comments.yml +7 -7
  427. data/lib/starter_web/_data/modules/cookieconsent.yml +7 -7
  428. data/lib/starter_web/_data/modules/cookies.yml +7 -7
  429. data/lib/starter_web/_data/modules/defaults/advertising.yml +1 -2
  430. data/lib/starter_web/_data/modules/defaults/analytics.yml +2 -3
  431. data/lib/starter_web/_data/modules/defaults/attics.yml +1 -1
  432. data/lib/starter_web/_data/modules/defaults/authentication.yml +1 -2
  433. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +1 -2
  434. data/lib/starter_web/_data/modules/defaults/carousel.yml +1 -1
  435. data/lib/starter_web/_data/modules/defaults/chatbots.yml +80 -0
  436. data/lib/starter_web/_data/modules/defaults/comments.yml +7 -7
  437. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +10 -82
  438. data/lib/starter_web/_data/modules/defaults/cookies.yml +8 -8
  439. data/lib/starter_web/_data/modules/defaults/docsearch.yml +87 -0
  440. data/lib/starter_web/_data/modules/defaults/dropdowns.yml +2 -3
  441. data/lib/starter_web/_data/modules/defaults/fab.yml +1 -2
  442. data/lib/starter_web/_data/modules/defaults/gallery.yml +1 -1
  443. data/lib/starter_web/_data/modules/defaults/iconPicker.yml +7 -7
  444. data/lib/starter_web/_data/modules/defaults/{framer.yml → iframer.yml} +57 -22
  445. data/lib/starter_web/_data/modules/defaults/lazyLoader.yml +1 -5
  446. data/lib/starter_web/_data/modules/defaults/lightbox.yml +1 -1
  447. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +1 -2
  448. data/lib/starter_web/_data/modules/defaults/log4r.yml +1 -1
  449. data/lib/starter_web/_data/modules/defaults/lunr.yml +7 -7
  450. data/lib/starter_web/_data/modules/defaults/masonry.yml +7 -7
  451. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  452. data/lib/starter_web/_data/modules/defaults/navigator.yml +5 -2
  453. data/lib/starter_web/_data/modules/defaults/particles.yml +1 -1
  454. data/lib/starter_web/_data/modules/defaults/rangeSlider.yml +1 -5
  455. data/lib/starter_web/_data/modules/defaults/rtable.yml +1 -5
  456. data/lib/starter_web/_data/modules/defaults/scroller.yml +2 -5
  457. data/lib/starter_web/_data/modules/defaults/slick.yml +1 -1
  458. data/lib/starter_web/_data/modules/defaults/speak2me.yml +7 -7
  459. data/lib/starter_web/_data/modules/defaults/theme_toggler.yml +7 -7
  460. data/lib/starter_web/_data/modules/defaults/themer.yml +1 -2
  461. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  462. data/lib/starter_web/_data/modules/defaults/translator.yml +18 -59
  463. data/lib/starter_web/_data/modules/defaults/waves.yml +7 -7
  464. data/lib/starter_web/_data/modules/docsearch.yml +45 -0
  465. data/lib/starter_web/_data/modules/dropdowns.yml +1 -2
  466. data/lib/starter_web/_data/modules/fab.yml +1 -5
  467. data/lib/starter_web/_data/modules/gallery.yml +149 -80
  468. data/lib/starter_web/_data/modules/iconPicker.yml +7 -7
  469. data/lib/starter_web/_data/modules/iframer.yml +103 -0
  470. data/lib/starter_web/_data/modules/lazyLoader.yml +1 -2
  471. data/lib/starter_web/_data/modules/lightbox.yml +1 -1
  472. data/lib/starter_web/_data/modules/log4javascript.yml +1 -2
  473. data/lib/starter_web/_data/modules/log4r.yml +1 -1
  474. data/lib/starter_web/_data/modules/lunr.yml +7 -7
  475. data/lib/starter_web/_data/modules/masonry.yml +7 -7
  476. data/lib/starter_web/_data/modules/masterslider.yml +1 -1
  477. data/lib/starter_web/_data/modules/navigator.yml +1 -1
  478. data/lib/starter_web/_data/modules/navigator_menu.yml +44 -11
  479. data/lib/starter_web/_data/modules/particles.yml +1 -1
  480. data/lib/starter_web/_data/modules/rangeSlider.yml +1 -5
  481. data/lib/starter_web/_data/modules/rtable.yml +1 -5
  482. data/lib/starter_web/_data/modules/scroller.yml +2 -1
  483. data/lib/starter_web/_data/modules/slick.yml +1 -1
  484. data/lib/starter_web/_data/modules/speak2me.yml +7 -7
  485. data/lib/starter_web/_data/modules/theme_toggler.yml +7 -7
  486. data/lib/starter_web/_data/modules/themer.yml +1 -2
  487. data/lib/starter_web/_data/modules/toccer.yml +1 -1
  488. data/lib/starter_web/_data/modules/translator.yml +7 -7
  489. data/lib/starter_web/_data/modules/waves.yml +8 -8
  490. data/lib/starter_web/_data/plugins/defaults/feed.yml +1 -1
  491. data/lib/starter_web/_data/plugins/defaults/paginator.yml +1 -1
  492. data/lib/starter_web/_data/plugins/defaults/seo-tags.yml +1 -1
  493. data/lib/starter_web/_data/plugins/defaults/sitemap.yml +1 -1
  494. data/lib/starter_web/_data/plugins/feed.yml +7 -7
  495. data/lib/starter_web/_data/plugins/paginator.yml +1 -1
  496. data/lib/starter_web/_data/plugins/seo-tags.yml +7 -7
  497. data/lib/starter_web/_data/plugins/sitemap.yml +7 -7
  498. data/lib/starter_web/_data/private.yml +1 -1
  499. data/lib/starter_web/_data/resources.yml +60 -14
  500. data/lib/starter_web/_data/templates/feed.xml +2 -2
  501. data/lib/starter_web/_data/templates/robots.txt +1 -1
  502. data/lib/starter_web/_data/templates/seo-tags.html +1 -1
  503. data/lib/starter_web/_data/templates/sitemap.xml +1 -1
  504. data/lib/starter_web/_data/utilities/defaults/util_srv.yml +1 -1
  505. data/lib/starter_web/_data/utilities/util_srv.yml +1 -1
  506. data/lib/starter_web/_includes/attributes.asciidoc +3 -1
  507. data/lib/starter_web/_includes/custom/static/bs5_accordion.html +6 -7
  508. data/lib/starter_web/_includes/custom/templates/bs5_accordion.html +6 -7
  509. data/lib/starter_web/_includes/custom/templates/collection_panel.html +6 -7
  510. data/lib/starter_web/_includes/custom/templates/custom_header.html +6 -7
  511. data/lib/starter_web/_includes/custom/templates/people_panel.html +6 -7
  512. data/lib/starter_web/_includes/google/static/google_ad__your-slot-id.html +6 -7
  513. data/lib/starter_web/_includes/google/templates/google_ads.html +6 -7
  514. data/lib/starter_web/_plugins/asciidoctor/admonition-block-answer.rb +1 -2
  515. data/lib/starter_web/_plugins/asciidoctor/admonition-block-question.rb +1 -2
  516. data/lib/starter_web/_plugins/asciidoctor/banner.rb +1 -2
  517. data/lib/starter_web/_plugins/asciidoctor/callout.rb +1 -2
  518. data/lib/starter_web/_plugins/asciidoctor/carousel-block.rb +1 -2
  519. data/lib/starter_web/_plugins/asciidoctor/conum.rb +1 -2
  520. data/lib/starter_web/_plugins/asciidoctor/dailymotion-block.rb +1 -2
  521. data/lib/starter_web/_plugins/asciidoctor/fab-icon-inline.rb +1 -2
  522. data/lib/starter_web/_plugins/asciidoctor/fas-icon-inline.rb +1 -2
  523. data/lib/starter_web/_plugins/asciidoctor/flag-icon-inline.rb +1 -1
  524. data/lib/starter_web/_plugins/asciidoctor/gallery-block.rb +1 -1
  525. data/lib/starter_web/_plugins/asciidoctor/gist-block.rb +1 -2
  526. data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +1 -2
  527. data/lib/starter_web/_plugins/asciidoctor/iconify-icon-inline.rb +1 -2
  528. data/lib/starter_web/_plugins/asciidoctor/iframe-block.rb +46 -0
  529. data/lib/starter_web/_plugins/asciidoctor/lightbox-block.rb +1 -2
  530. data/lib/starter_web/_plugins/asciidoctor/lorem_inline.rb +1 -1
  531. data/lib/starter_web/_plugins/asciidoctor/masonry-block.rb +1 -2
  532. data/lib/starter_web/_plugins/asciidoctor/masterslider-block.rb +1 -2
  533. data/lib/starter_web/_plugins/asciidoctor/mdi-icon-inline.rb +1 -2
  534. data/lib/starter_web/_plugins/asciidoctor/mdib-icon-inline.rb +1 -2
  535. data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -2
  536. data/lib/starter_web/_plugins/asciidoctor/panel.rb +1 -2
  537. data/lib/starter_web/_plugins/asciidoctor/placeholder-inline.rb +1 -2
  538. data/lib/starter_web/_plugins/asciidoctor/range-slider-block.rb +1 -2
  539. data/lib/starter_web/_plugins/asciidoctor/shout-block.rb +1 -2
  540. data/lib/starter_web/_plugins/asciidoctor/slick-block.rb +1 -2
  541. data/lib/starter_web/_plugins/asciidoctor/textbook-block.rb +1 -2
  542. data/lib/starter_web/_plugins/asciidoctor/twitter-emoji-inline.rb +1 -2
  543. data/lib/starter_web/_plugins/asciidoctor/video-block.rb +1 -2
  544. data/lib/starter_web/_plugins/asciidoctor/videojs-block.rb +1 -2
  545. data/lib/starter_web/_plugins/asciidoctor/vimeo-block.rb +1 -2
  546. data/lib/starter_web/_plugins/asciidoctor/wistia-block.rb +1 -2
  547. data/lib/starter_web/_plugins/asciidoctor/youtube-block.rb +1 -2
  548. data/lib/starter_web/_plugins/filter/debug.rb +1 -1
  549. data/lib/starter_web/_plugins/filter/encodeBase64.rb +1 -1
  550. data/lib/starter_web/_plugins/filter/encryptAES.rb +1 -1
  551. data/lib/starter_web/_plugins/filter/filters.rb +1 -1
  552. data/lib/starter_web/_plugins/filter/liquify.rb +1 -1
  553. data/lib/starter_web/_plugins/filter/minifyJS.rb +1 -1
  554. data/lib/starter_web/_plugins/filter/minifyJSON.rb +1 -1
  555. data/lib/starter_web/_plugins/filter/prettify.rb +1 -1
  556. data/lib/starter_web/_plugins/filter/xml_prettify.rb +1 -1
  557. data/lib/starter_web/_plugins/helper/symlink_watcher.rb +1 -1
  558. data/lib/starter_web/_plugins/i18n/date.rb +1 -1
  559. data/lib/starter_web/_plugins/index/lunr.rb +3 -2
  560. data/lib/starter_web/_plugins/seo/j1-feed.rb +1 -1
  561. data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +1 -1
  562. data/lib/starter_web/_plugins/seo/j1-sitemap.rb +1 -1
  563. data/lib/starter_web/assets/images/modules/gallery/mega_cities/{author.txt → info/authors.txt} +8 -5
  564. data/lib/starter_web/config.ru +1 -1
  565. data/lib/starter_web/dot.gitattributes +1 -2
  566. data/lib/starter_web/dot.nojekyll +1 -2
  567. data/lib/starter_web/package.json +74 -75
  568. data/lib/starter_web/pages/public/about/reporting_issues.adoc +4 -1
  569. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
  570. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +1 -1
  571. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +5 -2
  572. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/111_about_the_converter.asciidoc +4 -2
  573. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +7 -3
  574. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/211_language_overview.asciidoc +0 -1
  575. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/212_values.asciidoc +29 -9
  576. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/213_fonts.asciidoc +37 -13
  577. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/a2p.bat +3 -3
  578. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/a2p.sh +3 -4
  579. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.a2p +10 -11
  580. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  581. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.pdf +27727 -0
  582. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +4 -2
  583. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/tables/serve_command_options.asciidoc +5 -2
  584. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
  585. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +12 -6
  586. data/lib/starter_web/pages/public/features/general.adoc +5 -2
  587. data/lib/starter_web/pages/public/features/template.adoc +5 -2
  588. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +7 -1
  589. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +7 -1
  590. data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +7 -1
  591. data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +3 -0
  592. data/lib/starter_web/pages/public/learn/bookshelf/{article_previewer/viewer_all_books.adoc → viewer_all_books.adoc} +8 -2
  593. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +26 -12
  594. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +1 -1
  595. data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +1 -1
  596. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +1 -1
  597. data/lib/starter_web/pages/public/learn/roundtrip/lunr_search.adoc +2 -2
  598. data/lib/starter_web/pages/public/learn/roundtrip/modal_extentions.adoc +2 -2
  599. data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +49 -40
  600. data/lib/starter_web/pages/public/learn/roundtrip/present_videos.adoc +72 -216
  601. data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +1 -1
  602. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +1 -1
  603. data/lib/starter_web/pages/public/learn/where_to_go.adoc +1 -1
  604. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -1
  605. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  606. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -1
  607. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
  608. data/lib/starter_web/pages/public/plans/plans.adoc +1 -1
  609. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.hover.html +69 -0
  610. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.nested.html +75 -0
  611. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/frame.textarea.html +57 -0
  612. data/lib/starter_web/pages/public/tools/previewer/_includes/documents/my.content.html +112 -0
  613. data/lib/starter_web/pages/public/tools/previewer/iframer_documents/iframe.content.html +51 -0
  614. data/lib/starter_web/pages/public/tools/previewer/iframer_documents/iframe.docsearch.info.html +84 -0
  615. data/lib/starter_web/pages/public/tools/previewer/preview_bootstrap_theme.adoc +2 -2
  616. data/lib/starter_web/pages/public/tools/previewer/preview_docsearch.adoc +92 -0
  617. data/lib/starter_web/pages/public/tools/previewer/preview_iframer.adoc +106 -0
  618. metadata +37 -25
  619. data/_layouts/_home.html +0 -88
  620. data/assets/themes/j1/adapter/js/framer.js +0 -237
  621. data/assets/themes/j1/adapter/js/lightGallery.js +0 -459
  622. data/lib/starter_web/_data/_defaults/private.yml +0 -129
  623. data/lib/starter_web/_data/modules/defaults/lightGallery.yml +0 -119
  624. data/lib/starter_web/_data/modules/lightGallery.yml +0 -41
  625. data/lib/starter_web/_data/modules/nbinteract.yml +0 -476
  626. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  627. data/lib/starter_web/utilsrv/_defaults/package.json +0 -57
  628. data/lib/starter_web/utilsrv/package.json +0 -57
  629. data/lib/starter_web/utilsrv/server.js +0 -775
@@ -1,775 +0,0 @@
1
- /*
2
- # -----------------------------------------------------------------------------
3
- # ~/packages/910_theme_utils/100_util_server/server.js
4
- #
5
- # Provides services for e.g. an external OAuth Client used by
6
- # NetlifyCMS for GH authentication
7
- #
8
- # Product/Info:
9
- # https://jekyll.one
10
- # http://www.vxk.cz/tips/2017/05/18/netlify-cms/
11
- #
12
- # Copyright (C) 2023 Juergen Adams
13
- # Copyright (C) 2020 Václav Klecanda
14
- #
15
- # J1 Template is licensed under the MIT License.
16
- # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
17
- # Netlify-cms-github-oauth-provider is licensed under UNKNOWN License.
18
- # See: https://github.com/vencax/netlify-cms-github-oauth-provider/blob/master/README.md
19
- # -----------------------------------------------------------------------------
20
- # NOTE:
21
- # To fix Webstorm NodeJS API issue see:
22
- # https://stackoverflow.com/questions/19532660/webstorm-7-cannot-recognize-node-api-methods
23
- # -----------------------------------------------------------------------------
24
- */
25
- 'use strict';
26
-
27
- // -----------------------------------------------------------------------------
28
- // ESLint shimming
29
- // -----------------------------------------------------------------------------
30
- // noinspection DuplicatedCode
31
- // noinspection ES6ConvertRequireIntoImport
32
- // noinspection ES6ConvertVarToLetConst
33
- // noinspection ES6ModulesDependencies
34
- // noinspection JSCheckFunctionSignatures
35
- // noinspection JSIgnoredPromiseFromCall
36
- // noinspection JSJoinVariableDeclarationAndAssignment
37
- // noinspection JSUnfilteredForInLoop
38
- // noinspection JSUnresolvedFunction
39
- // noinspection JSUnresolvedVariable
40
- // noinspection JSUnusedLocalSymbols
41
- // noinspection JSValidateTypes
42
- // noinspection NodeJsCodingAssistanceForCoreModules
43
- // noinspection SpellCheckingInspection
44
-
45
- // =============================================================================
46
- // libraries
47
- // -----------------------------------------------------------------------------
48
- const express = require('express');
49
- const bodyParser = require("body-parser");
50
- const cors = require('cors');
51
- const parseURL = require('lite-url');
52
- const fs = require('fs');
53
- const touch = require("touch");
54
- const yaml = require('js-yaml');
55
- const path = require('path');
56
- const randomstring = require('randomstring');
57
- // const gitP = require('simple-git/promise');
58
- const gitP = require('simple-git'); // simple-git/promise' has been deprecated and will be removed by July 2022 - change all 'simple-git/promise' imports to just 'simple-git'
59
- const simpleOauthModule = require('simple-oauth2');
60
- const util = require('util');
61
- const exec = util.promisify(require('child_process').exec);
62
- const moment = require('moment');
63
- const sprintf = require('sprintf-js').sprintf;
64
- const vsprintf = require('sprintf-js').vsprintf;
65
- const cron = require('node-cron');
66
- const log4js = require('log4js');
67
-
68
-
69
- // =============================================================================
70
- // base settings
71
- // -----------------------------------------------------------------------------
72
- const daemon_home = path.resolve(__dirname);
73
- const environment = daemon_home.indexOf('packages') !== -1 ? 'dev' : 'prod';
74
- const current_date = moment().format('YYYY-MM-DD');
75
-
76
- let config_home;
77
- let project_home;
78
- let log_home;
79
- let utilsrv_options;
80
- let log4javascript_options;
81
- let private_data;
82
- let logStream;
83
- let fsStats;
84
-
85
- // timestamp settings
86
- //
87
- moment().format('YYYY-MM-DD hh:mm:ss.SSS');
88
-
89
- // =============================================================================
90
- // environment settings
91
- // -----------------------------------------------------------------------------
92
- if (environment === 'dev') {
93
- project_home = daemon_home + '/../400_theme_site';
94
- config_home = daemon_home + '/../400_theme_site/_data';
95
- log_home = daemon_home + '/../..';
96
- } else {
97
- project_home = daemon_home + '/..';
98
- config_home = daemon_home + '/../_data';
99
- log_home = daemon_home + '/..';
100
- }
101
-
102
- // =============================================================================
103
- // load configuration data
104
- // -----------------------------------------------------------------------------
105
-
106
- const util_settings = config_home + '/utilities';
107
- const util_defaults = util_settings + '/defaults';
108
-
109
- const modules_settings = config_home + '/modules';
110
- const modules_defaults = modules_settings + '/defaults';
111
-
112
- const private_data_file = config_home + '/' + 'private.yml';
113
-
114
- const log4javascript_defaults_file = modules_defaults + '/' + 'log4javascript.yml';
115
- const log4javascript_settings_file = modules_settings + '/' + 'log4javascript.yml';
116
-
117
- const utilsrv_defaults_file = util_defaults + '/' + 'util_srv.yml';
118
- const utilsrv_settings_file = util_settings + '/' + 'util_srv.yml';
119
-
120
- try {
121
- const log4javascript_defaults = yaml.load(fs.readFileSync(log4javascript_defaults_file, 'utf8'));
122
- const log4javascript_settings = yaml.load(fs.readFileSync(log4javascript_settings_file, 'utf8'));
123
- const utilsrv_defaults = yaml.load(fs.readFileSync(utilsrv_defaults_file, 'utf8'));
124
- const utilsrv_settings = yaml.load(fs.readFileSync(utilsrv_settings_file, 'utf8'));
125
- const private_data_settings = yaml.load(fs.readFileSync(private_data_file, 'utf8'));
126
-
127
- // noinspection JSUnresolvedVariable
128
- private_data = private_data_settings.util_srv;
129
- utilsrv_options = mergeData(utilsrv_defaults.defaults, utilsrv_settings.settings);
130
- log4javascript_options = mergeData(log4javascript_defaults.defaults, utilsrv_settings.settings);
131
- } catch (e) {
132
- console.log(e);
133
- }
134
- const ajaxAppenderOptions = log4javascript_options.appenders[1].appender;
135
-
136
- // -----------------------------------------------------------------------------
137
- // utility server settings
138
- //
139
- const enabled = utilsrv_options.enabled || false;
140
- const ssl = utilsrv_options.ssl || false;
141
- const port = utilsrv_options.port || 40020;
142
- const origin = utilsrv_options.origin || 'localhost';
143
- const hostName = utilsrv_options.host_name || '0.0.0.0';
144
- const verbose = utilsrv_options.verbose || false;
145
- const logFileName = ajaxAppenderOptions.log_file_name + '_' + current_date || 'messages' + '_' + current_date;
146
- const logFileExt = ajaxAppenderOptions.log_file_ext || 'log';
147
- const logFolder = ajaxAppenderOptions.log_folder || 'log';
148
- const logFileNamePath = log_home + '/' + logFolder + '/' + logFileName + '.' + logFileExt;
149
- const current_logFile = log_home + '/' + logFolder + '/' + 'messages.current';
150
- const util_srv_url = ssl ? 'https://' + origin + ':' + port : 'http://' + origin + ':' + port;
151
- const thread_id = generateId (11);
152
- const page = '/util_srv';
153
- const isWin = process.platform === "win32";
154
-
155
- // -----------------------------------------------------------------------------
156
- // logger settings
157
- // See: https://github.com/log4js-node/log4js-node/blob/master/docs/layouts.md
158
- //
159
- log4js.configure({
160
- appenders: {
161
- stdout: {
162
- type: 'stdout',
163
- layout: {
164
- type: 'pattern',
165
- pattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] [%p] [%-40c] %m%n'
166
- }
167
- },
168
- file: {
169
- type: 'file',
170
- filename: logFileNamePath,
171
- layout: {
172
- type: 'pattern',
173
- pattern: '[%d{yyyy-MM-dd hh:mm:ss.SSS}] [%-11x{thread}] [%-5p] [%-60x{page}] [%-40c] %m',
174
- tokens: {
175
- thread: thread_id,
176
- page: page
177
- }
178
- }
179
- }
180
- },
181
- categories: {
182
- default: {
183
- appenders: ['stdout'],
184
- level: 'info'
185
- },
186
- 'j1.util_srv': {
187
- appenders: ['file'],
188
- level: 'info'
189
- },
190
- 'j1.util_srv.preflight': {
191
- appenders: ['file'],
192
- level: 'info'
193
- },
194
- 'j1.util_srv.task': {
195
- appenders: ['file'],
196
- level: 'info'
197
- }
198
- }
199
- });
200
-
201
- // -----------------------------------------------------------------------------
202
- // create loggers
203
- //
204
- let stdout = log4js.getLogger('stdout');
205
- let preflight = log4js.getLogger('j1.util_srv.preflight');
206
- let logger = log4js.getLogger('j1.util_srv.core');
207
-
208
- // -----------------------------------------------------------------------------
209
- // scheduler task settings
210
- // See: https://github.com/node-cron/node-cron
211
- //
212
- let test_per_minute = cron.schedule('* * * * *', () => {
213
- let timestamp = moment().format('YYYY-MM-DD HH:mm');
214
- console.log(timestamp + ': scheduled test task running every minute');
215
- }, {
216
- scheduled: false
217
- });
218
-
219
- let rolling_logs = cron.schedule('* * * * *', () => {
220
- let logger = log4js.getLogger( 'j1.util_srv.task');
221
- // logger_stdout.info('rolling log task running every minute');
222
- logger.info('rolling log task running every minute');
223
- let timestamp = moment().format('YYYY-MM-DD HH:mm');
224
- console.log(timestamp + ': rolling log task running every minute');
225
- }, {
226
- scheduled: false
227
- });
228
-
229
- // -----------------------------------------------------------------------------
230
- // initialize the logfile
231
-
232
- // check if the logfile exists
233
- try {
234
- fsStats = fs.statSync(logFileNamePath);
235
- console.log('Log file exists : ' + logFileName);
236
- preflight.info('log file exists: ' + logFileName)
237
-
238
- if ( ajaxAppenderOptions.reset_on_start === true) {
239
- fs.truncate(logFileNamePath, 0, function(){console.log('Reset file: ' + logFileName)});
240
- }
241
- }
242
- catch (e) {
243
- console.log('Create Log file :' + logFileName);
244
- preflight.info('create log file :' + logFileName);
245
- // create empty logfile
246
- touch(logFileNamePath);
247
- }
248
-
249
- // symlinks on Windows are only supported by elevated user rights
250
- //
251
- if (isWin === false) {
252
- // (Re-)Create symlink to current logfile
253
- //
254
- fs.unlink(current_logFile, (err => {
255
- if (err) {
256
- fs.symlink (
257
- logFileNamePath,
258
- current_logFile,
259
- function (err) { console.log(err || 'Symlink to current log created.'); }
260
- );
261
- } else {
262
- // See: https://stackoverflow.com/questions/29777506/create-relative-symlinks-using-absolute-paths-in-node-js
263
- //
264
- fs.symlink (
265
- logFileNamePath,
266
- current_logFile,
267
- function (err) { console.log(err || 'Symlink to current log re-created.'); }
268
- );
269
- }
270
- }));
271
- }
272
-
273
-
274
- // check if logs should be appended
275
- //
276
- preflight.info('appender options, mode: ' + ajaxAppenderOptions.mode);
277
- if (ajaxAppenderOptions.mode === 'append') {
278
- logStream = fs.createWriteStream(logFileNamePath, {'flags': 'a'});
279
- } else {
280
- fs.truncate(logFileNamePath, 0, function(){console.log('Reset file: ' + logFileName)});
281
- logStream = fs.createWriteStream(logFileNamePath, {'flags': 'a'});
282
- }
283
-
284
- // check if logs should be rolled (e.g. daily)
285
- //
286
- preflight.info('appender options, rolling files: ' + ajaxAppenderOptions.rolling_files);
287
- if (ajaxAppenderOptions.rolling_files === true) {
288
- // start the scheduled task for rolling (log) files
289
- //
290
- rolling_logs.start();
291
- }
292
-
293
- // -----------------------------------------------------------------------------
294
- // print utility server issue
295
- //
296
- if (environment === 'dev') {
297
- console.log('Server enabled: ' + enabled);
298
- console.log('Environment detected as: ' + environment);
299
- console.log('Daemon path set to: ' + daemon_home);
300
- console.log('Daemon verbosity set to: ' + verbose);
301
- console.log('Project path set to: ' + project_home);
302
- console.log('Data path set to: ' + config_home);
303
- console.log('Log file set to: ' + logFileNamePath);
304
- }
305
-
306
- // -----------------------------------------------------------------------------
307
- // Github OAuth client settings (used for CC)
308
- //
309
- const loginAuthTarget = '_self';
310
- const oauthProvider = 'github';
311
- const oauthProviderUrl = 'https://github.com';
312
- const oauthProviderTokenPath = '/login/oauth/access_token';
313
- const oauthProviderAuthorizePath = '/login/oauth/authorize';
314
- const oauthProviderRedirectUrl = private_data.oauth.site_redirect_url;
315
- const oauthProviderClientScope = private_data.oauth.client_scope;
316
- const oauthProviderClientId = private_data.oauth.client_id;
317
- const oauthProviderClientSecret = private_data.oauth.client_secret;
318
-
319
- // -----------------------------------------------------------------------------
320
- // cors settings
321
- //
322
- let corsSettings = {
323
- origin: '*',
324
- optionsSuccessStatus: 200 // Some legacy browsers (IE11, various SmartTVs) choke on 204
325
- }
326
-
327
- // -----------------------------------------------------------------------------
328
- // git client settings
329
- //
330
-
331
- // -----------------------------------------------------------------------------
332
- // npm client settings
333
- //
334
-
335
- // =============================================================================
336
- // initialize runtime libraries
337
- // -----------------------------------------------------------------------------
338
- const app = express();
339
- const oauth2 = simpleOauthModule.create({
340
- client: {
341
- id: oauthProviderClientId,
342
- secret: oauthProviderClientSecret
343
- },
344
- auth: {
345
- // Supply oauthProviderUrl for enterprise github installs
346
- tokenHost: oauthProviderUrl,
347
- tokenPath: oauthProviderTokenPath,
348
- authorizePath: oauthProviderAuthorizePath
349
- }
350
- });
351
-
352
- // check origin settings
353
- //
354
- const originPattern = origin || '';
355
- if (('').match(originPattern)) {
356
- console.warn('Insecure ORIGIN pattern used. This can give unauthorized users access to your repository.');
357
- if (environment === 'prod') {
358
- console.error('Utility Server: Will not run without a safe ORIGIN pattern in production.');
359
- process.exit;
360
- }
361
- }
362
-
363
- // authorization uri definition
364
- //
365
- const authorizationUri = oauth2.authorizationCode.authorizeURL({
366
- redirect_uri: oauthProviderRedirectUrl,
367
- scope: oauthProviderClientScope || 'repo, user',
368
- state: randomstring.generate(32)
369
- });
370
-
371
- // =============================================================================
372
- // cors settings (all routes)
373
- // see: https://expressjs.com/en/resources/middleware/cors.html
374
- // -----------------------------------------------------------------------------
375
- app.use(cors(corsSettings));
376
-
377
- // =============================================================================
378
- // initialize body parser to extract data from POST requests
379
- // -----------------------------------------------------------------------------
380
- app.use(bodyParser.urlencoded({ extended: false }));
381
- app.use(bodyParser.json());
382
-
383
- // =============================================================================
384
- // api endpoints
385
- // -----------------------------------------------------------------------------
386
-
387
- // endpoint 'root'
388
- // present simple sign-in page for e.g. testing
389
- // -----------------------------------------------------------------------------
390
- app.get('/', (req, res) => {
391
-
392
- res.send(`Utility Server<br>
393
- <a href="/auth" target="${loginAuthTarget}">
394
- SignIn with provider: ${oauthProvider.toUpperCase()}
395
- </a>`);
396
-
397
- }); // end endpoint root
398
-
399
- // endpoint 'auth' (auth redirect)
400
- // initial page redirect to Github
401
- // ----------------------------------------------------------------------------
402
- app.get('/auth', (req, res) => {
403
-
404
- if (environment === 'dev') console.log('Utility Server: endpoint /auth entered');
405
- if (environment === 'dev') console.log('Utility Server: authorization URL: ' + authorizationUri);
406
- res.redirect(authorizationUri);
407
-
408
- }); // end endpoint auth
409
-
410
-
411
- // endpoint '/auth/github/callback' (auth callback)
412
- // parsing the authorization token, asking for the access token
413
- // ----------------------------------------------------------------------------
414
- app.get('/auth/github/callback', (req, res) => {
415
-
416
- const code = req.query.code;
417
- let options = {
418
- code: code
419
- };
420
-
421
- if (environment === 'dev') console.log('Utility Server: auth redirect entered: /auth/github/callback');
422
-
423
- if (oauthProvider === 'gitlab') {
424
- options.client_id = process.env.UTIL_SRV_GITHUB_CLIENT_ID;
425
- options.client_secret = process.env.UTIL_SRV_GITHUB_CLIENT_SECRET;
426
- options.grant_type = 'authorization_code';
427
- options.redirect_uri = process.env.REDIRECT_URL || '/auth/github/callback';
428
- }
429
-
430
- oauth2.authorizationCode.getToken(options, (error, result) => {
431
- let mess, content;
432
-
433
- if (error) {
434
- console.error('Utility Server: Access Token Error - ', error.message);
435
- mess = 'error';
436
- content = JSON.stringify(error)
437
- } else {
438
- const token = oauth2.accessToken.create(result);
439
- mess = 'success';
440
- content = {
441
- token: token.token.access_token,
442
- provider: oauthProvider
443
- }
444
- }
445
-
446
- // see: http://usefulangle.com/post/4/javascript-communication-parent-child-window
447
- //
448
- const script = `
449
- <script>
450
- (function() {
451
-
452
- // Register an event handler to listen for messages of the child window
453
- window.addEventListener("message", receiveMessage, false);
454
-
455
- // Post a authorizing message to the parent window (Netlify CMS App)
456
- // as a handshake with the parent window
457
- console.log("Sending message: %o", "${oauthProvider}");
458
- window.opener.postMessage("authorizing:${oauthProvider}", "*");
459
-
460
- function receiveMessage(e) {
461
- console.log("receiveMessage %o", e);
462
- if (!e.origin.match(${JSON.stringify(originPattern)})) {
463
- console.log('Invalid origin: %s', e.origin);
464
- return;
465
- } // end invalid origin
466
-
467
- // send message to main (parent) window (Netlify CMS App)
468
- // 'authorization:github:success:{"token":"12345678908f0719d7ae1bf94f379876543210","provider":"github"}'
469
- window.opener.postMessage(
470
- 'authorization:${oauthProvider}:${mess}:${JSON.stringify(content)}',
471
- e.origin
472
- )
473
- } // end receiveMessage
474
-
475
- })()
476
- </script>`;
477
-
478
- if (environment === 'dev') console.log('Utility Server: Send script (IIF) to main (parent) window (Netlify CMS App): ' + script);
479
- return res.send(script);
480
- });
481
-
482
- }); // end endpoint callback
483
-
484
-
485
- // endpoint 'success' (/success)
486
- // currently NOT used (placeholder)
487
- // -----------------------------------------------------------------------------
488
- app.get('/success', (req, res) => {
489
-
490
- if (verbose) console.log('Utility Server: endpoint /success entered');
491
- res.send('');
492
-
493
- }); // end endpoint success
494
-
495
-
496
- // endpoint 'git' (git client)
497
- // run git cli commands locally on the host
498
- // -----------------------------------------------------------------------------
499
- // noinspection JSUnusedLocalSymbols
500
- //let git = app.get('/git', (req, res) => {
501
- app.get('/git', (req, res) => {
502
-
503
- // ---------------------------------------------------------------------------
504
- // API response message
505
- //
506
-
507
- let time = moment();
508
- let response;
509
-
510
- let response_message = {
511
- timestamp: time,
512
- request: '',
513
- response: '',
514
- status: '',
515
- error: ''
516
- };
517
- response_message.request = req.query.request;
518
-
519
- if (verbose) console.log('Utility Server: endpoint /git entered');
520
- if (verbose) console.log('Utility Server: Processing request: ' + req.query.request);
521
-
522
- // see: https://dzone.com/articles/cors-in-node
523
- res.header("Access-Control-Allow-Origin", "*");
524
-
525
- async function pull (workingDir) {
526
- // noinspection UnnecessaryLocalVariableJS
527
- const git = gitP;
528
-
529
- try {
530
- await git(workingDir).pull();
531
- response_message.status = 'success';
532
- }
533
- catch (e) {
534
- // handle error
535
- console.log('Utility Server: Error on repository at ' + workingDir + ' - ' + e.message );
536
- response_message.status = 'failed';
537
- response_message.error = e.message;
538
- console.log('Utility Server: Send response: ' + response);
539
- }
540
- }
541
-
542
- // pull the repo (async)
543
- if ( req.query.request === 'pull' ) {
544
- pull(project_home)
545
- .then(pull => console.log('Utility Server: pull request done. Status: ' + response_message.status))
546
- .then(function() {
547
- if ( response_message.status === 'failed') {
548
- response_message.response = response_message.status;
549
- } else {
550
- response_message.status = 'success';
551
- response_message.response = response_message.status;
552
- }
553
- response = JSON.stringify(response_message);
554
- if (verbose) console.log('Utility Server: Send response: ' + response);
555
- res.send(response);
556
- });
557
- } // end pull
558
-
559
-
560
- }); // end endpoint git
561
-
562
-
563
- // endpoint 'npm' (npm client)
564
- // run npm commands locally on the host
565
- // -----------------------------------------------------------------------------
566
- app.get('/npm', (req, res) => {
567
-
568
- // ---------------------------------------------------------------------------
569
- // api response message
570
- let projectFolder;
571
- let shellCmd;
572
- let response;
573
- let devPrefix = 'packages\\400_theme_site';
574
- let pkgManager = 'npm';
575
- let time = moment();
576
-
577
- let response_message = {
578
- timestamp: time,
579
- request: '',
580
- response: '',
581
- status: '',
582
- error: ''
583
- };
584
- response_message.request = req.query.request;
585
-
586
- // let versionRe = /.*(site.\w+\.\w+\.\w+).*(jekyll \w+\.\w+\.\w+)/;
587
- // let re = /.*(jekyll \w+\.\w+\.\w+)/;
588
-
589
- if (environment === 'dev') {
590
- projectFolder = project_home + '\\' + devPrefix;
591
- } else {
592
- projectFolder = project_home;
593
- }
594
-
595
- shellCmd = pkgManager + ' --prefix ' + projectFolder + ' run ' + req.query.request;
596
-
597
- if (verbose) console.log('Utility Server: endpoint /npm entered. Request: ' + req.query.request);
598
- if (verbose) console.log('Utility Server: Processing NPM call: ' + shellCmd);
599
-
600
- // if (req.query.request === 'version') {
601
- // let re = /.*(jekyll \w+\.\w+\.\w+)/;
602
- // }
603
- //
604
- // if (req.query.request === 'built') {
605
- // let re = /.*/;
606
- // }
607
-
608
- async function npm (workingDir) {
609
- try {
610
- const { stdout, stderr } = await exec(shellCmd);
611
- response_message.response = stdout;
612
- response_message.status = 'success';
613
- return response_message;
614
- }
615
- catch (e) {
616
- // handle error
617
- console.log('Utility Server: Error detected at ' + workingDir + ' - ' + e.message );
618
- response_message.status = 'failed';
619
- response_message.error = e.message;
620
- return response_message;
621
- }
622
- }
623
-
624
- // built the requested site (async)
625
- npm(project_home)
626
- .then(npm => console.log('Utility Server: NPM script done. Status: ' + response_message.status))
627
- .then(function() {
628
- if ( response_message.status === 'failed') {
629
- response_message.response = utilsrv_options.npm_client.built.response_failed;
630
- } else {
631
- response_message.status = 'success';
632
- response_message.response = utilsrv_options.npm_client.built.response_success;
633
- }
634
- response = JSON.stringify(response_message);
635
- if (verbose) console.log('Utility Server: Send response: ' + response);
636
- res.send(response);
637
- });
638
-
639
- });
640
-
641
- // endpoint 'log2disk' (log message writer)
642
- // process log data received from POST request, write to disk|file
643
- // -----------------------------------------------------------------------------
644
- // noinspection JSUnusedLocalSymbols
645
- // let logger = app.post('/log2disk', (req, res) => {
646
- app.post('/log2disk', (req, res) => {
647
- // ---------------------------------------------------------------------------
648
- // globals
649
- let pageID = req.headers['x-page-id'];
650
- let tzOffset = req.headers['x-tz-offset'];
651
- const tz_offset = tzOffset.replace(/GMT/g, '');
652
- let tz_factor;
653
- let tz_offset_milli;
654
- let logLine;
655
- let msgDate2Int;
656
- let timestamp;
657
- let url;
658
- let path;
659
-
660
- // ---------------------------------------------------------------------------
661
- // process the POST response body
662
- //
663
- if (req.body.layout === 'XmlLayout') {
664
- logLine = req.body.data;
665
- } else if (req.body.layout === 'JsonLayout' || req.body.layout === 'PatternLayout' || req.body.layout === 'SimpleLayout' || req.body.layout === 'NullLayout') {
666
- logLine = req.body.data + '\n';
667
- } else if (req.body.layout === 'HttpPostDataLayout') {
668
- url = new parseURL(req.body.url);
669
- path = url.pathname;
670
-
671
- msgDate2Int = parseInt(req.body.timestamp, 10);
672
-
673
- // calculate TZ offset
674
- //
675
- let tz_split = tz_offset.split(':');
676
- let tz_offset_hours = eval(tz_split[0]*1);
677
- let tz_offset_minutes = eval(tz_split[1]*1);
678
-
679
- tz_factor = tz_offset_hours < 0 ? -1 : 1;
680
-
681
- tz_offset_hours = tz_factor*tz_offset_hours;
682
- tz_offset_milli = tz_factor*((3600*1000*tz_offset_hours) + (tz_offset_minutes*60*1000));
683
- msgDate2Int += tz_offset_milli;
684
-
685
- // ISOString: yyyy-MM-ddThh:mm:ss.sssZ
686
- timestamp = new Date(msgDate2Int).toISOString().slice(0, 23).replace('T', ' ');
687
-
688
- // [10:05:12.666] [INFO ] [j1.logger.writer ] [logger.js:154] [state: finished]
689
- // [http://localhost:41000/assets/themes/j1/adapter/js/logger.js:154]
690
- logLine = sprintf('[%s] [%s] [%-5s] [%-60s] [%-40s] %s\n', timestamp, pageID, req.body.level, path, req.body.logger, req.body.message);
691
- } else {
692
- logLine = req.body + '\n';
693
- }
694
-
695
- // if (verbose) console.log('Utility Server: endpoint /log2disk entered');
696
- // if (verbose) console.log('Utility Server: processing request: ' + req.query.request);
697
- // if (verbose) console.log('Utility Server: write message: ' + logLine);
698
-
699
- logStream.write(logLine);
700
- res.send('');
701
-
702
- }); // end endpoint 'log2disk'
703
-
704
-
705
- // =============================================================================
706
- // helper functions
707
- // -----------------------------------------------------------------------------
708
-
709
- // -----------------------------------------------------------------------------
710
- // mergeData:
711
- // merge 2 hashes
712
- //
713
- function mergeData () {
714
- let a = [].slice.call(arguments), o = a.shift();
715
-
716
- for(let i=0,l=a.length; i<l; i++){
717
- for(let p in a[i]){
718
- o[p] = a[i][p];
719
- }
720
- }
721
-
722
- return o;
723
- }
724
-
725
- // -------------------------------------------------------------------------
726
- // generateId()
727
- // Generate a unique (thread) id used by the logger
728
- // -------------------------------------------------------------------------
729
- function generateId (length) {
730
- let result = '';
731
- let characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
732
- let charactersLength = characters.length;
733
- for ( let i = 0; i < length; i++ ) {
734
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
735
- }
736
- return result;
737
- } // END generateId
738
-
739
-
740
- // =============================================================================
741
- // main
742
- // -----------------------------------------------------------------------------
743
-
744
- // catch startup errors
745
- process.on('uncaughtException', function(err) {
746
- if(err.errno === 'EADDRINUSE') {
747
- console.log('Port already in use :' + port );
748
- console.log('Utility server seems already running. Exiting ...');
749
- } else {
750
- console.log('Initializing the utility server failed. Exiting ...');
751
- console.log(err);
752
- }
753
- process.exit;
754
- });
755
-
756
- if (utilsrv_options.enabled) {
757
-
758
- // test_per_minute.start();
759
-
760
- logger.info('utility server is starting');
761
-
762
- // run the daemon (use IPV4, all interfaces)
763
- // see https://github.com/expressjs/express/issues/3528
764
- app.listen(port, hostName, () => {
765
- console.log("Utility Server is listening on port: " + port);
766
- logger.info('utility server is listening on port: ' + port);
767
- });
768
- } else {
769
- logger.info('found utility server: disabled');
770
- logger.info('stop the server');
771
- console.log('Stop the server. Exiting ...');
772
- }
773
-
774
- // END main
775
- // -----------------------------------------------------------------------------