j1-template 2020.0.12 → 2020.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (480) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +2 -2
  3. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +2 -2
  4. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +3 -3
  5. data/_includes/themes/j1/layouts/content_generator_collection.html +0 -1
  6. data/_includes/themes/j1/layouts/content_generator_page.html +23 -24
  7. data/_includes/themes/j1/layouts/content_generator_post.html +4 -3
  8. data/_includes/themes/j1/layouts/layout_metadata_generator.html +30 -37
  9. data/_includes/themes/j1/modules/navigator/generator.html +0 -1
  10. data/_includes/themes/j1/modules/navigator/procedures/topsearch.proc +2 -2
  11. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +5 -2
  12. data/_includes/themes/j1/procedures/layouts/content_writer.proc +8 -9
  13. data/_includes/themes/j1/procedures/layouts/module_writer.proc +3 -13
  14. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +10 -10
  15. data/_layouts/default.html +60 -59
  16. data/apps/public/cc/index.adoc +1 -5
  17. data/assets/data/authclient.html +36 -26
  18. data/assets/data/banner.html +4 -5
  19. data/assets/data/carousel.json +1 -2
  20. data/assets/data/{cookie_consent.html → cookiebar.html} +76 -51
  21. data/assets/data/footer.html +2 -5
  22. data/assets/data/galleries.json +1 -2
  23. data/assets/data/gallery_customizer.html +6 -7
  24. data/assets/data/jupyter/notebooks/_html/template.full.head.html +10 -10
  25. data/assets/data/jupyter/notebooks/_html/visualisation.html +11 -11
  26. data/assets/data/jupyter/notebooks/html/template.html +7 -7
  27. data/assets/data/jupyter/notebooks/html/visualisation.ok.html +12 -12
  28. data/assets/data/jupyter/notebooks/visualisation.ipynb +1 -1
  29. data/assets/data/mdi_icons.json +1 -2
  30. data/assets/data/menu.html +2 -3
  31. data/assets/data/mmenu.html +4 -5
  32. data/assets/data/mmenu_sidebar.html +2 -3
  33. data/assets/data/mmenu_toc.html +2 -3
  34. data/assets/data/panel.html +23 -30
  35. data/assets/data/quicklinks.html +24 -20
  36. data/assets/data/search.json +88 -84
  37. data/assets/data/ssm.html +2 -3
  38. data/assets/data/twa_v1.json +6979 -6982
  39. data/assets/themes/j1/adapter/js/algolia.js +17 -17
  40. data/assets/themes/j1/adapter/js/attic.js +25 -34
  41. data/assets/themes/j1/adapter/js/back2top.js +233 -0
  42. data/assets/themes/j1/adapter/js/carousel.js +15 -11
  43. data/assets/themes/j1/adapter/js/clipboard.js +21 -20
  44. data/assets/themes/j1/adapter/js/cookiebar.js +205 -0
  45. data/assets/themes/j1/adapter/js/framer.js +27 -19
  46. data/assets/themes/j1/adapter/js/gallery_customizer.js +220 -248
  47. data/assets/themes/j1/adapter/js/j1.js +304 -161
  48. data/assets/themes/j1/adapter/js/jf_gallery.js +21 -20
  49. data/assets/themes/j1/adapter/js/lightbox.js +9 -8
  50. data/assets/themes/j1/adapter/js/logger.js +3 -4
  51. data/assets/themes/j1/adapter/js/mdb.js +27 -30
  52. data/assets/themes/j1/adapter/js/mmenu.js +49 -66
  53. data/assets/themes/j1/adapter/js/navigator.js +167 -131
  54. data/assets/themes/j1/adapter/js/searcher.js +18 -12
  55. data/assets/themes/j1/adapter/js/ssm.js +84 -101
  56. data/assets/themes/j1/adapter/js/themer.js +74 -80
  57. data/assets/themes/j1/adapter/js/toccer.js +49 -18
  58. data/assets/themes/j1/core/css/animate.css +2382 -0
  59. data/assets/themes/j1/core/css/animate.min.css +7 -0
  60. data/assets/themes/j1/core/css/fontawesome.css +4415 -0
  61. data/assets/themes/j1/core/css/fontawesome.min.css +1 -0
  62. data/assets/themes/j1/core/css/iconify-icons.css +4106 -0
  63. data/assets/themes/j1/core/css/iconify-icons.min.css +1 -0
  64. data/assets/themes/j1/core/css/material-design-icons.css +14532 -0
  65. data/assets/themes/j1/core/css/material-design-icons.min.css +1 -0
  66. data/assets/themes/j1/core/css/theme_extensions.css +388 -1584
  67. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  68. data/assets/themes/j1/core/css/twemoji.css +9485 -0
  69. data/assets/themes/j1/core/css/twemoji.min.css +1 -0
  70. data/assets/themes/j1/core/css/uno.css +544 -1658
  71. data/assets/themes/j1/core/css/uno.min.css +1 -1
  72. data/assets/themes/j1/core/css/vendor.css +884 -33281
  73. data/assets/themes/j1/core/css/vendor.min.css +2 -9
  74. data/assets/themes/j1/core/js/template.js +26 -347
  75. data/assets/themes/j1/core/js/template.js.map +1 -1
  76. data/assets/themes/j1/core/js/template.min.js +1 -1
  77. data/assets/themes/j1/modules/backstretch/js/backstretch.js +1695 -0
  78. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +21 -0
  79. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js.org +1 -0
  80. data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.css +12177 -0
  81. data/assets/themes/j1/modules/bmd/css/bootstrap-material-design.min.css +8 -0
  82. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js +6930 -0
  83. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.js.map +1 -0
  84. data/assets/themes/j1/modules/bmd/js/bootstrap-material-design.min.js +1 -0
  85. data/assets/themes/j1/modules/bootstrap/css/bootstrap.css +10278 -0
  86. data/assets/themes/j1/modules/bootstrap/css/bootstrap.css.map +1 -0
  87. data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css +7 -0
  88. data/assets/themes/j1/modules/bootstrap/css/bootstrap.min.css.map +1 -0
  89. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js +4420 -0
  90. data/assets/themes/j1/modules/bootstrap/js/bootstrap.js.map +1 -0
  91. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js +7 -0
  92. data/assets/themes/j1/modules/bootstrap/js/bootstrap.min.js.map +1 -0
  93. data/assets/themes/j1/{extensions → modules}/bsDatepicker/css/datepicker.css +1 -1
  94. data/assets/themes/j1/{extensions → modules}/bsDatepicker/css/theme/uno.css +1 -1
  95. data/assets/themes/j1/{extensions → modules}/bsDatepicker/js/datepicker.js +1 -1
  96. data/assets/themes/j1/{extensions → modules}/bsDatepicker/less/datepicker.less +0 -0
  97. data/assets/themes/j1/{extensions → modules}/bsThemeSwitcher/js/switcher.js +20 -10
  98. data/assets/themes/j1/{extensions → modules}/bsThemeSwitcher/js/switcher.min.js +1 -1
  99. data/assets/themes/j1/{extensions → modules}/carousel/css/carousel.css +1 -1
  100. data/assets/themes/j1/{extensions → modules}/carousel/css/carousel.min.css +1 -1
  101. data/assets/themes/j1/{extensions → modules}/carousel/css/carousel_transitions.css +1 -1
  102. data/assets/themes/j1/{extensions → modules}/carousel/css/carousel_transitions.min.css +1 -1
  103. data/assets/themes/j1/{extensions → modules}/carousel/css/theme/uno.css +1 -1
  104. data/assets/themes/j1/{extensions → modules}/carousel/css/theme/uno.min.css +1 -1
  105. data/assets/themes/j1/{extensions → modules}/carousel/images/ajax-loader.gif +0 -0
  106. data/assets/themes/j1/{extensions → modules}/carousel/images/grabbing.png +0 -0
  107. data/assets/themes/j1/{extensions → modules}/carousel/images/owl-logo.png +0 -0
  108. data/assets/themes/j1/{extensions → modules}/carousel/images/owl.video.play.png +0 -0
  109. data/assets/themes/j1/{extensions → modules}/carousel/js/carousel.js +0 -0
  110. data/assets/themes/j1/{extensions → modules}/carousel/js/carousel.min.js +0 -0
  111. data/assets/themes/j1/{extensions → modules}/clipboard/LICENSE +0 -0
  112. data/assets/themes/j1/{extensions → modules}/clipboard/css/theme/uno.css +1 -1
  113. data/assets/themes/j1/{extensions → modules}/clipboard/css/theme/uno.min.css +1 -1
  114. data/assets/themes/j1/{extensions → modules}/clipboard/js/clipboard.js +0 -0
  115. data/assets/themes/j1/{extensions → modules}/clipboard/js/clipboard.min.js +0 -0
  116. data/assets/themes/j1/{extensions → modules}/iconifyAPI/js/iconify.min.js +0 -0
  117. data/assets/themes/j1/{extensions → modules}/iframeResizer/LICENSE +0 -0
  118. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/frame.absolute.html +2 -5
  119. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/frame.content.html +17 -44
  120. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/frame.hover.html +2 -5
  121. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/frame.nested.html +5 -7
  122. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/frame.textarea.html +1 -1
  123. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/frame.tolerance.html +3 -5
  124. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/index.html +4 -3
  125. data/assets/themes/j1/{extensions → modules}/iframeResizer/examples/two.html +4 -3
  126. data/assets/themes/j1/{extensions → modules}/iframeResizer/js/client/iframeResizer.contentWindow.js +0 -0
  127. data/assets/themes/j1/{extensions → modules}/iframeResizer/js/client/iframeResizer.contentWindow.map +0 -0
  128. data/assets/themes/j1/{extensions → modules}/iframeResizer/js/client/iframeResizer.contentWindow.min.js +0 -0
  129. data/assets/themes/j1/{extensions → modules}/iframeResizer/js/iframeResizer.js +0 -0
  130. data/assets/themes/j1/{extensions → modules}/iframeResizer/js/iframeResizer.map +0 -0
  131. data/assets/themes/j1/{extensions → modules}/iframeResizer/js/iframeResizer.min.js +0 -0
  132. data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.js +468 -0
  133. data/assets/themes/j1/modules/jekyllSearch/js/simple-jekyll-search.min.js +6 -0
  134. data/assets/themes/j1/{extensions → modules}/jqMouseWheel/README.md +0 -0
  135. data/assets/themes/j1/{extensions → modules}/jqMouseWheel/js/jquery.mousewheel.js +0 -0
  136. data/assets/themes/j1/{extensions → modules}/jqMouseWheel/js/jquery.mousewheel.min.js +0 -0
  137. data/assets/themes/j1/modules/jquery/js/jquery.js +10869 -0
  138. data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -0
  139. data/assets/themes/j1/{extensions → modules}/justifiedGallery/LICENSE +0 -0
  140. data/assets/themes/j1/{extensions → modules}/justifiedGallery/README.md +0 -0
  141. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/css/justifiedGallery.css +0 -0
  142. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/css/justifiedGallery.min.css +0 -0
  143. data/assets/themes/j1/{extensions/justifiedGallery/_versions/v4.0.0 → modules/justifiedGallery/_versions/v3.7.0}/css/theme/uno.css +1 -1
  144. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/js/justifiedGallery.3.7.0.js +0 -0
  145. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/js/justifiedGallery.js +0 -0
  146. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/js/justifiedGallery.min.js +0 -0
  147. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/less/.csslintrc +0 -0
  148. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v3.7.0/less/justifiedGallery.less +0 -0
  149. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v4.0.0/css/justifiedGallery.css +0 -0
  150. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v4.0.0/css/justifiedGallery.min.css +0 -0
  151. data/assets/themes/j1/{extensions/justifiedGallery/_versions/v3.7.0 → modules/justifiedGallery/_versions/v4.0.0}/css/theme/uno.css +1 -1
  152. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v4.0.0/js/jquery.justifiedGallery.js +0 -0
  153. data/assets/themes/j1/{extensions → modules}/justifiedGallery/_versions/v4.0.0/js/jquery.justifiedGallery.min.js +0 -0
  154. data/assets/themes/j1/{extensions → modules}/justifiedGallery/css/justifiedGallery.css +0 -0
  155. data/assets/themes/j1/{extensions → modules}/justifiedGallery/css/justifiedGallery.min.css +0 -0
  156. data/assets/themes/j1/{extensions → modules}/justifiedGallery/css/theme/uno.css +1 -1
  157. data/assets/themes/j1/{extensions → modules}/justifiedGallery/css/theme/uno.min.css +1 -1
  158. data/assets/themes/j1/{extensions → modules}/justifiedGallery/js/justifiedGallery.js +0 -0
  159. data/assets/themes/j1/{extensions → modules}/justifiedGallery/js/justifiedGallery.min.js +0 -0
  160. data/assets/themes/j1/{extensions → modules}/lightGallery/css/core/lg-fb-comment-box.css +0 -0
  161. data/assets/themes/j1/{extensions → modules}/lightGallery/css/core/lg-fb-comment-box.min.css +0 -0
  162. data/assets/themes/j1/{extensions → modules}/lightGallery/css/core/lg-transitions.css +0 -0
  163. data/assets/themes/j1/{extensions → modules}/lightGallery/css/core/lg-transitions.min.css +0 -0
  164. data/assets/themes/j1/{extensions → modules}/lightGallery/css/core/lightgallery.css +0 -0
  165. data/assets/themes/j1/{extensions → modules}/lightGallery/css/core/lightgallery.min.css +0 -0
  166. data/assets/themes/j1/{extensions → modules}/lightGallery/css/fonts/lg.eot +0 -0
  167. data/assets/themes/j1/{extensions → modules}/lightGallery/css/fonts/lg.svg +0 -0
  168. data/assets/themes/j1/{extensions → modules}/lightGallery/css/fonts/lg.ttf +0 -0
  169. data/assets/themes/j1/{extensions → modules}/lightGallery/css/fonts/lg.woff +0 -0
  170. data/assets/themes/j1/{extensions → modules}/lightGallery/css/img/loading.gif +0 -0
  171. data/assets/themes/j1/{extensions → modules}/lightGallery/css/img/video-play.png +0 -0
  172. data/assets/themes/j1/{extensions → modules}/lightGallery/css/img/vimeo-play.png +0 -0
  173. data/assets/themes/j1/{extensions → modules}/lightGallery/css/img/youtube-play.png +0 -0
  174. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/animation-w.png +0 -0
  175. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/customize-w.png +0 -0
  176. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/dynamic-w.png +0 -0
  177. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/facebook-icon.svg +0 -0
  178. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/googleplus-icon.svg +0 -0
  179. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/html5-w.png +0 -0
  180. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/linked-in.png +0 -0
  181. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/module-w.png +0 -0
  182. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/play-button.png +0 -0
  183. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/responsive-w.png +0 -0
  184. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/thumb-w.png +0 -0
  185. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/touch-w.png +0 -0
  186. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/twitter-icon.svg +0 -0
  187. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/twitter.png +0 -0
  188. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/video1-w.png +0 -0
  189. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/zoom-w.png +0 -0
  190. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/icons/zoom.png +0 -0
  191. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/uno.css +1 -1
  192. data/assets/themes/j1/{extensions → modules}/lightGallery/css/themes/uno.min.css +1 -1
  193. data/assets/themes/j1/{extensions → modules}/lightGallery/js/core/lightgallery.js +0 -0
  194. data/assets/themes/j1/{extensions → modules}/lightGallery/js/core/lightgallery.min.js +0 -0
  195. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/j1/j1-video.js +0 -0
  196. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/j1/j1-video.min.js +0 -0
  197. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-autoplay.js +0 -0
  198. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-autoplay.min.js +0 -0
  199. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-fullscreen.js +0 -0
  200. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-fullscreen.min.js +0 -0
  201. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-hash.js +0 -0
  202. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-hash.min.js +0 -0
  203. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-pager.js +0 -0
  204. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-pager.min.js +0 -0
  205. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-share.js +0 -0
  206. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-share.min.js +0 -0
  207. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-thumbnail.js +0 -0
  208. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-thumbnail.min.js +0 -0
  209. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-video.js +0 -0
  210. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-video.min.js +0 -0
  211. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-zoom.js +0 -0
  212. data/assets/themes/j1/{extensions → modules}/lightGallery/js/modules/lg-zoom.min.js +0 -0
  213. data/assets/themes/j1/{extensions → modules}/lightbox/LICENSE +0 -0
  214. data/assets/themes/j1/{extensions → modules}/lightbox/css/lightbox.css +1 -1
  215. data/assets/themes/j1/{extensions → modules}/lightbox/css/lightbox.min.css +1 -1
  216. data/assets/themes/j1/{extensions → modules}/lightbox/css/theme/uno.css +1 -1
  217. data/assets/themes/j1/{extensions → modules}/lightbox/css/theme/uno.min.css +1 -1
  218. data/assets/themes/j1/{extensions → modules}/lightbox/images/close.png +0 -0
  219. data/assets/themes/j1/{extensions → modules}/lightbox/images/loading.gif +0 -0
  220. data/assets/themes/j1/{extensions → modules}/lightbox/images/next.png +0 -0
  221. data/assets/themes/j1/{extensions → modules}/lightbox/images/prev.png +0 -0
  222. data/assets/themes/j1/{extensions → modules}/lightbox/js/lightbox.js +0 -0
  223. data/assets/themes/j1/{extensions → modules}/lightbox/js/lightbox.min.js +0 -0
  224. data/assets/themes/j1/{extensions → modules}/mmenuLight/css/mmenu.css +1 -1
  225. data/assets/themes/j1/{extensions → modules}/mmenuLight/css/mmenu.min.css +0 -0
  226. data/assets/themes/j1/{extensions/mmenuLight/css/theme/uno.min.css → modules/mmenuLight/css/theme/uno.css} +21 -12
  227. data/assets/themes/j1/{extensions/mmenuLight/css/theme/uno.css → modules/mmenuLight/css/theme/uno.min.css} +2 -2
  228. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +563 -0
  229. data/assets/themes/j1/{extensions/mmenuLight/js/mmenu.js → modules/mmenuLight/js/mmenu.min.js} +1 -1
  230. data/assets/themes/j1/{extensions → modules}/noUISlider/LICENSE +0 -0
  231. data/assets/themes/j1/{extensions → modules}/noUISlider/css/nouislider.css +0 -0
  232. data/assets/themes/j1/{extensions → modules}/noUISlider/css/nouislider.min.css +0 -0
  233. data/assets/themes/j1/{extensions → modules}/noUISlider/js/nouislider.js +0 -0
  234. data/assets/themes/j1/{extensions → modules}/noUISlider/js/nouislider.min.js +0 -0
  235. data/assets/themes/j1/modules/polyfills/js/msie.js +140 -0
  236. data/assets/themes/j1/modules/popper/js/popper.js +2623 -0
  237. data/assets/themes/j1/modules/popper/js/popper.js.map +1 -0
  238. data/assets/themes/j1/modules/popper/js/popper.min.js +4 -0
  239. data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -0
  240. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.dark/theme.css +0 -0
  241. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.light/theme.css +0 -0
  242. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.monokai.dark/theme.css +0 -0
  243. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.monokai.light/theme.css +0 -0
  244. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.monokai/theme.css +0 -0
  245. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.solarized.dark/theme.css +0 -0
  246. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.solarized.light/theme.css +0 -0
  247. data/assets/themes/j1/{extensions → modules}/rouge/css/base16.solarized/theme.css +0 -0
  248. data/assets/themes/j1/{extensions → modules}/rouge/css/base16/theme.css +0 -0
  249. data/assets/themes/j1/{extensions → modules}/rouge/css/colorful/theme.css +0 -0
  250. data/assets/themes/j1/{extensions → modules}/rouge/css/github/theme.css +0 -0
  251. data/assets/themes/j1/{extensions → modules}/rouge/css/gruvbox.dark/theme.css +0 -0
  252. data/assets/themes/j1/{extensions → modules}/rouge/css/gruvbox.light/theme.css +0 -0
  253. data/assets/themes/j1/{extensions → modules}/rouge/css/gruvbox/theme.css +0 -0
  254. data/assets/themes/j1/{extensions → modules}/rouge/css/igorpro/theme.css +0 -0
  255. data/assets/themes/j1/{extensions → modules}/rouge/css/molokai/theme.css +0 -0
  256. data/assets/themes/j1/{extensions → modules}/rouge/css/monokai.sublime/theme.css +0 -0
  257. data/assets/themes/j1/{extensions → modules}/rouge/css/monokai/theme.css +0 -0
  258. data/assets/themes/j1/{extensions → modules}/rouge/css/pastie/theme.css +0 -0
  259. data/assets/themes/j1/{extensions → modules}/rouge/css/thankful_eyes/theme.css +0 -0
  260. data/assets/themes/j1/{extensions → modules}/rouge/css/tulip/theme.css +0 -0
  261. data/assets/themes/j1/modules/tocbot/css/theme/uno.css +89 -0
  262. data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +89 -0
  263. data/assets/themes/j1/modules/tocbot/css/tocbot.css +75 -0
  264. data/assets/themes/j1/modules/tocbot/css/tocbot.min.css +19 -0
  265. data/assets/themes/j1/modules/tocbot/js/tocbot.js +19 -0
  266. data/assets/themes/j1/modules/tocbot/js/tocbot.min.js +19 -0
  267. data/assets/themes/j1/{extensions → modules}/twemoji/js/LICENSE +0 -0
  268. data/assets/themes/j1/{extensions → modules}/twemoji/js/picker/LICENSE +0 -0
  269. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +275 -0
  270. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +275 -0
  271. data/assets/themes/j1/{extensions → modules}/twemoji/js/twemoji.js +0 -1
  272. data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +25 -0
  273. data/assets/themes/j1/modules/util/js/js.cookie.js +163 -0
  274. data/assets/themes/j1/modules/util/js/lite-url.js +203 -0
  275. data/assets/themes/j1/modules/util/js/lite-url.min.js +7 -0
  276. data/assets/themes/j1/modules/util/js/log4javascript.js +264 -0
  277. data/assets/themes/j1/modules/util/js/platform.js +1260 -0
  278. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/city.css +0 -0
  279. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/city.min.css +0 -0
  280. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/fantasy.css +0 -0
  281. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/fantasy.min.css +0 -0
  282. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/forest.css +0 -0
  283. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/forest.min.css +0 -0
  284. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/sea.css +0 -0
  285. data/assets/themes/j1/{extensions → modules}/videojs/css/themes/sea.min.css +0 -0
  286. data/assets/themes/j1/{extensions → modules}/videojs/css/video-js.css +0 -0
  287. data/assets/themes/j1/{extensions → modules}/videojs/css/video-js.min.css +0 -0
  288. data/assets/themes/j1/{extensions → modules}/videojs/js/video.js +0 -0
  289. data/assets/themes/j1/{extensions → modules}/videojs/js/video.min.js +0 -0
  290. data/assets/themes/j1/{extensions → modules}/vimeo/froogaloop/js/froogaloop2.min.js +0 -0
  291. data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.js +0 -0
  292. data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.js.map +0 -0
  293. data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.min.js +0 -0
  294. data/assets/themes/j1/{extensions → modules}/vimeo/player/js/player.min.js.map +0 -0
  295. data/lib/j1/version.rb +1 -1
  296. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +391 -389
  297. data/lib/starter_web/Gemfile +20 -13
  298. data/lib/starter_web/_config.yml +2 -2
  299. data/lib/starter_web/_data/blocks/banner.yml +2 -2
  300. data/lib/starter_web/_data/blocks/panel.yml +8 -8
  301. data/lib/starter_web/_data/modules/{cookie_consent.yml → back2top.yml} +8 -14
  302. data/lib/starter_web/_data/modules/cookiebar.yml +2 -2
  303. data/lib/starter_web/_data/modules/defaults/attics.yml +5 -2
  304. data/lib/starter_web/_data/modules/defaults/authentication.yml +8 -9
  305. data/lib/starter_web/_data/modules/defaults/back2top.yml +146 -0
  306. data/lib/starter_web/_data/modules/defaults/cookiebar.yml +101 -50
  307. data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +4 -1
  308. data/lib/starter_web/_data/modules/defaults/navigator.yml +15 -13
  309. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  310. data/lib/starter_web/_data/modules/navigator_menu.yml +6 -7
  311. data/lib/starter_web/_data/modules/themer.yml +9 -9
  312. data/lib/starter_web/_data/modules/toccer.yml +1 -1
  313. data/lib/starter_web/_data/resources.yml +267 -170
  314. data/lib/starter_web/_data/template_settings.yml +30 -21
  315. data/lib/starter_web/_data/utilities/util_srv.yml +1 -1
  316. data/lib/starter_web/_plugins/asciidoctor-extensions/banner.rb +43 -0
  317. data/lib/starter_web/_plugins/asciidoctor-extensions/panel.rb +43 -0
  318. data/lib/starter_web/_plugins/{asciidoctor-extensions/lorem-inline.rb → lorem-inline.rb} +0 -0
  319. data/lib/starter_web/assets/images/modules/attics/aditya-joshi-1920x1280.jpg +0 -0
  320. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.jpg +0 -0
  321. data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
  322. data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
  323. data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
  324. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  325. data/lib/starter_web/assets/images/modules/attics/banner/library-1920x800-bw.jpg +0 -0
  326. data/lib/starter_web/assets/images/modules/attics/banner/signpost-1920x800-bw.jpg +0 -0
  327. data/lib/starter_web/assets/images/modules/attics/banner/water-journal-1280x600.jpg +0 -0
  328. data/lib/starter_web/assets/images/modules/attics/banner/write-1280x600-bw.jpg +0 -0
  329. data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
  330. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
  331. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
  332. data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
  333. data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
  334. data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
  335. data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
  336. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  337. data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
  338. data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
  339. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  340. data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
  341. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
  342. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
  343. data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
  344. data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
  345. data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
  346. data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
  347. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  348. data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
  349. data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
  350. data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
  351. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  352. data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
  353. data/lib/starter_web/assets/images/modules/carousel/cats/cat-2.jpg +0 -0
  354. data/lib/starter_web/assets/images/modules/carousel/cats/cat-3.jpg +0 -0
  355. data/lib/starter_web/assets/images/modules/carousel/cats/cat-4.jpg +0 -0
  356. data/lib/starter_web/assets/images/modules/carousel/cats/cat-5.jpg +0 -0
  357. data/lib/starter_web/assets/images/modules/carousel/cats/cat-6.jpg +0 -0
  358. data/lib/starter_web/assets/images/modules/carousel/cats/cat-7.jpg +0 -0
  359. data/lib/starter_web/assets/images/modules/carousel/cats/cat-8.jpg +0 -0
  360. data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
  361. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  362. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  363. data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
  364. data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
  365. data/lib/starter_web/assets/images/modules/gallery/mega_cities/andreas-brucker_b.jpg +0 -0
  366. data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
  367. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  368. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
  369. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  370. data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
  371. data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
  372. data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
  373. data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
  374. data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
  375. data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
  376. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  377. data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
  378. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
  379. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
  380. data/lib/starter_web/assets/images/modules/lightbox/close.png +0 -0
  381. data/lib/starter_web/assets/images/modules/lightbox/loading.gif +0 -0
  382. data/lib/starter_web/assets/images/modules/lightbox/next.png +0 -0
  383. data/lib/starter_web/assets/images/modules/lightbox/prev.png +0 -0
  384. data/lib/starter_web/assets/images/pages/material/apple-touch-icon.png +0 -0
  385. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-1.jpg +0 -0
  386. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-2.jpg +0 -0
  387. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-3.jpg +0 -0
  388. data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-1920x1000-bw.jpg +0 -0
  389. data/lib/starter_web/assets/images/pages/roundtrip/cards-1920x1280-bw.jpg +0 -0
  390. data/lib/starter_web/assets/images/pages/roundtrip/emojies-1920x1280-bw.jpg +0 -0
  391. data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920x1280-bw.jpg +0 -0
  392. data/lib/starter_web/assets/images/pages/roundtrip/images-1920x1280-bw.jpg +0 -0
  393. data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1920x1280-bw.jpg +0 -0
  394. data/lib/starter_web/assets/images/pages/roundtrip/tables-1920x1280-bw.jpg +0 -0
  395. data/lib/starter_web/assets/images/pages/roundtrip/themes-1920x1280-bw.jpg +0 -0
  396. data/lib/starter_web/assets/images/pages/roundtrip/typography-1920x1280-bw.jpg +0 -0
  397. data/lib/starter_web/assets/videos/gallery/adriana-lima-poster.jpg +0 -0
  398. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  399. data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
  400. data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
  401. data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
  402. data/lib/starter_web/assets/videos/headers/still/underground-broadway.jpg +0 -0
  403. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
  404. data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1-template.adoc.erb +3 -4
  405. data/lib/starter_web/collections/posts/public/featured/_posts/2018-05-01-confusion-about-base-url.adoc +1 -1
  406. data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +17 -17
  407. data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +36 -40
  408. data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +4 -6
  409. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-20-minneapolis.adoc +1 -3
  410. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc +3 -3
  411. data/lib/starter_web/collections/posts/public/wikipedia/_posts/2016-11-26-columbia-river.adoc +4 -4
  412. data/lib/starter_web/index.html +3 -5
  413. data/lib/starter_web/package.json +10 -10
  414. data/lib/starter_web/pages/{public → protected}/site_search.adoc +2 -2
  415. data/lib/starter_web/pages/public/blog/navigator/archive.html +24 -18
  416. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +39 -34
  417. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +43 -30
  418. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +29 -29
  419. data/lib/starter_web/pages/public/blog/navigator/index.html +2 -2
  420. data/lib/starter_web/pages/public/learn/examples/floating_div.adoc +1 -1
  421. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +1 -0
  422. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.1.asciidoc +1 -2
  423. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.adoc +1 -2
  424. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +16 -18
  425. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/attributes.asciidoc +3 -3
  426. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_info.asciidoc +5 -2
  427. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_left_warning.asciidoc +2 -2
  428. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_right_danger.asciidoc +2 -2
  429. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_central_success.asciidoc +2 -2
  430. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_full_height_left_info.asciidoc +2 -2
  431. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_full_height_right_success.asciidoc +2 -2
  432. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_info.asciidoc +3 -3
  433. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_left_info.asciidoc +2 -2
  434. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_top_right_success.asciidoc +2 -2
  435. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_demo.asciidoc +337 -0
  436. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +2 -2
  437. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +15 -12
  438. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +2 -2
  439. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
  440. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +10 -37
  441. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +2 -2
  442. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +20 -22
  443. data/lib/starter_web/pages/public/{previewer/mdb_preview → learn/roundtrip/510_mdb_preview}/000_includes/attributes.asciidoc +0 -0
  444. data/lib/starter_web/pages/public/{previewer/mdb_preview → learn/roundtrip/510_mdb_preview}/000_includes/documents/100_buttons.asciidoc +0 -0
  445. data/lib/starter_web/pages/public/{previewer/mdb_preview → learn/roundtrip/510_mdb_preview}/mdb_previewer.adoc +0 -0
  446. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/attributes.asciidoc +1 -1
  447. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_info.asciidoc +1 -1
  448. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +1 -1
  449. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +1 -1
  450. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_central_success.asciidoc +1 -1
  451. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +1 -1
  452. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +1 -1
  453. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_info.asciidoc +1 -1
  454. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_left_info.asciidoc +1 -1
  455. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_right_success.asciidoc +1 -1
  456. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/419_advanced_modals_html.asciidoc +5 -5
  457. data/lib/starter_web/pages/public/learn/whats_up.adoc +1 -2
  458. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
  459. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -2
  460. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +215 -179
  461. data/lib/starter_web/pages/public/previewer/iframer.adoc +3 -2
  462. data/lib/starter_web/pages/public/previewer/justified_gallery.html +1 -1
  463. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -2
  464. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +1 -1
  465. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  466. data/lib/starter_web/utilsrv/package.json +1 -1
  467. metadata +256 -204
  468. data/assets/themes/j1/adapter/js/cookie_consent.js +0 -286
  469. data/assets/themes/j1/core/css/custom.scss +0 -28
  470. data/assets/themes/j1/core/css/globals.css +0 -14523
  471. data/assets/themes/j1/core/css/globals.min.css +0 -1
  472. data/assets/themes/j1/core/css/uno.scss +0 -28
  473. data/assets/themes/j1/core/css/vendor.scss +0 -28
  474. data/assets/themes/j1/extensions/twemoji/js/picker/twemoji-picker.js +0 -21
  475. data/assets/themes/j1/extensions/twemoji/js/picker/twemoji-picker.min.js +0 -21
  476. data/assets/themes/j1/extensions/twemoji/js/twemoji.min.js +0 -25
  477. data/lib/starter_web/assets/videos/headers/still/underground-broadway.png +0 -0
  478. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.png +0 -0
  479. data/lib/starter_web/pages/public/clear_button.adoc +0 -121
  480. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +0 -928
@@ -34,8 +34,7 @@ regenerate: true
34
34
 
35
35
  {% comment %} Set config files
36
36
  -------------------------------------------------------------------------------- {% endcomment %}
37
- {% assign site_config = site %}
38
- {% assign environment = site_config.environment %}
37
+ {% assign environment = site.environment %}
39
38
  {% assign template_config = site.data.template_settings %}
40
39
  {% assign modules = site.data.modules %}
41
40
 
@@ -84,10 +83,11 @@ j1.adapter['ssm'] = (function (j1, window) {
84
83
  // ---------------------------------------------------------------------------
85
84
  // globals
86
85
  // ---------------------------------------------------------------------------
87
- var environment = '{{environment}}';
88
- var dclFinished = false;
89
- var moduleOptions = {};
90
- var cookie_names = j1.getCookieNames();
86
+ const isMobile = j1.core.isMobile();
87
+ var environment = '{{environment}}';
88
+ var dclFinished = false;
89
+ var moduleOptions = {};
90
+ var cookie_names = j1.getCookieNames();
91
91
  var user_state;
92
92
  var user_session;
93
93
  var user_data;
@@ -96,7 +96,6 @@ j1.adapter['ssm'] = (function (j1, window) {
96
96
  var _this;
97
97
  var logger;
98
98
  var logText;
99
- const isMobile = j1.core.isMobile();
100
99
 
101
100
  // ---------------------------------------------------------------------------
102
101
  // helper functions
@@ -112,11 +111,21 @@ j1.adapter['ssm'] = (function (j1, window) {
112
111
  // -------------------------------------------------------------------------
113
112
  init: function (options) {
114
113
 
115
- // create seetings object from frontmatterOptions
116
- var frontmatterOptions = options != null ? $.extend({}, options) : {};
114
+ // -----------------------------------------------------------------------
115
+ // globals
116
+ // -----------------------------------------------------------------------
117
+ _this = j1.adapter.ssm;
118
+ logger = log4javascript.getLogger('j1.adapter.ssm');
119
+ sect12Nodes = $('[class$="sect1"],[class$="sect2"');
120
+ sect1Nodes = $('[class$="sect1"]');
117
121
 
118
122
  // initialize state flag
119
- j1.adapter.ssm.state = 'pending';
123
+ _this.setState('started');
124
+ logger.info('set module state to: ' + _this.getState());
125
+ logger.info('module is being initialized');
126
+
127
+ // create settings object from frontmatterOptions
128
+ var frontmatterOptions = options != null ? $.extend({}, options) : {};
120
129
 
121
130
  // -----------------------------------------------------------------------
122
131
  // defaults
@@ -126,14 +135,6 @@ j1.adapter['ssm'] = (function (j1, window) {
126
135
  generated: '{{site.time}}'
127
136
  }, options);
128
137
 
129
- // -----------------------------------------------------------------------
130
- // globals
131
- // -----------------------------------------------------------------------
132
- _this = j1.adapter.ssm;
133
- logger = log4javascript.getLogger('j1.adapter.ssm');
134
- sect12Nodes = $('[class$="sect1"],[class$="sect2"');
135
- sect1Nodes = $('[class$="sect1"]');
136
-
137
138
  // -----------------------------------------------------------------------
138
139
  // options loader
139
140
  // -----------------------------------------------------------------------
@@ -154,36 +155,15 @@ j1.adapter['ssm'] = (function (j1, window) {
154
155
 
155
156
  // save config settings into the mmenu object for global access
156
157
  //
157
- j1.adapter.ssm['moduleOptions'] = moduleOptions;
158
-
159
- _this.setState('started');
160
- logger.info('set module state to: ' + _this.getState());
161
- logger.info('module is being initialized');
162
-
163
- // jadams, 2020-06-24: Set max_count to 100 what cause to wait 2.5s
164
- // for J1 Navigator to finish (init)
165
- //
166
- var interval_count = 0;
167
- var max_count = 100;
158
+ _this['moduleOptions'] = moduleOptions;
168
159
 
169
160
  var dependencies_met_navigator = setInterval(function() {
170
- interval_count += 1;
171
- if ( j1.adapter.navigator.getState() == 'finished' ) {
172
- logger.info('dependencies of module navigator met for: mmenu');
173
- logger.info('dependencies of module navigator met after: ' + interval_count * 25 + ' ms');
174
- j1.core.ssm.init (moduleOptions);
175
- _this.ssmLoader(moduleOptions);
176
- clearInterval(dependencies_met_navigator);
177
- }
178
- if (interval_count > max_count) {
179
- logger.warn('dependency check failed for module: navigator');
180
- logger.warn('dependencies of module navigator met after: ' + interval_count * 25 + ' ms');
181
- j1.core.ssm.init (moduleOptions);
161
+ if (j1.adapter.navigator.getState() == 'finished') {
162
+ logger.info('met dependencies for: navigator');
182
163
  _this.ssmLoader(moduleOptions);
183
164
  clearInterval(dependencies_met_navigator);
184
165
  }
185
166
  }, 25);
186
-
187
167
  }, // END init
188
168
 
189
169
  // -------------------------------------------------------------------------
@@ -202,50 +182,53 @@ j1.adapter['ssm'] = (function (j1, window) {
202
182
 
203
183
  {% assign id_list = "" %}
204
184
 
205
- $.when (
206
- {% assign menu_id = ssm_options.xhr_container_id %}
207
- {% assign xhr_data_path = ssm_options.xhr_data_path %}
208
- j1.xhrData (
209
- 'j1.adapter.ssm', {
210
- xhr_container_id: '{{menu_id}}',
211
- xhr_data_path: '{{xhr_data_path}}' },
212
- 'data_loaded')
213
- ).done (function (ssm_html_loaded) {
214
- // ---------------------------------------------------------------------
215
- // Initialize MMenu Navs and Drawers
216
- // ---------------------------------------------------------------------
217
- var dependencies_met_mmenu_initialized = setInterval (function () {
218
- if (ssm_html_loaded && $('#{{ssm_options.menu_id}}').length) {
219
- _this.setState('loaded');
220
- logger.info('set module state to: ' + _this.getState());
221
- logger.info('HTML data for ssm: ' + _this.getState());
222
- if(isToc) {
223
- logger.info('found toc in page: enabled');
224
- if ( j1.adapter.toccer.getState() == 'finished' ) {
225
- logger.info('dependency met for module : toccer');
226
- _this.setState('processing');
227
- logger.info('set module state to: ' + _this.getState());
228
- logger.info('initialize ssm menu');
229
- (ssmOptions.mode === 'icon')
230
- ? logger.info('ssm mode detected: icon')
231
- : logger.info('ssm mode detected: menu');
232
- _this.scrollSpy(ssmOptions);
233
- _this.buttonInitializer(ssmOptions);
234
- clearInterval(dependencies_met_mmenu_initialized);
235
- }
236
- } else {
237
- logger.info('found toc in page: disabled');
238
- logger.info('disable toc menu and prev|next section buttons');
239
- $('#ssm_toc').closest('.ssm-btn').hide();
240
- $('#ssm_previous_section').closest('.ssm-btn').hide();
241
- $('#ssm_next_section').closest('.ssm-btn').hide();
185
+ j1.xhrData ({
186
+ xhr_container_id: '{{ssm_options.xhr_container_id}}',
187
+ xhr_data_path: '{{ssm_options.xhr_data_path}}' },
188
+ 'j1.adapter.ssm',
189
+ 'data_loaded');
190
+
191
+ // ---------------------------------------------------------------------
192
+ // Initialize MMenu Navs and Drawers
193
+ // ---------------------------------------------------------------------
194
+ var dependencies_met_mmenu_initialized = setInterval (function () {
195
+ if (j1.xhrDOMState['#{{ssm_options.xhr_container_id}}'] == 'success') {
196
+ _this.setState('loaded');
197
+ logger.info('set module state to: ' + _this.getState());
198
+ logger.info('HTML data for ssm: ' + _this.getState());
199
+ j1.core.ssm.init (moduleOptions);
200
+ if(isToc) {
201
+ logger.info('found toc in page: enabled');
202
+ if ( j1.adapter.toccer.getState() == 'finished' ) {
203
+ logger.info('met dependencies for: toccer');
204
+ _this.setState('processing');
205
+ logger.info('set module state to: ' + _this.getState());
206
+ logger.info('initialize ssm menu');
207
+ (ssmOptions.mode === 'icon')
208
+ ? logger.info('ssm mode detected: icon')
209
+ : logger.info('ssm mode detected: menu');
242
210
  _this.scrollSpy(ssmOptions);
243
211
  _this.buttonInitializer(ssmOptions);
212
+
213
+ _this.setState('finished');
214
+ logger.info('state: ' + _this.getState());
215
+ logger.info('module initialized successfully');
216
+ logger.info('met dependencies for: xhrData');
244
217
  clearInterval(dependencies_met_mmenu_initialized);
245
218
  }
219
+ } else {
220
+ logger.info('found toc in page: disabled');
221
+ logger.info('disable toc menu and prev|next section buttons');
222
+ $('#ssm_toc').closest('.ssm-btn').hide();
223
+ $('#ssm_previous_section').closest('.ssm-btn').hide();
224
+ $('#ssm_next_section').closest('.ssm-btn').hide();
225
+ _this.scrollSpy(ssmOptions);
226
+ _this.buttonInitializer(ssmOptions);
227
+ logger.info('met dependencies for: xhrData');
228
+ clearInterval(dependencies_met_mmenu_initialized);
246
229
  }
247
- }, 25); // END dependencies_met_mmenu_loaded
248
- }); // END done
230
+ }
231
+ }, 25); // END dependencies_met_mmenu_initialized
249
232
  }, // END dataLoader
250
233
 
251
234
  // -------------------------------------------------------------------------
@@ -276,7 +259,7 @@ j1.adapter['ssm'] = (function (j1, window) {
276
259
  $('#{{button_id}}').each(function(e) {
277
260
  var $this = $(this);
278
261
  $this.on('click', function(e) {
279
- j1.adapter.ssm.{{item.event_handler}}(sect1Nodes);
262
+ _this.{{item.event_handler}}(sect1Nodes);
280
263
  });
281
264
  });
282
265
  } else {
@@ -461,22 +444,6 @@ j1.adapter['ssm'] = (function (j1, window) {
461
444
  return true;
462
445
  }, // END messageHandler
463
446
 
464
- // -------------------------------------------------------------------------
465
- // setState
466
- // Set the current (processing) state of the module
467
- // -------------------------------------------------------------------------
468
- setState: function (stat) {
469
- j1.adapter.ssm.state = stat;
470
- }, // END setState
471
-
472
- // -------------------------------------------------------------------------
473
- // getState
474
- // Returns the current (processing) state of the module
475
- // -------------------------------------------------------------------------
476
- getState: function () {
477
- return j1.adapter.ssm.state;
478
- }, // END state
479
-
480
447
  // -------------------------------------------------------------------------
481
448
  // Manage (top) position and sizes (@media breakpoints) of the
482
449
  // SSM container depending on the size of the page header (attic)
@@ -526,11 +493,27 @@ j1.adapter['ssm'] = (function (j1, window) {
526
493
  ? $ssmContainer.css('display','block')
527
494
  : $ssmContainer.css('display','none');
528
495
 
529
- logger.debug('content pos detected as: ' + m + 'px');
530
- logger.debug('scroll pos detected as: ' + scrollPos + 'px');
496
+ // logger.debug('content pos detected as: ' + m + 'px');
497
+ // logger.debug('scroll pos detected as: ' + scrollPos + 'px');
531
498
  }); // END setTop on scroll
532
499
 
533
- } // END scrollSpy
500
+ }, // END scrollSpy
501
+
502
+ // -------------------------------------------------------------------------
503
+ // setState()
504
+ // Sets the current (processing) state of the module
505
+ // -------------------------------------------------------------------------
506
+ setState: function (stat) {
507
+ _this.state = stat;
508
+ }, // END setState
509
+
510
+ // -------------------------------------------------------------------------
511
+ // getState()
512
+ // Returns the current (processing) state of the module
513
+ // -------------------------------------------------------------------------
514
+ getState: function () {
515
+ return _this.state;
516
+ } // END getState
534
517
 
535
518
  }; // END return
536
519
  })(j1, window);
@@ -19,7 +19,7 @@ regenerate: true
19
19
  #
20
20
  # -----------------------------------------------------------------------------
21
21
  # Test data:
22
- # {{ config | debug }}
22
+ # {{config| debug }}
23
23
  # -----------------------------------------------------------------------------
24
24
  {% endcomment %}
25
25
 
@@ -37,7 +37,6 @@ regenerate: true
37
37
 
38
38
  {% comment %} Set config files
39
39
  -------------------------------------------------------------------------------- {% endcomment %}
40
- {% assign site_config = site %}
41
40
  {% assign template_config = site.data.template_settings %}
42
41
  {% assign blocks = site.data.blocks %}
43
42
  {% assign modules = site.data.modules %}
@@ -49,7 +48,7 @@ regenerate: true
49
48
 
50
49
  {% comment %} Set config options
51
50
  -------------------------------------------------------------------------------- {% endcomment %}
52
- {% assign themer_options = themer_defaults | merge: themer_settings %}
51
+ {% assign themer_options = themer_defaults| merge: themer_settings %}
53
52
  {% assign default_theme = template_config.bootstrap.default_theme %}
54
53
  {% assign vendor_css = "vendor" %}
55
54
  {% assign theme_base = "core/css" %}
@@ -99,20 +98,19 @@ regenerate: true
99
98
  'use strict';
100
99
 
101
100
  j1.adapter['themer'] = (function (j1, window) {
102
-
103
101
  // ---------------------------------------------------------------------------
104
102
  // globals
105
103
  // ---------------------------------------------------------------------------
106
- var environment = '{{environment}}';
107
- var moduleOptions = {};
108
- var user_state = {};
109
- var cookie_names = j1.getCookieNames();
110
- var cookie_user_state_name = cookie_names.user_state;
111
- var user_state_detected = false;
112
- var id = 'default';
113
- var cssFile = '{{themer_options.defaultCssFile}}';
114
- var interval_count = 0;
115
- var max_count = 4;
104
+ var environment = '{{environment}}';
105
+ var moduleOptions = {};
106
+ var user_state = {};
107
+ var cookie_names = j1.getCookieNames();
108
+ var cookie_user_state_name = cookie_names.user_state;
109
+ var user_state_detected = false;
110
+ var id = 'default';
111
+ var cssFile = '{{themer_options.defaultCssFile}}';
112
+ var interval_count = 0;
113
+ var max_count = 4;
116
114
  var user_state_json;
117
115
  var user_state_cookie;
118
116
  var _this;
@@ -135,7 +133,6 @@ j1.adapter['themer'] = (function (j1, window) {
135
133
  // ---------------------------------------------------------------------------
136
134
  // helper functions
137
135
  // ---------------------------------------------------------------------------
138
-
139
136
  // See: https://stackoverflow.com/questions/16965515/how-to-get-a-style-attribute-from-a-css-class-by-javascript-jquery
140
137
  // Example: getStyleValueFromStyleSheet('bg-primary', 'background-color', 'vendor');
141
138
  function styleSheetLoaded(styleSheet) {
@@ -148,10 +145,9 @@ j1.adapter['themer'] = (function (j1, window) {
148
145
  return true;;
149
146
  }
150
147
  }
151
- return false;
152
148
  }
153
149
 
154
- {% comment %} Unused
150
+ {% comment %} Unused code
155
151
  ------------------------------------------------------------------------------
156
152
  // NOTE: Does not work anymore because of CORS check violation
157
153
  // See: https://stackoverflow.com/questions/16965515/how-to-get-a-style-attribute-from-a-css-class-by-javascript-jquery
@@ -177,27 +173,25 @@ j1.adapter['themer'] = (function (j1, window) {
177
173
  return style;
178
174
  }
179
175
  }
180
-
181
- return null;
182
176
  }
183
177
  ------------------------------------------------------------------------------ {% endcomment %}
184
178
 
185
-
186
179
  // ---------------------------------------------------------------------------
187
180
  // Main object
188
181
  // ---------------------------------------------------------------------------
189
182
  return {
190
-
191
183
  // -------------------------------------------------------------------------
192
184
  // initializer
193
185
  // -------------------------------------------------------------------------
194
186
  init: function () {
195
- // initialize state flag
196
- j1.adapter.themer.state = 'started';
197
-
187
+ // -----------------------------------------------------------------------
188
+ // globals
189
+ // -----------------------------------------------------------------------
198
190
  _this = j1.adapter.themer;
199
191
  logger = log4javascript.getLogger('j1.adapter.themer');
200
192
 
193
+ // initialize state flag
194
+ _this.state = 'started';
201
195
  logger.info('state: ' + _this.getState());
202
196
 
203
197
  // Detect|Set J1 UserState
@@ -217,7 +211,11 @@ j1.adapter['themer'] = (function (j1, window) {
217
211
  vendorCssHtml = '<link rel="stylesheet" type="text/css" id="default" href="{{asset_path}}/{{theme_base}}/{{vendor_css}}.{{theme_ext}}" />';
218
212
  $('head').append(vendorCssHtml);
219
213
  }
220
- $('head').append(themeCssHtml);
214
+
215
+ // Don't load Theme CSS twice! (loaded already as resource 'core')
216
+ if (themeName != default_theme_name) {
217
+ $('head').append(themeCssHtml);
218
+ }
221
219
 
222
220
  // Append|Remove theme extentions
223
221
  // TODO: Make default theme name 'Uno' configurable
@@ -231,50 +229,53 @@ j1.adapter['themer'] = (function (j1, window) {
231
229
  logger.info('themes detected as: enabled');
232
230
  logger.info('theme is being initialized: ' + themeName);
233
231
 
234
- /* eslint-disable */
235
- $.when (
236
- $('#ThemeList').bootstrapThemeSwitcher.defaults = {
237
- debug: {{ themer_options.debug | json }},
238
- saveToCookie: {{ themer_options.saveToCookie | json }},
239
- cssThemeLink: {{ themer_options.cssThemeLink | json }},
240
- cookieThemeName: {{ themer_options.cookieThemeName | json }},
241
- cookieDefaultThemeName: {{ themer_options.cookieDefaultThemeName | json }},
242
- cookieThemeCss: {{ themer_options.cookieThemeCss | json }},
243
- cookieThemeExtensionCss: {{ themer_options.cookieThemeExtensionCss | json }},
244
- cookieExpiration: {{ themer_options.cookieExpiration | json }},
245
- cookiePath: {{ themer_options.cookiePath | json }},
246
- defaultCssFile: {{ themer_options.defaultCssFile | json }},
247
- bootswatchApiUrl: {{ themer_options.bootswatchApiUrl | json }},
248
- bootswatchApiVersion: {{ themer_options.bootswatchApiVersion | json }},
249
- loadFromBootswatch: {{ themer_options.loadFromBootswatch | json }},
250
- localFeed: {{ themer_options.localFeed | json }},
251
- excludeBootswatch: {{ themer_options.excludeBootswatch | json }},
252
- includeBootswatch: {{ themer_options.includeBootswatch | json }},
253
- skipIncludeBootswatch: {{ themer_options.skipIncludeBootswatch | json }}
254
- })
255
- /* eslint-enable */
256
- .done (function(ThemeList) {
257
- if (themeName === 'Uno' || themeName === 'Bootstrap') {
258
- theme = environment === 'production'
259
- ? themeName.toLowerCase() + '.min.css'
260
- : themeName.toLowerCase() + '.css';
261
- } else {
262
- theme = 'bootstrap.css'; // fallback
232
+ var dependencies_met_navigator_started = setInterval (function () {
233
+ if (j1.adapter.navigator.getState() == 'started') {
234
+ /* eslint-disable */
235
+ // initialize Bootswatch Theme Switcher
236
+ $('#ThemeList').bootstrapThemeSwitcher.defaults = {
237
+ debug: {{themer_options.debug|json}},
238
+ saveToCookie: {{themer_options.saveToCookie|json}},
239
+ cssThemeLink: {{themer_options.cssThemeLink|json}},
240
+ cookieThemeName: {{themer_options.cookieThemeName|json}},
241
+ cookieDefaultThemeName: {{themer_options.cookieDefaultThemeName|json}},
242
+ cookieThemeCss: {{themer_options.cookieThemeCss|json}},
243
+ cookieThemeExtensionCss: {{themer_options.cookieThemeExtensionCss|json}},
244
+ cookieExpiration: {{themer_options.cookieExpiration|json}},
245
+ cookiePath: {{themer_options.cookiePath|json}},
246
+ defaultCssFile: {{themer_options.defaultCssFile|json}},
247
+ bootswatchApiUrl: {{themer_options.bootswatchApiUrl|json}},
248
+ bootswatchApiVersion: {{themer_options.bootswatchApiVersion|json}},
249
+ loadFromBootswatch: {{themer_options.loadFromBootswatch|json}},
250
+ localFeed: {{themer_options.localFeed|json}},
251
+ excludeBootswatch: {{themer_options.excludeBootswatch|json}},
252
+ includeBootswatch: {{themer_options.includeBootswatch|json}},
253
+ skipIncludeBootswatch: {{themer_options.skipIncludeBootswatch|json}}
254
+ }
255
+ /* eslint-enable */
256
+
257
+ if (themeName == 'Uno'|| themeName == 'Bootstrap') {
258
+ theme = environment === 'production'
259
+ ? themeName.toLowerCase() + '.min.css'
260
+ : themeName.toLowerCase() + '.css';
261
+ } else {
262
+ theme = 'bootstrap.css'; // fallback
263
+ }
264
+ logger.info('theme loaded: ' + themeName);
265
+ logger.info('theme file: ' + theme);
266
+
267
+ _this.setState('finished');
268
+ logger.info('state: ' + _this.getState());
269
+ logger.info('module initialized successfully');
270
+ logger.info('met dependencies for: navigator');
271
+ clearInterval(dependencies_met_navigator_started);
263
272
  }
264
- logger.info('theme loaded: ' + themeName);
265
- logger.info('theme file: ' + theme);
266
- _this.setState('finished');
267
- logger.info('state: ' + _this.getState());
268
- logger.info('module initialized successfully');
269
-
270
- });
273
+ }, 25); // END 'dependencies_met_navigator_started'
271
274
  {% else %}
272
275
  _this.setState('finished');
273
276
  logger.info('state: ' + _this.getState());
274
277
  logger.info('module detected as: disabled');
275
- return true;
276
278
  {% endif %}
277
-
278
279
  }, // END init
279
280
 
280
281
  // -------------------------------------------------------------------------
@@ -282,9 +283,7 @@ j1.adapter['themer'] = (function (j1, window) {
282
283
  // Set dynamic styles
283
284
  // -------------------------------------------------------------------------
284
285
  setCss: function () {
285
- var bg_primary = j1.getStyleValue('bg-primary', 'background-color');
286
-
287
- return true;
286
+ var bg_primary = j1.getStyleValue('bg-primary', 'background-color');
288
287
  }, // END setCss
289
288
 
290
289
  // -------------------------------------------------------------------------
@@ -301,41 +300,36 @@ j1.adapter['themer'] = (function (j1, window) {
301
300
  // Process commands|actions
302
301
  // -----------------------------------------------------------------------
303
302
  if (message.type === 'command' && message.action === 'module_initialized') {
304
- //
305
- // Place handling of command|action here
306
- //
307
303
  logger.info(message.text);
308
- }
309
304
  //
310
305
  // Place handling of other command|action here
311
306
  //
312
-
313
- return true;
307
+ }
314
308
  }, // END messageHandler
315
309
 
316
310
  // -------------------------------------------------------------------------
317
- // setState
318
- // Set the current (processing) state of the module
311
+ // setState()
312
+ // Sets the current (processing) state of the module
319
313
  // -------------------------------------------------------------------------
320
314
  setState: function (stat) {
321
- j1.adapter.themer.state = stat;
315
+ _this.state = stat;
322
316
  }, // END setState
323
317
 
324
318
  // -------------------------------------------------------------------------
325
- // getState
319
+ // getState()
326
320
  // Returns the current (processing) state of the module
327
321
  // -------------------------------------------------------------------------
328
322
  getState: function () {
329
- return j1.adapter.themer.state;
330
- } // END state
323
+ return _this.state;
324
+ } // END getState
331
325
 
332
326
  }; // END return
333
327
  })(j1, window);
334
328
 
335
329
  {% endcapture %}
336
330
  {% if production %}
337
- {{ cache | minifyJS }}
331
+ {{cache| minifyJS }}
338
332
  {% else %}
339
- {{ cache | strip_empty_lines }}
333
+ {{cache| strip_empty_lines }}
340
334
  {% endif %}
341
335
  {% assign cache = nil %}