j1-template 2021.1.27 → 2021.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_article_navigator.html +1 -1
  3. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +6 -4
  4. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +6 -6
  5. data/_includes/themes/j1/layouts/content_generator_post.html +3 -0
  6. data/_includes/themes/j1/modules/navigator/generator.html +1 -1
  7. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +6 -6
  8. data/_includes/themes/j1/procedures/posts/create_series_header.proc +6 -6
  9. data/_layouts/default.html +7 -2
  10. data/assets/data/mdil_icons.json +2417 -0
  11. data/assets/data/panel.html +9 -9
  12. data/assets/themes/j1/adapter/js/j1.js +8 -7
  13. data/assets/themes/j1/adapter/js/j1scroll.js +141 -44
  14. data/assets/themes/j1/adapter/js/navigator.js +11 -4
  15. data/assets/themes/j1/adapter/js/rtable.js +77 -24
  16. data/assets/themes/j1/core/css/icon-fonts/materialdesign-light.css +1222 -0
  17. data/assets/themes/j1/core/css/icon-fonts/materialdesign-light.min.css +1 -0
  18. data/assets/themes/j1/core/css/icon-fonts/materialdesign.css +1 -1
  19. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.css +58 -109
  20. data/assets/themes/j1/core/css/themes/uno-dark/bootstrap.min.css +1 -1
  21. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.css +28 -18
  22. data/assets/themes/j1/core/css/themes/uno-light/bootstrap.min.css +1 -1
  23. data/assets/themes/j1/core/css/vendor.css +7 -20
  24. data/assets/themes/j1/core/css/vendor.min.css +1 -1
  25. data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/eot/materialdesignicons-light-webfont.eot +0 -0
  26. data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/materialdesignicons-light-webfont.woff +0 -0
  27. data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/materialdesignicons-light-webfont.woff2 +0 -0
  28. data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/svg/materialdesignicons-light-webfont.svg +801 -0
  29. data/assets/themes/j1/core/fonts/material_design_icons_light/fonts/ttf/materialdesignicons-light-webfont.ttf +0 -0
  30. data/assets/themes/j1/core/js/template.js +4 -4
  31. data/assets/themes/j1/core/js/template.js.map +1 -1
  32. data/assets/themes/j1/core/js/template.min.js +4 -4
  33. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  34. data/assets/themes/j1/modules/carousel/css/theme/uno.css +1 -1
  35. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +1 -1
  36. data/assets/themes/j1/modules/j1Scroll/css/theme/uno.min.css +1 -1
  37. data/assets/themes/j1/modules/j1Scroll/js/j1scroll.js +263 -252
  38. data/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js +16 -0
  39. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.css +1 -1
  40. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.min.css +1 -1
  41. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +1 -1
  42. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +1 -1
  43. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +5 -15
  44. data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +1 -1
  45. data/assets/themes/j1/modules/mdilPreviewer/css/previewer.css +97 -0
  46. data/assets/themes/j1/modules/mdilPreviewer/css/previewer.min.css +15 -0
  47. data/assets/themes/j1/modules/mdilPreviewer/js/previewer.js +125 -0
  48. data/assets/themes/j1/modules/mdilPreviewer/js/previewer.min.js +15 -0
  49. data/assets/themes/j1/modules/rtable/css/theme/uno/rtable.css +3 -3
  50. data/assets/themes/j1/modules/rtable/css/theme/uno/rtable.min.css +2 -174
  51. data/assets/themes/j1/modules/rtable/js/rtable.js +59 -25
  52. data/assets/themes/j1/modules/rtable/js/rtable.min.js +12 -683
  53. data/assets/themes/j1/modules/showOnScroll/js/showOnScroll.js +73 -73
  54. data/assets/themes/j1/modules/showOnScroll/js/showOnScroll.min.js +15 -15
  55. data/lib/j1/commands/generate.rb +5 -8
  56. data/lib/j1/version.rb +1 -1
  57. data/lib/starter_web/Gemfile +1 -1
  58. data/lib/starter_web/_config.yml +15 -51
  59. data/lib/starter_web/_data/blocks/banner.yml +4 -5
  60. data/lib/starter_web/_data/blocks/panel.yml +217 -183
  61. data/lib/starter_web/_data/builder/blog_navigator.yml +1 -0
  62. data/lib/starter_web/_data/layouts/home.yml +20 -16
  63. data/lib/starter_web/_data/modules/defaults/navigator.yml +1 -1
  64. data/lib/starter_web/_data/modules/defaults/rtable.yml +34 -0
  65. data/lib/starter_web/_data/modules/j1scroll.yml +67 -0
  66. data/lib/starter_web/_data/modules/navigator_menu.yml +3 -3
  67. data/lib/starter_web/_data/modules/rtable.yml +34 -0
  68. data/lib/starter_web/_data/resources.yml +41 -44
  69. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  70. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  71. data/lib/starter_web/assets/images/modules/attics/annie-spratt-1920x1280.jpg +0 -0
  72. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  73. data/lib/starter_web/assets/images/modules/attics/humble-lamb-1920x1280.jpg +0 -0
  74. data/lib/starter_web/assets/images/modules/attics/library-1920x1280.jpg +0 -0
  75. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  76. data/lib/starter_web/assets/images/modules/attics/sigmund-1920x1280.jpg +0 -0
  77. data/lib/starter_web/assets/images/{pages/videos → modules/attics}/szabo-viktor-1920x1280.jpg +0 -0
  78. data/lib/starter_web/assets/images/pages/asciidoc_skeletons/example-pdf-screenshot.png +0 -0
  79. data/lib/starter_web/collections/posts/public/featured/_posts/{2020-01-01-about-cookies.adoc → 2021-01-01-about-cookies.adoc} +0 -0
  80. data/lib/starter_web/collections/posts/public/featured/_posts/{2021-03-01-site-generators.adoc → 2021-02-01-site-generators.adoc} +0 -0
  81. data/lib/starter_web/collections/posts/public/{wikipedia/_posts/2016-11-20-minneapolis.adoc → series/_posts/2020-01-01-post-wiki-series.adoc} +11 -10
  82. data/lib/starter_web/collections/posts/public/{wikipedia/_posts/2016-11-24-narcisse-snake-dens.adoc → series/_posts/2020-01-02-post-wiki-series.adoc} +15 -13
  83. data/lib/starter_web/collections/posts/public/{wikipedia/_posts/2016-11-26-columbia-river.adoc → series/_posts/2020-01-03-post-wiki-series.adoc} +28 -11
  84. data/lib/starter_web/collections/posts/public/{wikipedia → series}/_posts/_includes/attributes.asciidoc +0 -0
  85. data/lib/starter_web/collections/posts/public/{wikipedia → series}/_posts/_includes/documents/readme +0 -0
  86. data/lib/starter_web/collections/posts/public/{wikipedia → series}/_posts/_includes/tables/readme +0 -0
  87. data/lib/starter_web/index.html +2 -2
  88. data/lib/starter_web/package.json +1 -1
  89. data/lib/starter_web/pages/public/asciidoc_skeletons/{book → documentation}/000_intro.adoc +5 -7
  90. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/100_converter.adoc +43 -0
  91. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/200_themes.adoc +61 -0
  92. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/attributes.asciidoc +95 -0
  93. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/000_intro.asciidoc +54 -0
  94. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/000_basic_example.asciidoc +31 -0
  95. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/111_about_the_converter.asciidoc +111 -0
  96. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +95 -0
  97. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/113_themes.asciidoc +39 -0
  98. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter.asciidoc +8 -0
  99. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/211_language_overview.asciidoc +122 -0
  100. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/212_values.asciidoc +502 -0
  101. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/213_fonts.asciidoc +261 -0
  102. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes.asciidoc +8 -0
  103. data/lib/starter_web/pages/public/asciidoc_skeletons/{book → documentation}/a2p.bat +1 -1
  104. data/lib/starter_web/pages/public/asciidoc_skeletons/{book → documentation}/a2p.sh +2 -2
  105. data/lib/starter_web/pages/public/asciidoc_skeletons/{book/book.a2p → documentation/documentation.a2p} +2 -8
  106. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +86 -0
  107. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/100_chapter.asciidoc +848 -40
  108. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/200_chapter.asciidoc +149 -38
  109. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +2 -7
  110. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +312 -119
  111. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +5 -5
  112. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +5 -5
  113. data/lib/starter_web/pages/public/blog/navigator/archive.html +5 -5
  114. data/lib/starter_web/pages/public/blog/navigator/index.html +3 -2
  115. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1 -1
  116. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  117. data/lib/starter_web/utilsrv/package.json +1 -1
  118. metadata +53 -84
  119. data/assets/themes/j1/modules/rtable/js/tablesaw-init.js +0 -18
  120. data/assets/themes/j1/modules/rtable/js/tablesaw.stackonly.js +0 -2371
  121. data/lib/starter_web/_data/modules/defaults/infiniteScroll.yml +0 -73
  122. data/lib/starter_web/_data/modules/infiniteScroll.yml +0 -66
  123. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-test-series.adoc +0 -128
  124. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-test-series.adoc +0 -131
  125. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-test-series.adoc +0 -131
  126. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-04-post-test-series.adoc +0 -132
  127. data/lib/starter_web/pages/infinite-scroll-tester-5.adoc +0 -119
  128. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/blindtext.asciidoc +0 -11
  129. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/font_icons.asciidoc +0 -23
  130. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/gallery.asciidoc +0 -5
  131. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/asciidoc-extensions/lightbox.asciidoc +0 -7
  132. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/chapter_document.asciidoc +0 -9
  133. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/documents/entry_document.asciidoc +0 -3
  134. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/images/image.asciidoc +0 -6
  135. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column.asciidoc +0 -12
  136. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_2_column_options.asciidoc +0 -30
  137. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_3_column.asciidoc +0 -16
  138. data/lib/starter_web/pages/public/asciidoc_skeletons/_templates/tables/table_4_column.asciidoc +0 -25
  139. data/lib/starter_web/pages/public/asciidoc_skeletons/book/100_chapter.adoc +0 -62
  140. data/lib/starter_web/pages/public/asciidoc_skeletons/book/200_chapter.adoc +0 -64
  141. data/lib/starter_web/pages/public/asciidoc_skeletons/book/900_references.adoc +0 -73
  142. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/attributes.asciidoc +0 -74
  143. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/000_intro.asciidoc +0 -33
  144. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/100_chapter_document.asciidoc +0 -21
  145. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter/110_chapter_document.asciidoc +0 -36
  146. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/100_chapter.asciidoc +0 -7
  147. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter/200_chapter_document.asciidoc +0 -53
  148. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/200_chapter.asciidoc +0 -5
  149. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/000_intro.asciidoc +0 -23
  150. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/100_chapter_document.asciidoc +0 -33
  151. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/200_chapter_document.asciidoc +0 -26
  152. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references/900_sources.asciidoc +0 -81
  153. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/900_references.asciidoc +0 -23
  154. data/lib/starter_web/pages/public/asciidoc_skeletons/book/_includes/documents/tables/110_material_design_icons.asciidoc +0 -102
  155. data/lib/starter_web/pages/public/asciidoc_skeletons/book/book.adoc +0 -136
  156. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/100_chapter.asciidoc +0 -60
  157. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/200_chapter.asciidoc +0 -59
  158. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/_includes/documents/tables/110_material_design_icons.asciidoc +0 -102
  159. data/lib/starter_web/pages/public/previewer/_includes/attributes.asciidoc +0 -60
  160. data/lib/starter_web/pages/public/previewer/_includes/documents/licenses/mit.asciidoc +0 -19
  161. data/lib/starter_web/pages/public/previewer/_includes/documents/readme +0 -0
  162. data/lib/starter_web/pages/public/previewer/_includes/documents/rouge/100_language_examples.asciidoc +0 -119
  163. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -39
  164. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -47
  165. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/120_relative_sizes.asciidoc +0 -47
  166. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/200_rotate.asciidoc +0 -71
  167. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/300_flip.asciidoc +0 -31
  168. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -39
  169. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -61
  170. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -55
  171. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/600_md_color_palette.asciidoc +0 -95
  172. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -95
  173. data/lib/starter_web/pages/public/previewer/_includes/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -95
  174. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/200_rouge_attributes.asciidoc +0 -41
  175. data/lib/starter_web/pages/public/previewer/_includes/tables/rouge/300_supported_languages.asciidoc +0 -857
  176. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -47
  177. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -47
  178. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/200_rotate.asciidoc +0 -71
  179. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/300_flip.asciidoc +0 -30
  180. data/lib/starter_web/pages/public/previewer/_includes/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -31
  181. data/lib/starter_web/pages/public/previewer/iframer.adoc +0 -93
  182. data/lib/starter_web/pages/public/previewer/justified_gallery.html +0 -41
  183. data/lib/starter_web/pages/public/previewer/md_color_palette.adoc +0 -574
  184. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +0 -220
  185. data/lib/starter_web/pages/public/previewer/rouge.adoc +0 -133
  186. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +0 -191
@@ -51,7 +51,7 @@ padding-left: 1px;
51
51
  }
52
52
 
53
53
  .slider-title {
54
- color: #212121;
54
+ /* color: #424242; */
55
55
  line-height: 1.25rem;
56
56
  font-size: 1.125rem;
57
57
  font-weight: 500;
@@ -12,4 +12,4 @@
12
12
  # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
13
  # -----------------------------------------------------------------------------
14
14
  */
15
- .j1-owl-gutter.row{margin-right:0;margin-left:0}.j1-owl-gutter>[class^="col-"],.j1-owl-gutter>[class^=" col-"]{padding-right:0;padding-left:0}.j1-owl-gutter-2.row{margin-right:-1px;margin-left:-1px}.j1-owl-gutter-2>[class^="col-"],.j1-owl-gutter-2>[class^=" col-"]{padding-right:1px;padding-left:1px}.owl-carousel .item p{margin:3px}.owl-carousel .item img{opacity:1;width:100%;height:auto}.slider-title{color:#212121;line-height:1.25rem;font-size:1.125rem;font-weight:500;margin-bottom:.5rem}.owl-item .carousel-caption{opacity:0;position:absolute;bottom:3px;left:3px;right:3px;color:white;font-size:1rem;font-weight:300;font-family:sans-serif;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.owl-item .carousel-caption:hover{opacity:1;-webkit-transition:opacity 500ms;-moz-transition:opacity 500ms;-o-transition:opacity 500ms;transition:opacity 500ms;background:rgba(0,0,0,0.5)}span.carousel-caption a{color:#fff;text-decoration:none}.owl-btn{color:#777;cursor:pointer;font-size:18px;padding:2px 9px;text-align:center;background:#f5f5f5}.owl-btn:hover{color:#fff;background:#72c02c}.owl-theme .owl-controls{margin-top:10px;text-align:center}.owl-theme .owl-controls .owl-buttons div{color:#212121;display:inline-block;zoom:1;margin:5px;padding:3px 10px;font-size:12px;font-weight:500;-webkit-border-radius:30px;-moz-border-radius:30px;background:#2196f3}.owl-theme .owl-controls.clickable .owl-buttons div:hover{opacity:1;text-decoration:none}.owl-theme .owl-controls .owl-page{display:inline-block;zoom:1}.owl-theme .owl-controls .owl-page span{display:block;width:1.25rem;height:1.25rem;margin:5px 7px;filter:Alpha(Opacity=50);opacity:.5;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;background:#2196f3}.owl-theme .owl-controls .owl-page.active span,.owl-theme .owl-controls.clickable .owl-page:hover span{opacity:1}.owl-theme .owl-controls .owl-page span.owl-numbers{height:auto;width:auto;color:#FFF;padding:2px 10px;font-size:12px;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px}.owl-item.loading{min-height:150px;background:url(../../images/ajax-loader.gif) no-repeat center center}.owl-carousel .item{height:44vh;background-color:#fff;background-position:center 55%;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.owl-carousel .container{display:table;height:inherit}.owl-carousel .caption{display:table-cell}.owl-carousel .caption h1,.owl-carousel .caption p,.owl-carousel .caption div{position:relative}.owl-carousel .caption h1 span{padding:.25em 0;line-height:180%}
15
+ .j1-owl-gutter.row{margin-right:0;margin-left:0}.j1-owl-gutter>[class^="col-"],.j1-owl-gutter>[class^=" col-"]{padding-right:0;padding-left:0}.j1-owl-gutter-2.row{margin-right:-1px;margin-left:-1px}.j1-owl-gutter-2>[class^="col-"],.j1-owl-gutter-2>[class^=" col-"]{padding-right:1px;padding-left:1px}.owl-carousel .item p{margin:3px}.owl-carousel .item img{opacity:1;width:100%;height:auto}.slider-title{line-height:1.25rem;font-size:1.125rem;font-weight:500;margin-bottom:.5rem}.owl-btn{color:#777;cursor:pointer;font-size:18px;padding:2px 9px;text-align:center;background:#f5f5f5}.owl-btn:hover{color:#fff;background:#72c02c}.owl-theme .owl-controls{margin-top:10px;text-align:center}.owl-theme .owl-controls .owl-buttons div{color:#212121;display:inline-block;zoom:1;margin:5px;padding:3px 10px;font-size:12px;font-weight:500;-webkit-border-radius:30px;-moz-border-radius:30px;background:#2196f3}.owl-theme .owl-controls.clickable .owl-buttons div:hover{opacity:1;text-decoration:none}.owl-theme .owl-controls .owl-page{display:inline-block;zoom:1}.owl-theme .owl-controls .owl-page span{display:block;width:1.25rem;height:1.25rem;margin:5px 7px;filter:Alpha(Opacity=50);opacity:.5;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;background:#2196f3}.owl-theme .owl-controls .owl-page.active span,.owl-theme .owl-controls.clickable .owl-page:hover span{opacity:1}.owl-theme .owl-controls .owl-page span.owl-numbers{height:auto;width:auto;color:#FFF;padding:2px 10px;font-size:12px;-webkit-border-radius:30px;-moz-border-radius:30px;border-radius:30px}.owl-item.loading{min-height:150px;background:url(../../images/ajax-loader.gif) no-repeat center center}.owl-carousel .container{display:table;height:inherit}.owl-carousel .caption{display:table-cell}.owl-carousel .caption h1,.owl-carousel .caption p,.owl-carousel .caption div{position:relative;margin-top:2rem;margin-right:2rem;margin-left:2rem}.owl-carousel .caption h1 span{padding:.25em 0;line-height:180%}.owl-item .carousel-caption{opacity:0;position:absolute;bottom:3px;left:3px;right:3px;color:white;font-size:1rem;font-weight:300;font-family:sans-serif;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.owl-item .carousel-caption:hover{opacity:1;-webkit-transition:opacity 500ms;-moz-transition:opacity 500ms;-o-transition:opacity 500ms;transition:opacity 500ms;background:rgba(0,0,0,0.5)}span.carousel-caption a{color:#fff;text-decoration:none}
@@ -12,4 +12,4 @@
12
12
  # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
13
  # -----------------------------------------------------------------------------
14
14
  */
15
- .list-group-item{width:96%;margin-right:1%!important}@media only screen and (min-width:576px){.list-group-item.items-auto{width:48.3%}.list-group-item.items-1{width:96%}.list-group-item.items-2{width:48.3%}.list-group-item.items-3{width:48.3%}.list-group-item.items-4{width:48.3%}}@media only screen and (min-width:768px){.list-group-item.items-auto{width:31.333%}.list-group-item.items-1{width:96%}.list-group-item.items-2{width:48.3%}.list-group-item.items-3{width:48.3%}.list-group-item.items-4{width:48.3%}}@media only screen and (min-width:992px){.list-group-item.items-auto{width:23.8%}.list-group-item.items-1{width:96%}.list-group-item.items-2{width:48.3%}.list-group-item.items-3{width:31.333%}.list-group-item.items-4{width:23.8%}}.page-load-status,.page-scroll-last{display:none;padding-top:.5rem;border-top:1px dotted #212121;color:#777}span.infinite-scroll-last{border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:#212121;display:inline-block;margin:0 0 -1px 0;padding:10px 3px}.loader-ellips{font-size:20px;position:relative;width:4em;height:1em;margin:10px auto}.loader-ellips__dot{display:block;width:1em;height:1em;border-radius:.5em;background:#555;position:absolute;animation-duration:.5s;animation-timing-function:ease;animation-iteration-count:infinite}.loader-ellips__dot:nth-child(1),.loader-ellips__dot:nth-child(2){left:0}.loader-ellips__dot:nth-child(3){left:1.5em}.loader-ellips__dot:nth-child(4){left:3em}@keyframes reveal{from{transform:scale(0.001)}to{transform:scale(1)}}@keyframes slide{to{transform:translateX(1.5em)}}.loader-ellips__dot:nth-child(1){animation-name:reveal}.loader-ellips__dot:nth-child(2),.loader-ellips__dot:nth-child(3){animation-name:slide}.loader-ellips__dot:nth-child(4){animation-name:reveal;animation-direction:reverse}
15
+ .page-load-status,.page-scroll-last{display:none;padding-top:.5rem;border-top:1px dotted #212121;color:#777}span.infinite-scroll-last{border-bottom-width:1px;border-bottom-style:dotted;border-bottom-color:#212121;display:inline-block;margin:0 0 -1px 0;padding:10px 3px}.loader-ellips{font-size:20px;position:relative;width:4em;height:1em;margin:10px auto}.loader-ellips__dot{display:block;width:1em;height:1em;border-radius:.5em;background:#555;position:absolute;animation-duration:.5s;animation-timing-function:ease;animation-iteration-count:infinite}.loader-ellips__dot:nth-child(1),.loader-ellips__dot:nth-child(2){left:0}.loader-ellips__dot:nth-child(3){left:1.5em}.loader-ellips__dot:nth-child(4){left:3em}@keyframes reveal{from{transform:scale(0.001)}to{transform:scale(1)}}@keyframes slide{to{transform:translateX(1.5em)}}.loader-ellips__dot:nth-child(1){animation-name:reveal}.loader-ellips__dot:nth-child(2),.loader-ellips__dot:nth-child(3){animation-name:slide}.loader-ellips__dot:nth-child(4){animation-name:reveal;animation-direction:reverse}
@@ -1,252 +1,263 @@
1
- /*
2
- # -----------------------------------------------------------------------------
3
- # ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.js
4
- # J1 core module for j1scroll
5
- #
6
- # Product/Info:
7
- # https://jekyll.one
8
- #
9
- # Copyright (C) 2021 Juergen Adams
10
- #
11
- # J1 Template is licensed under the MIT License.
12
- # For details, see https://jekyll.one
13
- # -----------------------------------------------------------------------------
14
- */
15
-
16
- // the semi-colon before function invocation is a SAFETY method against
17
- // concatenated scripts and/or other plugins which may NOT be closed
18
- // properly.
19
- //
20
- ;(function($, window, document, undefined) {
21
-
22
- 'use strict';
23
-
24
- // Create the defaults
25
- var pluginName = 'j1Scroll',
26
- defaults = {
27
- type: 'infiniteScroll',
28
- scrollThreshold: 400,
29
- elementScroll: false,
30
- firstPage: 2,
31
- lastPage: false,
32
- loadStatus: true,
33
- onInit: function (){}, // callback after plugin has initialized
34
- onBeforeLoad: function (){}, // callback before new items are loaded
35
- onAfterLoad: function (){} // callback after new items are loaded
36
- };
37
-
38
- // Plugin constructor
39
- function Plugin (element, options) {
40
- this.element = element;
41
- this.settings = $.extend( {}, defaults, options);
42
- this.settings.elementID = '#' + this.element["id"]
43
-
44
- // call the initializer
45
- this.init(this.settings);
46
- }
47
-
48
- // Avoid Plugin.prototype conflicts
49
- $.extend(Plugin.prototype, {
50
- // -------------------------------------------------------------------------
51
- // init: initializer
52
- // -------------------------------------------------------------------------
53
- init: function(options) {
54
- var logger = log4javascript.getLogger('j1Scroll');
55
-
56
- logger.info('\n' + 'initializing plugin: started');
57
- logger.info('\n' + 'state: started');
58
-
59
- if (options.loadStatus) {
60
- var spinner = '<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';
61
- $(spinner).insertAfter(options.elementID);
62
- }
63
-
64
- if (options.infoLastPage ) {
65
- var scroll_last_en = 'More articles can be found with the ';
66
- var scroll_last_de = 'Weitere Artikel finden Sie im ';
67
- var scroll_last;
68
-
69
- if (document.documentElement.lang === 'en') {
70
- scroll_last = scroll_last_en;
71
- } else if (document.documentElement.lang === 'de') {
72
- scroll_last = scroll_last_de;
73
- } else {
74
- scroll_last = scroll_last_en;
75
- }
76
-
77
- if ( this.settings.elementScroll ) {
78
- this.scroller = this.element;
79
- } else {
80
- this.scroller = window;
81
- }
82
- var message = '<div class="page-scroll-last"><p class="infinite-scroll-last">' + scroll_last + '<a href="/pages/public/blog/navigator/">Blog Navigator</a></p> </div>';
83
- $(message).insertAfter(options.elementID);
84
- }
85
-
86
-
87
- // initialize infinite scroll
88
- if ( options.type === 'infiniteScroll') {
89
- logger.info('\n' + 'processing mode: infiniteScroll');
90
- logger.info('\n' + 'loading items from path: ' + options.path + "#");
91
- logger.info('\n' + 'monitoring element set to: ' + this.scroller);
92
- this.registerScrollEvent(options);
93
- }
94
- logger.info('\n' + 'initializing plugin: finished');
95
- logger.info('\n' + 'state: finished');
96
- },
97
- // -------------------------------------------------------------------------
98
- // bottomReached: detect final scroll position
99
- // -------------------------------------------------------------------------
100
- isBottomReached: function (options) {
101
- var _this = this;
102
- let bottom, scrollY;
103
- var clientHeight = $(options.elementID).height();
104
-
105
- if ( _this.settings.elementScroll ) {
106
- var $window = $(window);
107
- var viewport_top = $window.scrollTop();
108
- var viewport_height = $window.height();
109
- var viewport_bottom = viewport_top + viewport_height;
110
- var $elm = $(options.elementID);
111
- var top = $elm.offset().top + clientHeight;
112
- var height = $elm.height();
113
- // bottom = top + height - options.scrollThreshold
114
- bottom = top + height;
115
-
116
- return (top >= viewport_top && top < viewport_bottom) ||
117
- (bottom > viewport_top && bottom <= viewport_bottom) ||
118
- (height > viewport_height && top <= viewport_top && bottom >= viewport_bottom);
119
- } else {
120
- return (window.innerHeight + window.pageYOffset + options.scrollThreshold >= document.body.offsetHeight);
121
- }
122
- },
123
- // -------------------------------------------------------------------------
124
- // detectScroll: EventHandler to load new items for infinite scroll
125
- // if final scroll position reached
126
- // -------------------------------------------------------------------------
127
- registerScrollEvent: function (options) {
128
- var _this = this;
129
- var logger = log4javascript.getLogger('j1Scroll');
130
-
131
- logger.info('\n' + 'scroll event: register');
132
-
133
- var eventHandler_onscroll = function (event) {
134
- var options = _this.settings;
135
-
136
- if (_this.isBottomReached(options)) {
137
- if (options.firstPage > options.lastPage ) {
138
- logger.info('\n' + 'last page detected on: ' + options.lastPage);
139
- window.removeEventListener('scroll', eventHandler_onscroll);
140
- logger.info('\n' + 'scroll event: removed');
141
-
142
- if (options.infoLastPage ) {
143
- _this.infoLastPage(options);
144
- }
145
- return false;
146
- }
147
- _this.getNewPost(options);
148
- }
149
- }
150
- window.addEventListener('scroll', eventHandler_onscroll);
151
-
152
- logger.info('\n' + 'scroll event: registered');
153
- },
154
- // -------------------------------------------------------------------------
155
- // getNewPost: load new items (from current path)
156
- // Note: loader flag prevents to load items if AJAX load in progress
157
- // is NOT finished
158
- // -------------------------------------------------------------------------
159
- getNewPost: function (options) {
160
- var _this = this;
161
- var logger = log4javascript.getLogger('j1Scroll');
162
-
163
- // display spinner while loading
164
- if (options.loadStatus) {
165
- $('.loader-ellips').show();
166
- }
167
-
168
- // initialze loader flag
169
- if (this.itemsLoaded === false) return false;
170
-
171
- // set loader flag (false == not loaded)
172
- this.itemsLoaded = false;
173
- var xmlhttp = new XMLHttpRequest();
174
- xmlhttp.onreadystatechange = function () {
175
- if (xmlhttp.readyState == XMLHttpRequest.DONE) {
176
- if (xmlhttp.status == 200) {
177
- options.firstPage++;
178
- var childItems = _this.getChildItemsByAjaxHTML(options, xmlhttp.responseText);
179
- _this.appendNewItems(childItems);
180
- // set loader flag (true == loaded)
181
- logger.info('\n' + 'loading new items: successful');
182
-
183
- // hide the spinner after loading
184
- if (options.loadStatus) {
185
- $('.loader-ellips').hide();
186
- }
187
- // set loader flag (true == loaded)
188
- return _this.itemsLoaded = true;
189
- } else {
190
- logger.error('\n' + 'loading new items failed, HTTP response: ' + xmlhttp.status );
191
- // set loader flag (true == loaded)
192
- return _this.itemsLoaded = false;
193
- }
194
- }
195
- };
196
- logger.info('\n' + 'loading new items from path: ' + options.path + options.firstPage);
197
- xmlhttp.open("GET", location.origin + options.path + options.firstPage + '/index.html', true);
198
- xmlhttp.send();
199
- },
200
- // -------------------------------------------------------------------------
201
- // getChildItemsByAjaxHTML: extract items from page loaded
202
- // -------------------------------------------------------------------------
203
- getChildItemsByAjaxHTML: function (options, HTMLText) {
204
- var newHTML = document.createElement('html');
205
- var logger = log4javascript.getLogger('j1Scroll');
206
-
207
- logger.info('\n' + 'load new items');
208
- newHTML.innerHTML = HTMLText;
209
- var childItems = newHTML.querySelectorAll(options.elementID + ' > *');
210
- return childItems;
211
- },
212
- // -------------------------------------------------------------------------
213
- // appendNewItems: append items and run post processing
214
- // -------------------------------------------------------------------------
215
- appendNewItems: function (items) {
216
- var _this = this;
217
- var logger = log4javascript.getLogger('j1Scroll');
218
-
219
- logger.info('\n' + 'append new items');
220
- items.forEach(function (item) {
221
- _this.element.appendChild(item);
222
- });
223
-
224
- logger.info('\n' + 'post processing: createDropCap');
225
- // initialize backdrops
226
- j1.core.createDropCap();
227
- },
228
- // -------------------------------------------------------------------------
229
- // getNewPost: load/append new items
230
- // Note: loader flag prevents to load items if AJAX load in progress
231
- // is NOT finished
232
- // -------------------------------------------------------------------------
233
- infoLastPage: function (options) {
234
- var _this = this;
235
- var logger = log4javascript.getLogger('j1Scroll');
236
-
237
- logger.info('\n' + 'post processing: infoLastPage');
238
- $('.page-scroll-last').show();
239
- }
240
- }); // END prototype
241
-
242
- // wrapper around the constructor to prevent multiple instantiations
243
- $.fn [pluginName] = function(options) {
244
- return this.each(function() {
245
- if (!$.data( this, "plugin_" + pluginName)) {
246
- $.data(this, "plugin_" +
247
- pluginName, new Plugin(this, options));
248
- }
249
- });
250
- };
251
-
252
- })(jQuery, window, document);
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.js
4
+ # J1 core module for j1scroll
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2021 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # For details, see https://jekyll.one
13
+ # -----------------------------------------------------------------------------
14
+ */
15
+
16
+ // the semi-colon before function invocation is a SAFETY method against
17
+ // concatenated scripts and/or other plugins which may NOT be closed
18
+ // properly.
19
+ //
20
+ ;(function($, window, document, undefined) {
21
+
22
+ 'use strict';
23
+
24
+ // Create the defaults
25
+ var pluginName = 'j1Scroll',
26
+ defaults = {
27
+ type: 'infiniteScroll',
28
+ scrollOffset: 100,
29
+ elementScroll: false,
30
+ firstPage: 2,
31
+ lastPage: false,
32
+ infoLastPage: false,
33
+ loadStatus: false,
34
+ onInit: function (){}, // callback after plugin has initialized
35
+ onBeforeLoad: function (){}, // callback before new items are loaded
36
+ onAfterLoad: function (){} // callback after new items are loaded
37
+ };
38
+
39
+ // Plugin constructor
40
+ function Plugin (element, options) {
41
+ this.element = element;
42
+ this.settings = $.extend( {}, defaults, options);
43
+ this.settings.elementID = '#' + this.element["id"]
44
+
45
+ // call the initializer
46
+ this.init(this.settings);
47
+ }
48
+
49
+ // Avoid Plugin.prototype conflicts
50
+ $.extend(Plugin.prototype, {
51
+ // -------------------------------------------------------------------------
52
+ // init: initializer
53
+ // -------------------------------------------------------------------------
54
+ init: function(options) {
55
+ var logger = log4javascript.getLogger('j1Scroll');
56
+
57
+ logger.info('\n' + 'initializing plugin: started');
58
+ logger.info('\n' + 'state: started');
59
+
60
+ if ( options.elementScroll ) {
61
+ this.scroller = this.element;
62
+ } else {
63
+ this.scroller = window;
64
+ }
65
+
66
+ if (options.loadStatus) {
67
+ var spinner = '<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';
68
+ $(spinner).insertAfter(options.elementID);
69
+ }
70
+
71
+ if (options.infoLastPage) {
72
+ var message = options.lastPageInfo;
73
+ $(message).insertAfter(options.elementID);
74
+ }
75
+
76
+ // initialize infinite scroll
77
+ if ( options.type === 'infiniteScroll') {
78
+ logger.info('\n' + 'processing mode: infiniteScroll');
79
+ logger.info('\n' + 'loading items from path: ' + options.path + "#");
80
+ logger.info('\n' + 'monitoring element set to: ' + this.scroller);
81
+ this.registerScrollEvent(options);
82
+ }
83
+ logger.info('\n' + 'initializing plugin: finished');
84
+ logger.info('\n' + 'state: finished');
85
+ },
86
+ // -------------------------------------------------------------------------
87
+ // bottomReached: detect final scroll position
88
+ // NOTE: the calculation for BOTTOM position is different for
89
+ // elementScroll and windowScroll. For elementScroll, the
90
+ // trigger isBottomReached is TRUE, if the scroll position has
91
+ // the end of the container PLUS a given scrollOffset.
92
+ // For windowScroll, the trigger isBottomReached is TRUE, if
93
+ // the scroll position has the end of the window MINUS
94
+ // a given scrollOffset.
95
+ // -------------------------------------------------------------------------
96
+ isBottomReached: function (options) {
97
+ var _this = this;
98
+ var bottom, scrollY;
99
+ var clientHeight = $(options.elementID).height();
100
+
101
+ if ( _this.settings.elementScroll ) {
102
+ // check scroll position of the container items are to be added
103
+ var $window = $(window);
104
+ var viewport_top = $window.scrollTop();
105
+ var viewport_height = $window.height();
106
+ var viewport_bottom = viewport_top + viewport_height - options.scrollOffset;
107
+ var $elm = $(options.elementID);
108
+ var top = $elm.offset().top + clientHeight;
109
+ var height = $elm.height();
110
+ bottom = top + height;
111
+
112
+
113
+ return (top >= viewport_top && top < viewport_bottom) ||
114
+ (bottom > viewport_top && bottom <= viewport_bottom) ||
115
+ (height > viewport_height && top <= viewport_top && bottom >= viewport_bottom);
116
+ } else {
117
+ // check scroll position of the (overall) window
118
+ return (window.innerHeight + window.pageYOffset + options.scrollOffset >= document.body.offsetHeight);
119
+ }
120
+ },
121
+ // -------------------------------------------------------------------------
122
+ // detectScroll: EventHandler to load new items for infinite scroll
123
+ // if final scroll position reached
124
+ // -------------------------------------------------------------------------
125
+ registerScrollEvent: function (options) {
126
+ var _this = this;
127
+ var logger = log4javascript.getLogger('j1Scroll');
128
+
129
+ logger.info('\n' + 'scroll event: register');
130
+
131
+ var eventHandler_onscroll = function (event) {
132
+ var options = _this.settings;
133
+
134
+ if (_this.isBottomReached(options)) {
135
+ if (options.firstPage > options.lastPage ) {
136
+ logger.info('\n' + 'last page detected on: ' + options.lastPage);
137
+ window.removeEventListener('scroll', eventHandler_onscroll);
138
+ logger.info('\n' + 'scroll event: removed');
139
+
140
+ if (options.infoLastPage ) {
141
+ _this.infoLastPage(options);
142
+ }
143
+ return false;
144
+ }
145
+ _this.getNewPost(options);
146
+ }
147
+ }
148
+ window.addEventListener('scroll', eventHandler_onscroll);
149
+
150
+ logger.info('\n' + 'scroll event: registered');
151
+ },
152
+ // -------------------------------------------------------------------------
153
+ // getNewPost: load new items (from current path)
154
+ // Note: loader flag prevents to load items if AJAX load in progress
155
+ // is NOT finished
156
+ // -------------------------------------------------------------------------
157
+ getNewPost: function (options) {
158
+ var _this = this;
159
+ var logger = log4javascript.getLogger('j1Scroll');
160
+
161
+ logger.info('\n' + 'trigger loading ');
162
+
163
+ // initialze loader flag
164
+ if (this.itemsLoaded === false) return false;
165
+
166
+ // set loader flag (false == not loaded)
167
+ this.itemsLoaded = false;
168
+
169
+ // display spinner while loading
170
+ if (options.loadStatus) {
171
+ logger.info('\n' + 'show: spinner');
172
+ $('.loader-ellips').show();
173
+ }
174
+
175
+ var xmlhttp = new XMLHttpRequest();
176
+ xmlhttp.onreadystatechange = function () {
177
+ if (xmlhttp.readyState == XMLHttpRequest.DONE) {
178
+ if (xmlhttp.status == 200) {
179
+ options.firstPage++;
180
+ var childItems = _this.getChildItemsByAjaxHTML(options, xmlhttp.responseText);
181
+ _this.appendNewItems(childItems);
182
+
183
+ logger.info('\n' + 'loading new items: successful');
184
+
185
+ // hide the spinner after loading
186
+ if (options.loadStatus) {
187
+ logger.info('\n' + 'hide: spinner');
188
+ $('.loader-ellips').hide();
189
+ }
190
+
191
+ // set loader flag (true == loaded)
192
+ return _this.itemsLoaded = true;
193
+ } else {
194
+ // hide the spinner
195
+ if (options.loadStatus) {
196
+ logger.info('\n' + 'hide: spinner');
197
+ $('.loader-ellips').hide();
198
+ }
199
+
200
+ logger.error('\n' + 'loading new items failed, HTTP response: ' + xmlhttp.status );
201
+ // set loader flag (true == loaded)
202
+ return _this.itemsLoaded = false;
203
+ }
204
+ }
205
+ };
206
+ logger.info('\n' + 'loading new items from path: ' + options.path + options.firstPage);
207
+ xmlhttp.open("GET", location.origin + options.path + options.firstPage + '/index.html', true);
208
+ xmlhttp.send();
209
+
210
+ },
211
+ // -------------------------------------------------------------------------
212
+ // getChildItemsByAjaxHTML: extract items from page loaded
213
+ // -------------------------------------------------------------------------
214
+ getChildItemsByAjaxHTML: function (options, HTMLText) {
215
+ var newHTML = document.createElement('html');
216
+ var logger = log4javascript.getLogger('j1Scroll');
217
+
218
+ logger.info('\n' + 'load new items');
219
+ newHTML.innerHTML = HTMLText;
220
+ var childItems = newHTML.querySelectorAll(options.elementID + ' > *');
221
+ return childItems;
222
+ },
223
+ // -------------------------------------------------------------------------
224
+ // appendNewItems: append items and run post processing
225
+ // -------------------------------------------------------------------------
226
+ appendNewItems: function (items) {
227
+ var _this = this;
228
+ var logger = log4javascript.getLogger('j1Scroll');
229
+
230
+ logger.info('\n' + 'append new items');
231
+ items.forEach(function (item) {
232
+ _this.element.appendChild(item);
233
+ });
234
+
235
+ logger.info('\n' + 'post processing: createDropCap');
236
+ // initialize backdrops
237
+ j1.core.createDropCap();
238
+ },
239
+ // -------------------------------------------------------------------------
240
+ // getNewPost: load/append new items
241
+ // Note: loader flag prevents to load items if AJAX load in progress
242
+ // is NOT finished
243
+ // -------------------------------------------------------------------------
244
+ infoLastPage: function (options) {
245
+ var _this = this;
246
+ var logger = log4javascript.getLogger('j1Scroll');
247
+
248
+ logger.info('\n' + 'show: infoLastPage');
249
+ $('.page-scroll-last').show();
250
+ }
251
+ }); // END prototype
252
+
253
+ // wrapper around the constructor to prevent multiple instantiations
254
+ $.fn [pluginName] = function(options) {
255
+ return this.each(function() {
256
+ if (!$.data( this, "plugin_" + pluginName)) {
257
+ $.data(this, "plugin_" +
258
+ pluginName, new Plugin(this, options));
259
+ }
260
+ });
261
+ };
262
+
263
+ })(jQuery, window, document);
@@ -0,0 +1,16 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/modules/j1Scroll/js/j1scroll.min.js
4
+ # J1 core module for j1scroll
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2021 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # For details, see https://jekyll.one
13
+ # -----------------------------------------------------------------------------
14
+ */
15
+
16
+ (function(e,c,a,g){var d="j1Scroll",f={type:"infiniteScroll",scrollOffset:100,elementScroll:false,firstPage:2,lastPage:false,infoLastPage:false,loadStatus:false,onInit:function(){},onBeforeLoad:function(){},onAfterLoad:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.init(this.settings)}e.extend(b.prototype,{init:function(i){var h=log4javascript.getLogger("j1Scroll");h.info("\ninitializing plugin: started");h.info("\nstate: started");if(i.elementScroll){this.scroller=this.element}else{this.scroller=c}if(i.loadStatus){var k='<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';e(k).insertAfter(i.elementID)}if(i.infoLastPage){var j=i.lastPageInfo;e(j).insertAfter(i.elementID)}if(i.type==="infiniteScroll"){h.info("\nprocessing mode: infiniteScroll");h.info("\nloading items from path: "+i.path+"#");h.info("\nmonitoring element set to: "+this.scroller);this.registerScrollEvent(i)}h.info("\ninitializing plugin: finished");h.info("\nstate: finished")},isBottomReached:function(s){var n=this;var h,p;var m=e(s.elementID).height();if(n.settings.elementScroll){var j=e(c);var r=j.scrollTop();var i=j.height();var l=r+i-s.scrollOffset;var k=e(s.elementID);var o=k.offset().top+m;var q=k.height();h=o+q;return(o>=r&&o<l)||(h>r&&h<=l)||(q>i&&o<=r&&h>=l)}else{return(c.innerHeight+c.pageYOffset+s.scrollOffset>=a.body.offsetHeight)}},registerScrollEvent:function(i){var k=this;var h=log4javascript.getLogger("j1Scroll");h.info("\nscroll event: register");var j=function(m){var l=k.settings;if(k.isBottomReached(l)){if(l.firstPage>l.lastPage){h.info("\nlast page detected on: "+l.lastPage);c.removeEventListener("scroll",j);h.info("\nscroll event: removed");if(l.infoLastPage){k.infoLastPage(l)}return false}k.getNewPost(l)}};c.addEventListener("scroll",j);h.info("\nscroll event: registered")},getNewPost:function(i){var k=this;var h=log4javascript.getLogger("j1Scroll");h.info("\ntrigger loading ");if(this.itemsLoaded===false){return false}this.itemsLoaded=false;if(i.loadStatus){h.info("\nshow: spinner");e(".loader-ellips").show()}var j=new XMLHttpRequest();j.onreadystatechange=function(){if(j.readyState==XMLHttpRequest.DONE){if(j.status==200){i.firstPage++;var l=k.getChildItemsByAjaxHTML(i,j.responseText);k.appendNewItems(l);h.info("\nloading new items: successful");if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}return k.itemsLoaded=true}else{if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}h.error("\nloading new items failed, HTTP response: "+j.status);return k.itemsLoaded=false}}};h.info("\nloading new items from path: "+i.path+i.firstPage);j.open("GET",location.origin+i.path+i.firstPage+"/index.html",true);j.send()},getChildItemsByAjaxHTML:function(j,i){var l=a.createElement("html");var h=log4javascript.getLogger("j1Scroll");h.info("\nload new items");l.innerHTML=i;var k=l.querySelectorAll(j.elementID+" > *");return k},appendNewItems:function(h){var j=this;var i=log4javascript.getLogger("j1Scroll");i.info("\nappend new items");h.forEach(function(k){j.element.appendChild(k)});i.info("\npost processing: createDropCap");j1.core.createDropCap()},infoLastPage:function(i){var j=this;var h=log4javascript.getLogger("j1Scroll");h.info("\nshow: infoLastPage");e(".page-scroll-last").show()}});e.fn[d]=function(h){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,h))}})}})(jQuery,window,document);
@@ -15,7 +15,7 @@
15
15
 
16
16
  /* Gallery title */
17
17
  .jg-gallery-title {
18
- color: #212121;
18
+ /* color: #424242; */
19
19
  line-height: 1.25rem;
20
20
  font-size: 1.125rem;
21
21
  font-weight: 500;
@@ -12,4 +12,4 @@
12
12
  # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
13
  # -----------------------------------------------------------------------------
14
14
  */
15
- .jg-gallery-title{color:#212121;line-height:1.25rem;font-size:1.125rem;font-weight:500;margin-bottom:.5rem}.justified-gallery img.img-overlay{height:64px;width:64px;bottom:0;left:50%;margin-left:-35px;margin-top:-35px;position:absolute;right:0;top:50%;-webkit-transition:background-color .15s ease 0s;-o-transition:background-color .15s ease 0s;transition:background-color .15s ease 0s}
15
+ .jg-gallery-title{line-height:1.25rem;font-size:1.125rem;font-weight:500;margin-bottom:.5rem}.justified-gallery img.img-overlay{height:64px;width:64px;bottom:0;left:50%;margin-left:-35px;margin-top:-35px;position:absolute;right:0;top:50%;-webkit-transition:background-color .15s ease 0s;-o-transition:background-color .15s ease 0s;transition:background-color .15s ease 0s}
@@ -85,7 +85,7 @@ div.copied {
85
85
  position: fixed;
86
86
  top: 100px;
87
87
  left: 50%;
88
- width: 300px;
88
+ width: 200px;
89
89
  text-align: center;
90
90
  color: #FAFAFA;
91
91
  background-color: #2196F3;
@@ -12,4 +12,4 @@
12
12
  # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
13
  # -----------------------------------------------------------------------------
14
14
  */
15
- .icons{//display:none;//padding:0 20px 10px 20px;-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:2rem;-moz-column-gap:2rem;column-gap:2rem}.icons div{line-height:3rem;color:rgba(0,0,0,0.6)}.icons div span{cursor:pointer;font-size:1rem;text-overflow:ellipsis;display:inline-block;max-width:calc(100% - 90px);overflow:hidden;vertical-align:middle;white-space:nowrap;margin-left:.5rem}.icons div code:hover,.icons div span:hover,.icons div i:hover{color:rgba(0,0,0,0.5)}.icons div code:hover{border-color:#2196f3}.icons div code{color:#424242;background-color:#e0e0e0;border:1px solid #9e9e9e;width:80px;margin-left:2px;margin-right:4px;border-radius:4px;display:inline-block;vertical-align:middle;text-align:center;line-height:24px;cursor:pointer}.icons div i{display:inline-block;width:32px;height:24px;margin-right:.5rem;text-align:center;vertical-align:middle;cursor:pointer;line-height:24px}.icons .mdi:before{font-size:24px}div.copied{position:fixed;top:100px;left:50%;width:300px;text-align:center;color:#fafafa;background-color:#2196f3;border:1px solid #0d47a1;padding:10px 15px;border-radius:4px;margin-left:-100px;box-shadow:0 0 10px rgba(0,0,0,0.2)}
15
+ .icons{//display:none;//padding:0 20px 10px 20px;-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:2rem;-moz-column-gap:2rem;column-gap:2rem}.icons div{line-height:3rem;color:rgba(0,0,0,0.6)}.icons div span{cursor:pointer;font-size:1rem;text-overflow:ellipsis;display:inline-block;max-width:calc(100% - 90px);overflow:hidden;vertical-align:middle;white-space:nowrap;margin-left:.5rem}.icons div code:hover,.icons div span:hover,.icons div i:hover{color:rgba(0,0,0,0.5)}.icons div code:hover{border-color:#2196f3}.icons div code{color:#424242;background-color:#e0e0e0;border:1px solid #9e9e9e;width:80px;margin-left:2px;margin-right:4px;border-radius:4px;display:inline-block;vertical-align:middle;text-align:center;line-height:24px;cursor:pointer}.icons div i{display:inline-block;width:32px;height:24px;margin-right:.5rem;text-align:center;vertical-align:middle;cursor:pointer;line-height:24px}.icons .mdi:before{font-size:24px}div.copied{position:fixed;top:100px;left:50%;width:200px;text-align:center;color:#fafafa;background-color:#2196f3;border:1px solid #0d47a1;padding:10px 15px;border-radius:4px;margin-left:-100px;box-shadow:0 0 10px rgba(0,0,0,0.2)}