j1-template 2020.0.16 → 2020.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (395) 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 +4 -4
  4. data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +2 -2
  5. data/_includes/themes/j1/blocks/footer/generator.html +1 -1
  6. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +19 -16
  7. data/_includes/themes/j1/layouts/content_generator_collection.html +2 -2
  8. data/_includes/themes/j1/layouts/content_generator_page.html +8 -56
  9. data/_includes/themes/j1/layouts/content_generator_post.html +5 -3
  10. data/_includes/themes/j1/procedures/global/attributes_loader.proc +117 -0
  11. data/_includes/themes/j1/procedures/global/create_bs_button.proc +10 -10
  12. data/_includes/themes/j1/procedures/global/create_word_cloud.proc +14 -12
  13. data/_includes/themes/j1/procedures/global/get_documents_dir.proc +1 -1
  14. data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +3 -3
  15. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +37 -38
  16. data/_layouts/blog_archive.html +4 -3
  17. data/_layouts/collection.html +1 -1
  18. data/_layouts/home.html +1 -1
  19. data/_layouts/page.html +2 -2
  20. data/_layouts/post.html +3 -3
  21. data/apps/public/cc/cc.yml +0 -2
  22. data/assets/data/authclient.html +15 -15
  23. data/assets/data/banner.html +11 -11
  24. data/assets/data/carousel.json +1 -1
  25. data/assets/data/cookiebar.html +8 -8
  26. data/assets/data/footer.html +1 -1
  27. data/assets/data/galleries.json +1 -1
  28. data/assets/data/gallery_customizer.html +4 -4
  29. data/assets/data/mdi_icons.json +1 -1
  30. data/assets/data/menu.html +7 -7
  31. data/assets/data/mmenu.html +5 -5
  32. data/assets/data/mmenu_sidebar.html +2 -2
  33. data/assets/data/mmenu_toc.html +2 -2
  34. data/assets/data/panel.html +115 -95
  35. data/assets/data/quicklinks.html +2 -2
  36. data/assets/data/search.json +1 -1
  37. data/assets/data/ssm.html +2 -2
  38. data/assets/data/themes.json +3 -1
  39. data/assets/data/twa_v1.json +1 -1
  40. data/assets/themes/j1/adapter/js/algolia.js +1 -1
  41. data/assets/themes/j1/adapter/js/attic.js +1 -1
  42. data/assets/themes/j1/adapter/js/back2top.js +231 -0
  43. data/assets/themes/j1/adapter/js/{mdb.js → bmd.js} +11 -11
  44. data/assets/themes/j1/adapter/js/carousel.js +135 -134
  45. data/assets/themes/j1/adapter/js/clipboard.js +2 -1
  46. data/assets/themes/j1/adapter/js/cookiebar.js +2 -1
  47. data/assets/themes/j1/adapter/js/framer.js +1 -5
  48. data/assets/themes/j1/adapter/js/gallery_customizer.js +2 -1
  49. data/assets/themes/j1/adapter/js/j1.js +36 -10
  50. data/assets/themes/j1/adapter/js/jf_gallery.js +1 -1
  51. data/assets/themes/j1/adapter/js/lightbox.js +1 -1
  52. data/assets/themes/j1/adapter/js/logger.js +2 -1
  53. data/assets/themes/j1/adapter/js/mmenu.js +10 -8
  54. data/assets/themes/j1/adapter/js/navigator.js +101 -31
  55. data/assets/themes/j1/adapter/js/searcher.js +1 -1
  56. data/assets/themes/j1/adapter/js/ssm.js +30 -29
  57. data/assets/themes/j1/adapter/js/themer.js +7 -13
  58. data/assets/themes/j1/adapter/js/toccer.js +37 -7
  59. data/assets/themes/j1/core/css/animate.css +17 -0
  60. data/assets/themes/j1/core/css/bootstrap.css +54 -48
  61. data/assets/themes/j1/core/css/bootstrap.min.css +3 -3
  62. data/assets/themes/j1/core/css/{fontawesome.css → icons-fontawesome.css} +31 -12
  63. data/assets/themes/j1/core/css/{fontawesome.min.css → icons-fontawesome.min.css} +0 -0
  64. data/assets/themes/j1/core/css/{iconify-icons.css → icons-iconify.css} +51 -38
  65. data/assets/themes/j1/core/css/{iconify-icons.min.css → icons-iconify.min.css} +1 -1
  66. data/assets/themes/j1/core/css/{material-design-icons.css → icons-materialdesign.css} +326 -244
  67. data/assets/themes/j1/core/css/icons-materialdesign.min.css +1 -0
  68. data/assets/themes/j1/core/css/{twemoji.css → icons-twemoji.css} +61 -51
  69. data/assets/themes/j1/core/css/{twemoji.min.css → icons-twemoji.min.css} +0 -0
  70. data/assets/themes/j1/core/css/{theme_extensions.css → theme-extensions.css} +1754 -1429
  71. data/assets/themes/j1/core/css/theme-extensions.min.css +1 -0
  72. data/assets/themes/j1/core/css/uno-dark.css +8109 -0
  73. data/assets/themes/j1/core/css/uno-dark.min.css +6 -0
  74. data/assets/themes/j1/core/css/uno.css +15337 -3046
  75. data/assets/themes/j1/core/css/uno.min.css +8 -1
  76. data/assets/themes/j1/core/css/vendor.css +86 -13430
  77. data/assets/themes/j1/core/css/vendor.min.css +1 -7
  78. data/assets/themes/j1/core/js/template.js +6 -6
  79. data/assets/themes/j1/core/js/template.js.map +1 -1
  80. data/assets/themes/j1/core/js/template.min.js +1 -1
  81. data/assets/themes/j1/modules/backstretch/js/backstretch.js +12 -13
  82. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +12 -13
  83. data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.js +43 -34
  84. data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.min.js +11 -12
  85. data/assets/themes/j1/modules/carousel/css/carousel.css +8 -9
  86. data/assets/themes/j1/modules/carousel/css/carousel.min.css +7 -9
  87. data/assets/themes/j1/modules/carousel/css/carousel_transitions.css +7 -8
  88. data/assets/themes/j1/modules/carousel/css/carousel_transitions.min.css +7 -9
  89. data/assets/themes/j1/modules/carousel/css/theme/uno.css +7 -8
  90. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +8 -9
  91. data/assets/themes/j1/modules/clipboard/css/theme/uno.css +7 -7
  92. data/assets/themes/j1/modules/clipboard/css/theme/uno.min.css +8 -45
  93. data/assets/themes/j1/modules/iframeResizer/examples/frame.absolute.html +2 -5
  94. data/assets/themes/j1/modules/iframeResizer/examples/frame.content.html +17 -44
  95. data/assets/themes/j1/modules/iframeResizer/examples/frame.hover.html +2 -5
  96. data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +5 -7
  97. data/assets/themes/j1/modules/iframeResizer/examples/frame.textarea.html +1 -1
  98. data/assets/themes/j1/modules/iframeResizer/examples/frame.tolerance.html +3 -5
  99. data/assets/themes/j1/modules/iframeResizer/examples/index.html +4 -3
  100. data/assets/themes/j1/modules/iframeResizer/examples/two.html +4 -3
  101. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.css +8 -9
  102. data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.min.css +8 -31
  103. data/assets/themes/j1/modules/lightGallery/css/themes/uno.css +7 -8
  104. data/assets/themes/j1/modules/lightGallery/css/themes/uno.min.css +8 -10
  105. data/assets/themes/j1/modules/lightbox/css/lightbox.css +11 -12
  106. data/assets/themes/j1/modules/lightbox/css/lightbox.min.css +11 -12
  107. data/assets/themes/j1/modules/lightbox/css/theme/uno.css +7 -7
  108. data/assets/themes/j1/modules/lightbox/css/theme/uno.min.css +7 -8
  109. data/assets/themes/j1/modules/lightbox/js/lightbox.js +11 -12
  110. data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +11 -27
  111. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +82 -0
  112. data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +15 -0
  113. data/assets/{README.md → themes/j1/modules/mdiPreviewer/js/readme} +0 -0
  114. data/assets/themes/j1/modules/mmenuLight/css/mmenu.css +11 -11
  115. data/assets/themes/j1/modules/mmenuLight/css/mmenu.min.css +12 -386
  116. data/assets/themes/j1/modules/mmenuLight/css/theme/uno.css +15 -19
  117. data/assets/themes/j1/modules/mmenuLight/css/theme/uno.min.css +8 -163
  118. data/assets/themes/j1/modules/popper/js/popper.js +1 -1
  119. data/assets/themes/j1/modules/popper/js/popper.js.map +1 -1
  120. data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -1
  121. data/assets/themes/j1/modules/tocbot/css/theme/uno.css +12 -19
  122. data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +8 -82
  123. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +153 -0
  124. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +19 -0
  125. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +12 -13
  126. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +12 -268
  127. data/assets/themes/j1/modules/twemoji/js/twemoji.js +11 -20
  128. data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +11 -17
  129. data/lib/j1/version.rb +1 -1
  130. data/lib/j1_app/j1_auth_manager/config.rb +10 -5
  131. data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +5 -5
  132. data/lib/starter_web/Gemfile +6 -2
  133. data/lib/starter_web/_config.yml +2 -2
  134. data/lib/starter_web/_data/apps/carousel.yml +6 -7
  135. data/lib/starter_web/_data/apps/defaults/carousel.yml +2 -3
  136. data/lib/starter_web/_data/apps/defaults/gallery_customizer.yml +1 -2
  137. data/lib/starter_web/_data/apps/defaults/justified_gallery.yml +1 -2
  138. data/lib/starter_web/_data/apps/defaults/light_gallery.yml +1 -2
  139. data/lib/starter_web/_data/apps/defaults/lightbox.yml +1 -2
  140. data/lib/starter_web/_data/apps/gallery_customizer.yml +1 -2
  141. data/lib/starter_web/_data/apps/justified_gallery.yml +4 -5
  142. data/lib/starter_web/_data/apps/light_gallery.yml +1 -2
  143. data/lib/starter_web/_data/apps/lightbox.yml +1 -2
  144. data/lib/starter_web/_data/blocks/banner.yml +25 -21
  145. data/lib/starter_web/_data/blocks/defaults/banner.yml +3 -4
  146. data/lib/starter_web/_data/blocks/defaults/footer.yml +1 -2
  147. data/lib/starter_web/_data/blocks/defaults/panel.yml +3 -4
  148. data/lib/starter_web/_data/blocks/footer.yml +1 -2
  149. data/lib/starter_web/_data/blocks/panel.yml +29 -23
  150. data/lib/starter_web/_data/builder/blog_navigator.yml +1 -2
  151. data/lib/starter_web/_data/layouts/app.yml +1 -2
  152. data/lib/starter_web/_data/layouts/blog_archive.yml +1 -2
  153. data/lib/starter_web/_data/layouts/collection.yml +1 -2
  154. data/lib/starter_web/_data/layouts/home.yml +7 -28
  155. data/lib/starter_web/_data/layouts/post.yml +1 -2
  156. data/lib/starter_web/_data/layouts/raw.yml +1 -2
  157. data/lib/starter_web/_data/modules/advertising.yml +0 -1
  158. data/lib/starter_web/_data/modules/attics.yml +0 -1
  159. data/lib/starter_web/_data/modules/authentication.yml +0 -1
  160. data/lib/starter_web/_data/modules/back2top.yml +30 -0
  161. data/lib/starter_web/_data/modules/defaults/attics.yml +5 -3
  162. data/lib/starter_web/_data/modules/defaults/authentication.yml +0 -1
  163. data/lib/starter_web/_data/modules/defaults/back2top.yml +146 -0
  164. data/lib/starter_web/_data/modules/defaults/framer.yml +1 -3
  165. data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +0 -1
  166. data/lib/starter_web/_data/modules/defaults/log4javascript.yml +4 -5
  167. data/lib/starter_web/_data/modules/defaults/log4r.yml +1 -2
  168. data/lib/starter_web/_data/modules/defaults/navigator.yml +15 -15
  169. data/lib/starter_web/_data/modules/defaults/stickybits.yml +1 -2
  170. data/lib/starter_web/_data/modules/defaults/themer.yml +3 -3
  171. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -2
  172. data/lib/starter_web/_data/modules/framer.yml +1 -2
  173. data/lib/starter_web/_data/modules/log4javascript.yml +4 -5
  174. data/lib/starter_web/_data/modules/log4r.yml +1 -2
  175. data/lib/starter_web/_data/modules/navigator_menu.yml +3 -3
  176. data/lib/starter_web/_data/modules/themer.yml +2 -1
  177. data/lib/starter_web/_data/modules/toccer.yml +1 -1
  178. data/lib/starter_web/_data/private.yml +56 -108
  179. data/lib/starter_web/_data/resources.yml +107 -32
  180. data/lib/starter_web/_data/template_settings.yml +1 -1
  181. data/lib/starter_web/assets/images/modules/attics/aditya-joshi-1920x1280.jpg +0 -0
  182. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.jpg +0 -0
  183. data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
  184. data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
  185. data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
  186. data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
  187. data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
  188. data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
  189. data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
  190. data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
  191. data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
  192. data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
  193. data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
  194. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
  195. data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
  196. data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
  197. data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
  198. data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
  199. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
  200. data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
  201. data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
  202. data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
  203. data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
  204. data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
  205. data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
  206. data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
  207. data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
  208. data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
  209. data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
  210. data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
  211. data/lib/starter_web/assets/images/modules/carousel/cats/cat-2.jpg +0 -0
  212. data/lib/starter_web/assets/images/modules/carousel/cats/cat-3.jpg +0 -0
  213. data/lib/starter_web/assets/images/modules/carousel/cats/cat-4.jpg +0 -0
  214. data/lib/starter_web/assets/images/modules/carousel/cats/cat-5.jpg +0 -0
  215. data/lib/starter_web/assets/images/modules/carousel/cats/cat-6.jpg +0 -0
  216. data/lib/starter_web/assets/images/modules/carousel/cats/cat-7.jpg +0 -0
  217. data/lib/starter_web/assets/images/modules/carousel/cats/cat-8.jpg +0 -0
  218. data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
  219. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  220. data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  221. data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
  222. data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
  223. data/lib/starter_web/assets/images/modules/gallery/mega_cities/andreas-brucker_b.jpg +0 -0
  224. data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
  225. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
  226. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
  227. data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
  228. data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
  229. data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
  230. data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
  231. data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
  232. data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
  233. data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
  234. data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
  235. data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
  236. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
  237. data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
  238. data/lib/starter_web/assets/images/modules/icons/j1/favicon.ico +0 -0
  239. data/lib/starter_web/assets/images/modules/icons/j1/j1-256x256.png +0 -0
  240. data/lib/starter_web/assets/images/modules/icons/j1/j1-32x32.ico +0 -0
  241. data/lib/starter_web/assets/images/modules/icons/j1/j1-512x512.png +0 -0
  242. data/lib/starter_web/assets/images/modules/icons/j1/j1-64x64.png +0 -0
  243. data/lib/starter_web/assets/images/modules/icons/j1/j1.ico +0 -0
  244. data/lib/starter_web/assets/images/modules/icons/j1/scalable/j1.svg +31 -35
  245. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-1.jpg +0 -0
  246. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-2.jpg +0 -0
  247. data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-3.jpg +0 -0
  248. data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-1920x1000-bw.jpg +0 -0
  249. data/lib/starter_web/assets/images/pages/roundtrip/cards-1920x1280-bw.jpg +0 -0
  250. data/lib/starter_web/assets/images/pages/roundtrip/emojies-1920x1280-bw.jpg +0 -0
  251. data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920x1280-bw.jpg +0 -0
  252. data/lib/starter_web/assets/images/pages/roundtrip/images-1920x1280-bw.jpg +0 -0
  253. data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1920x1280-bw.jpg +0 -0
  254. data/lib/starter_web/assets/images/pages/roundtrip/tables-1920x1280-bw.jpg +0 -0
  255. data/lib/starter_web/assets/images/pages/roundtrip/themes-1920x1280-bw.jpg +0 -0
  256. data/lib/starter_web/assets/images/pages/roundtrip/typography-1920x1280-bw.jpg +0 -0
  257. data/lib/starter_web/assets/videos/gallery/adriana-lima-poster.jpg +0 -0
  258. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  259. data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
  260. data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
  261. data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
  262. data/lib/starter_web/assets/videos/headers/still/underground-broadway.jpg +0 -0
  263. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
  264. data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +81 -0
  265. data/lib/starter_web/collections/_biography/becoming.adoc +72 -0
  266. data/lib/starter_web/collections/_biography/born-to-run.adoc +78 -0
  267. data/lib/starter_web/collections/_biography/forty-autumns.adoc +75 -0
  268. data/lib/starter_web/collections/_biography/not-dead-yet.adoc +69 -0
  269. data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +72 -0
  270. data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +73 -0
  271. data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +64 -0
  272. data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +64 -0
  273. data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +62 -0
  274. data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +63 -0
  275. data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +62 -0
  276. data/lib/starter_web/collections/_fantasy/terry-pratchet-diary-2017.adoc +60 -0
  277. data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes-a.adoc +67 -0
  278. data/lib/starter_web/collections/_romance/dressmaker-the.adoc +61 -0
  279. data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +69 -0
  280. data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +66 -0
  281. data/lib/starter_web/collections/_romance/outlander-novel.adoc +78 -0
  282. data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +62 -0
  283. data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +2 -2
  284. data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +1 -1
  285. data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +28 -24
  286. data/lib/starter_web/collections/posts/public/series/_posts/includes/attributes.asciidoc +66 -0
  287. data/lib/starter_web/collections/posts/public/series/_posts/includes/documents/100-docker-using-shared-folders.asciidoc +430 -0
  288. data/lib/starter_web/collections/posts/public/series/_posts/includes/documents/loop.sh +28 -0
  289. data/lib/starter_web/collections/posts/public/series/_posts/includes/tables/debug_variables.asciidoc +48 -0
  290. data/lib/starter_web/collections/posts/public/test_posts/_posts/2020-09-11-test_post.adoc +134 -0
  291. data/lib/starter_web/collections/posts/public/test_posts/_posts/includes/attributes.asciidoc +41 -0
  292. data/lib/starter_web/collections/posts/public/test_posts/_posts/includes/tables/debug_variables.asciidoc +48 -0
  293. data/lib/starter_web/includes/attributes.asciidoc +183 -0
  294. data/lib/starter_web/index.html +1 -1
  295. data/lib/starter_web/package.json +2 -2
  296. data/lib/starter_web/pages/protected/site_search.adoc +8 -19
  297. data/lib/starter_web/pages/public/blog/navigator/archive.html +11 -17
  298. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +13 -19
  299. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +13 -19
  300. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +11 -12
  301. data/lib/starter_web/pages/public/bookshelf/100_whats_up.adoc +281 -0
  302. data/lib/starter_web/pages/public/bookshelf/200_book_shelf_biography.adoc +52 -0
  303. data/lib/starter_web/pages/public/bookshelf/300_book_shelf_fantasy.adoc +54 -0
  304. data/lib/starter_web/pages/public/bookshelf/400_book_shelf_romance.adoc +54 -0
  305. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +10 -19
  306. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +12 -23
  307. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +11 -21
  308. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/attributes.asciidoc +21 -12
  309. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/documents/100_meet_and_greet_jekyll.asciidoc +0 -0
  310. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/documents/200_preparations.asciidoc +0 -0
  311. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/documents/300_first_awesome_web.asciidoc +0 -0
  312. data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/parts.asciidoc +0 -0
  313. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +58 -79
  314. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +27 -40
  315. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +33 -48
  316. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +40 -54
  317. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +81 -96
  318. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +14 -54
  319. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +25 -40
  320. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +21 -36
  321. data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/mdb_previewer.adoc +2 -2
  322. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/attributes.asciidoc +7 -32
  323. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/100_gistblock.asciidoc +0 -0
  324. data/lib/starter_web/pages/public/learn/roundtrip/includes/documents/410_bottom_info.asciidoc +14 -0
  325. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_bottom_left_warning.asciidoc +2 -2
  326. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_bottom_right_danger.asciidoc +2 -2
  327. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_central_success.asciidoc +2 -2
  328. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_full_height_left_info.asciidoc +2 -2
  329. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_full_height_right_success.asciidoc +2 -2
  330. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_table_3_column.asciidoc +0 -0
  331. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_top_info.asciidoc +3 -3
  332. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_top_left_info.asciidoc +2 -2
  333. data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_top_right_success.asciidoc +2 -2
  334. data/lib/starter_web/pages/public/learn/roundtrip/includes/documents/419_advanced_modals_demo.asciidoc +337 -0
  335. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_info.asciidoc +1 -1
  336. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +1 -1
  337. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +1 -1
  338. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_central_success.asciidoc +1 -1
  339. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +1 -1
  340. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +1 -1
  341. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_info.asciidoc +1 -1
  342. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_left_info.asciidoc +1 -1
  343. data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_right_success.asciidoc +1 -1
  344. data/lib/starter_web/pages/public/learn/whats_up.adoc +6 -25
  345. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +6 -12
  346. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +27 -33
  347. data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +3 -2
  348. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +2 -0
  349. data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1297 -717
  350. data/lib/starter_web/pages/public/previewer/iframer.adoc +2 -7
  351. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/attributes.asciidoc +16 -8
  352. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -0
  353. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -0
  354. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/120_relative_sizes.asciidoc +0 -0
  355. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/200_rotate.asciidoc +0 -0
  356. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/300_flip.asciidoc +0 -0
  357. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -0
  358. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -0
  359. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -0
  360. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/600_md_color_palette.asciidoc +0 -0
  361. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -0
  362. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -0
  363. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -0
  364. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -0
  365. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/200_rotate.asciidoc +0 -0
  366. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/300_flip.asciidoc +0 -0
  367. data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -0
  368. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +9 -22
  369. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +22 -29
  370. data/lib/starter_web/pages/public/{learn/examples → test_pages}/floating_ad.adoc +0 -0
  371. data/lib/starter_web/pages/public/{learn/examples → test_pages}/floating_div.adoc +1 -1
  372. data/lib/starter_web/pages/public/test_pages/includes/attributes.asciidoc +47 -0
  373. data/lib/starter_web/pages/public/test_pages/includes/documents/100_gistblock.asciidoc +27 -0
  374. data/lib/starter_web/pages/public/test_pages/includes/images/pages/minneapolis.1200x400.jpg +0 -0
  375. data/lib/starter_web/pages/public/test_pages/includes/tables/000_bem_specifiers.asciidoc +22 -0
  376. data/lib/starter_web/pages/public/test_pages/includes/tables/000_specifier_examples.asciidoc +56 -0
  377. data/lib/starter_web/pages/public/test_pages/nav_pagination_tester.adoc +297 -0
  378. data/lib/starter_web/pages/public/test_pages/page_attribute_tester.adoc +103 -0
  379. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  380. data/lib/starter_web/utilsrv/package.json +1 -1
  381. metadata +106 -65
  382. data/_includes/themes/j1/blocks/footer/boxes/about_box.proc.org +0 -40
  383. data/assets/themes/j1/core/css/material-design-icons.min.css +0 -1
  384. data/assets/themes/j1/core/css/theme_extensions.min.css +0 -1
  385. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js.org +0 -1
  386. data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.png +0 -0
  387. data/lib/starter_web/assets/images/modules/attics/mae-mu-Vf9gbsLZyf0-unsplash.jpg +0 -0
  388. data/lib/starter_web/assets/videos/headers/still/underground-broadway.webp +0 -0
  389. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.webp +0 -0
  390. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.1.asciidoc +0 -120
  391. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.adoc +0 -144
  392. data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +0 -642
  393. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_info.asciidoc +0 -11
  394. data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +0 -928
  395. data/lib/starter_web/pages/public/learn/roundtrip/bs_tour.js +0 -98
@@ -26,7 +26,7 @@ robots:
26
26
  #permalink: /
27
27
  scrollbar: false
28
28
 
29
- resources: [ animate ]
29
+ resources: [ back2top, animate ]
30
30
  resource_options:
31
31
  - attic:
32
32
  padding_top: 400
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "j1_starter",
4
- "version": "2020.0.16",
5
- "description": "J1 Template starter Web",
4
+ "version": "2020.0.21",
5
+ "description": "J1 Template Starter Web",
6
6
  "homepage": "https://your.site",
7
7
  "author": {
8
8
  "name": "Your Name",
@@ -24,32 +24,21 @@ resource_options:
24
24
  alt: featured-1920x800
25
25
  ---
26
26
 
27
+ // Page Initializer
28
+ // =============================================================================
27
29
  // Enable the Liquid Preprocessor
28
- // -----------------------------------------------------------------------------
29
30
  :page-liquid:
30
31
 
31
- // Set other global page attributes here
32
- // -----------------------------------------------------------------------------
33
-
34
- // Liquid procedures
35
- // -----------------------------------------------------------------------------
36
- //{% capture set_env_entry_document %}themes/{{site.template.name}}/procedures/global/set_env_entry_document.proc{%endcapture%}
37
-
38
- // Initialize entry document paths
39
- // -----------------------------------------------------------------------------
40
- //{% include {{set_env_entry_document}} init_folders=all %}
41
-
42
- // Load tags and urls
32
+ // Load Liquid procedures
43
33
  // -----------------------------------------------------------------------------
44
- //include::{includedir}/attributes.asciidoc[tag=tags]
45
- //include::{includedir}/attributes.asciidoc[tag=urls]
46
- //include::{includedir}/attributes.asciidoc[tag=data]
34
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
47
35
 
48
- // Additional Asciidoc page attributes goes here
36
+ // Load page attributes (all)
49
37
  // -----------------------------------------------------------------------------
38
+ {% include {{load_attributes}} %}
50
39
 
51
- // Include sub-documents
52
- // -----------------------------------------------------------------------------
40
+ // Page content
41
+ // =============================================================================
53
42
 
54
43
  == Site Search
55
44
 
@@ -72,26 +72,20 @@ resource_options:
72
72
 
73
73
  <!-- ul class="list-unstyled link-news" -->
74
74
  {% for post in site.posts %}
75
- {% assign excerpt = post.excerpt | truncatewords: 50 | strip_html | strip_newlines | strip %}
76
- <div class="card card-flat" style="background-color: #fafafa">
77
- <div class="card-body">
78
- <!-- <span class="post-meta">{{post.date|date: "%B %d, %Y"}}</span> -->
79
- <h3 id="{{100000 | rand}}" class="card-title">{{post.title}}</h3>
80
- <h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5>
81
- <div class="card-text"><p>{{excerpt}}</p></div>
82
- <span class="d-block text-muted text-uppercase g-font-weight-600 g-font-size-12">
83
- <i class="mdi mdi-calendar-blank"></i>
84
- {{post.date|date:'%Y %B, %e'}}
85
- </span>
75
+ {% assign excerpt = post.excerpt|truncatewords:50|replace:'...',' ...'|strip_html|strip_newlines|strip %}
76
+ <article class="card raised-z5 mb-5">
77
+ <h3 id="{{100000|rand}}" class="card-header bg-primary">{{post.title}}</h3>
78
+ <!-- h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5 -->
79
+ <div class="card-body r-text-300">{{excerpt}}</div>
80
+ <div class="card-body text-muted r-text-200">
81
+ <i class="mdi mdi-calendar-blank"></i> {{post.date|date:"%Y %B, %e"}}
86
82
  </div>
87
- <div class="card-footer" style="background-color: #fafafa">
88
- <!-- <a class="card-link" href="{{post.url}}#readmore" target="_blank">Read more ..</a> -->
89
- <a class="btn btn-secondary btn-raised btn-flex" href="{{post.url}}#readmore">
90
- <i class="fa fa-eye fa-lg mr-2" style="color:#FFFFFF;"></i>
91
- Read · {{post.tagline}}
83
+ <div class="card-footer r-text-200">
84
+ <a class="card-link md-blue font-weight-bold g-font-size-12 text-uppercase"
85
+ href="{{post.url}}#readmore">Read · {{post.tagline}}
92
86
  </a>
93
87
  </div>
94
- </div>
88
+ </article>
95
89
  {% endfor %}
96
90
  </div>
97
91
 
@@ -33,7 +33,6 @@ resource_options:
33
33
  -------------------------------------------------------------------------------- {% endcomment %}
34
34
  {% comment %} site_category_word_list: {{site_category_word_list|debug}} {% endcomment %}
35
35
 
36
-
37
36
  {% comment %} Liquid procedures
38
37
  -------------------------------------------------------------------------------- {% endcomment %}
39
38
  {% capture get_page_path %}themes/{{site.template.name}}/procedures/global/get_page_path.proc{% endcapture %}
@@ -103,7 +102,7 @@ resource_options:
103
102
  {% for tag in tags %}
104
103
  {% assign category = tag|first %}
105
104
  {% unless category_list contains category %} {% continue %} {% endunless %}
106
- <h3 id="{{tag|first}}" class="toc-link"><i class="mdi mdi-pin mr-1"></i>{{tag|first|capitalize}}</h3>
105
+ <h3 id="{{tag|first}}" class="mb-4"><i class="mdi mdi-pin mr-1"></i>{{tag|first|capitalize}}</h3>
107
106
 
108
107
  {% for post in sorted_posts %}
109
108
  {%if post.categories contains tag[0]%}
@@ -111,26 +110,21 @@ resource_options:
111
110
  {% include {{get_category_item}} category=category %}
112
111
  {% include {{select_icon_size}} family=icon_family size=icon_size %}
113
112
  {% assign icon_size = size %}
114
- {% assign excerpt = post.excerpt|truncatewords: 50|strip_html|strip_newlines|strip %}
115
-
116
- <div class="card card-flat" style="background-color: #fafafa">
117
- <div class="card-body">
118
- <!-- <span class="post-meta">{{post.date|date: "%B %d, %Y"}}</span> -->
119
- <h4 id="{{100000|rand}}" class="card-title">{{post.title}}</h4>
120
- <h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5>
121
- <div class="card-text"><p>{{excerpt}}</p></div>
122
- <span class="d-block text-muted text-uppercase g-font-weight-600 g-font-size-12">
123
- <i class="mdi mdi-calendar-blank"></i>
124
- {{post.date|date:"%Y %B, %e"}}
125
- </span>
113
+ {% assign excerpt = post.excerpt|truncatewords:50|replace:'...',' ...'|strip_html|strip_newlines|strip %}
114
+
115
+ <article class="card raised-z5 mb-5">
116
+ <h3 id="{{100000|rand}}" class="card-header bg-primary notoc">{{post.title}}</h3>
117
+ <!-- h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5 -->
118
+ <div class="card-body r-text-300">{{excerpt}}</div>
119
+ <div class="card-body text-muted r-text-200">
120
+ <i class="mdi mdi-calendar-blank"></i> {{post.date|date:"%Y %B, %e"}}
126
121
  </div>
127
- <div class="card-footer" style="background-color: #fafafa">
128
- <a class="btn btn-secondary btn-raised btn-flex" href="{{post.url}}#readmore">
129
- <i class="mdi mdi-eye mdi-lg mr-2" style="color:#FFFFFF;"></i>
130
- Read · {{post.tagline}}
122
+ <div class="card-footer r-text-200">
123
+ <a class="card-link md-blue font-weight-bold g-font-size-12 text-uppercase"
124
+ href="{{post.url}}#readmore">Read · {{post.tagline}}
131
125
  </a>
132
126
  </div>
133
- </div>
127
+ </article>
134
128
  {% endif %}
135
129
  {% endfor %}
136
130
  {% endfor %}
@@ -78,9 +78,9 @@ resource_options:
78
78
  {% capture nmonth %}{{post.next.date|date:'%m%Y'}}{% endcapture %}
79
79
  {% capture monthHead %}
80
80
  {% if month != nmonth %}
81
- {% if forloop.index != 1 %}{{closeList}}{%endif %}
81
+ {% if forloop.index != 1 %}{{closeList}}{%endif %}
82
82
  <h3 id="{{100000|rand}}"
83
- class="toc-link mt-5 mb-2">
83
+ class="toc-link mt-5 mb-3">
84
84
  {% if year != nyear %}
85
85
  <a id="{{post.date|date:'%Y'}}"></a>
86
86
  {% endif %}<a id="{{post.date|date:'%Y-%m' }}">
@@ -93,27 +93,21 @@ resource_options:
93
93
  {% endcapture %}
94
94
 
95
95
  {% capture link %}
96
- {% assign excerpt = post.excerpt|truncatewords:50|strip_html|strip_newlines|strip %}
96
+ {% assign excerpt = post.excerpt|truncatewords:50|replace:'...',' ...'|strip_html|strip_newlines|strip %}
97
97
  <li>
98
- <div class="card card-flat mb-4" style="background-color: #fafafa">
99
- <div class="card-body">
100
- <!-- <span class="post-meta">{{post.date|date:'%B %d, %Y'}}</span> -->
101
- <h4 id="{{100000|rand}}" class="card-title">{{post.title}}</h4>
102
- <h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5>
103
- <div class="card-text"><p>{{excerpt}}</p></div>
104
- <span class="d-block text-muted text-uppercase g-font-weight-600 g-font-size-12">
105
- <i class="mdi mdi-calendar-blank"></i>
106
- {{post.date|date:'%Y %B, %e'}}
107
- </span>
98
+ <article class="card raised-z5 mb-5">
99
+ <h3 id="{{100000|rand}}" class="card-header bg-primary notoc">{{post.title}}</h3>
100
+ <!-- h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5 -->
101
+ <div class="card-body r-text-300">{{excerpt}}</div>
102
+ <div class="card-body text-muted r-text-200">
103
+ <i class="mdi mdi-calendar-blank"></i> {{post.date|date:"%Y %B, %e"}}
108
104
  </div>
109
- <div class="card-footer" style="background-color: #fafafa">
110
- <!-- <a class="card-link" href="{{post.url}}#readmore" target="_blank">Read more ..</a> -->
111
- <a class="btn btn-secondary btn-raised btn-flex" href="{{post.url}}#readmore">
112
- <i class="mdi mdi-eye mdi-lg mr-2" style="color:#FFFFFF;"></i>
113
- Read · {{post.tagline}}
105
+ <div class="card-footer r-text-200">
106
+ <a class="card-link md-blue font-weight-bold g-font-size-12 text-uppercase"
107
+ href="{{post.url}}#readmore">Read · {{post.tagline}}
114
108
  </a>
115
109
  </div>
116
- </div>
110
+ </article>
117
111
  </li>
118
112
  {% endcapture %}
119
113
 
@@ -146,23 +146,22 @@ resource_options:
146
146
  {% include {{select_icon_size}} family=icon_family size=icon_size %}
147
147
  {% assign icon_size = size %}
148
148
 
149
- {% assign excerpt = post.excerpt | truncatewords: 50 | strip_html | strip_newlines | strip %}
149
+ {% assign excerpt = post.excerpt|truncatewords:50|replace:'...',' ...'|strip_html|strip_newlines|strip %}
150
150
 
151
151
  <!-- place post -->
152
- <div class="card card-flat mb-4">
153
- <div class="card-body">
154
- <!-- <span class="post-meta">{{post.date|date: "%B %d, %Y"}}</span> -->
155
- <h5 id="{{100000 | rand}}" class="card-title">{{post.title}}</h5>
156
- <h6 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h6>
157
- <div class="card-text"><p>{{excerpt}}</p></div>
152
+ <article class="card raised-z5 mb-5">
153
+ <h3 id="{{100000|rand}}" class="card-header bg-primary">{{post.title}}</h3>
154
+ <!-- h5 class="notoc card-subtitle text-muted mb-2">{{post.tagline}}</h5 -->
155
+ <div class="card-body r-text-300">{{excerpt}}</div>
156
+ <div class="card-body text-muted r-text-200">
157
+ <i class="mdi mdi-calendar-blank"></i> {{post.date|date:"%Y %B, %e"}}
158
158
  </div>
159
- <div class="card-footer">
160
- <a class="btn btn-secondary btn-raised btn-flex" href="{{post.url}}#readmore">
161
- <i class="mdi mdi-eye mdi-lg mr-2" style="color:#FFFFFF;"></i>
162
- Read · {{post.tagline}}
159
+ <div class="card-footer r-text-200">
160
+ <a class="card-link md-blue font-weight-bold g-font-size-12 text-uppercase"
161
+ href="{{post.url}}#readmore">Read · {{post.tagline}}
163
162
  </a>
164
163
  </div>
165
- </div>
164
+ </article>
166
165
  {% endif %}{% endfor %}
167
166
  {% endunless %}{% endfor %}
168
167
  </div>
@@ -0,0 +1,281 @@
1
+ ---
2
+ layout: page
3
+
4
+ title: What's up
5
+ tagline: Jekyll Collections Overview
6
+ description: Most powerful but least understood feature
7
+
8
+ tags: [ collections ]
9
+ index: [ Jekyll, Collections, Overview]
10
+ categories: [ collections ]
11
+
12
+ permalink: /pages/public/collections/whats_up/
13
+ regenerate: false
14
+
15
+ tags: [ Jekyll, Collections, Feature, Overview ]
16
+
17
+
18
+
19
+ resource_options:
20
+ - attic:
21
+ padding_top: 400
22
+ padding_bottom: 50
23
+ opacity: 0.5
24
+ slides:
25
+ - url: /assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg
26
+ alt: giammarco-boscaro-1920x1280
27
+
28
+ regenerate: false
29
+ ---
30
+
31
+ // Enable the Liquid Preprocessor
32
+ //
33
+ :page-liquid:
34
+
35
+ // Set other global page attributes here
36
+ // -------------------------------------------------------------------
37
+
38
+
39
+ Collections are Jekyll's most powerful and simultaneously least understood
40
+ feature. Collections add another possibility, or use-case, outside of Jekyll's
41
+ post- and page-publishing functionality. Collections have the potential to
42
+ bring Jekyll's zen-like simplicity to all sorts of other types of content that
43
+ aren't ordered as with posts (ordered by date), but have a set *relationship*
44
+ with one another - hence the name: _collection_.
45
+
46
+ excerpt__end
47
+
48
+ Source: https://ben.balter.com/2015/02/20/jekyll-collections/[Ben Balter: Jekyll Collections]
49
+
50
+ [[readmore]]
51
+ == Traditional - Posts and pages
52
+
53
+ {% if page.image.name %}
54
+ .{{page.tagline}}
55
+ [role="mb-5"]
56
+ image::{{page.image.name}}[{{page.title}}]
57
+ {% endif %}
58
+
59
+ Most Jekyll sites are organized around two types of content, posts (ordered)
60
+ and pages (un-ordered).
61
+
62
+ * *http://jekyllrb.com/docs/posts/[Posts]* are organized reverse
63
+ chronologically. You might use them for blog posts on a personal blog,
64
+ or articles on a news site. You can recognize a post by its filename.
65
+ Posts live in the `&#x5F;posts` folder, and are always named in the form of
66
+ `YYYY-MM-DD-post-title.md`. Because posts are dated, they're
67
+ traditionally not updated regularly once published.
68
+
69
+ * *http://jekyllrb.com/docs/pages/[Pages]* are documents that don't have
70
+ a relationship with one another. They can live anywhere within the
71
+ site's source directory and don't have a set naming pattern. If you have
72
+ a personal blog, you might have an `index.html` page
73
+ (https://ben.balter.com/[the site's main page which is used to list
74
+ posts]), or https://ben.balter.com/about/[an about me page], to name two
75
+ examples. Because pages aren't date specific, pages are often updated
76
+ over time to maintain accuracy.
77
+
78
+ The problem is, not everything you might want to publish using a Jekyll
79
+ falls cleanly into the those two categories of content. As I noted in
80
+ https://github.com/jekyll/jekyll/issues/1941[the original pitch], "If
81
+ people are using blog posts for a non-blog post thing, Jekyll has
82
+ already failed". That's where Jekyll's
83
+ http://jekyllrb.com/docs/collections/[collections] come in.
84
+
85
+
86
+ == Not a post, a page - but a collection?
87
+
88
+ Collections add another possibility, or use-case, outside of Jekyll's
89
+ post- and page-publishing functionality. Collections have the potential to
90
+ bring Jekyll's zen-like simplicity to all sorts of other types of content that
91
+ aren't ordered as with posts (ordered by date), but have a set _relationship_
92
+ with one another - hence the name: _collection_. If you're familiar with
93
+ traditional CMS's, you can think of collections like
94
+ http://codex.wordpress.org/Post_Types[WordPress custom post types] or
95
+ https://www.drupal.org/node/774728[Drupal custom content types], except
96
+ you do not need to program a specific class, learn any back-end
97
+ languages, and the syntax used to specify them is very easily readable.
98
+
99
+ What then, might you use collections for? Let's say you're making a
100
+ website for a bakery and want to list the different cupcakes varieties
101
+ you sell. You might use a collection called *cupcakes*. You'd create a
102
+ `&#x5F;cupcakes` folder, and would add `chocolate.md` or `vanilla.md` to it.
103
+ And just like posts or pages, your list of cupcakes would be accessible
104
+ as `site.cupcakes`.
105
+
106
+ You wouldn't want to use posts here, because cupcakes aren't
107
+ chronological, and likely wouldn't want to just use a page here, because
108
+ it's a notably different animal than a document that lists your location
109
+ and hours. Each cupcake in the cupcakes collection is related to
110
+ one-another in the sense that they're all cupcakes.
111
+
112
+ [NOTE]
113
+ ====
114
+ Collections are a very new feature to Jekyll, and according to the
115
+ official documentation may be subject to change
116
+ http://jekyllrb.com/docs/collections/[Jekyll Documentation on
117
+ Collections]; but you should not let that put you off of using them,
118
+ because Jekyll is open-source, which means you should trust the
119
+ community to work-together for the best common-case solution.
120
+ ====
121
+
122
+
123
+ === Collections in practice
124
+
125
+ But what if one day you decided to expand your offerings and sell
126
+ cookies in addition to cupcakes. Simply introduce a "cookies"
127
+ collection, adding `chocolate-chip.md` and `peanut-butter.md` to a
128
+ `&#x5F;cookies` directory, exposing the cookies as `site.cookies`. You'll
129
+ notice the collections concept start to show its value here. Pages
130
+ wouldn't make sense here, because you'd want to be able to list cupcakes
131
+ and cookies separately, and besides for both being baked goods, the one
132
+ cookie doesn't really share a relationship with a cupcake, at least not
133
+ in the same sense that cookies share with one another.
134
+
135
+ Of course you could at this stage, choose to have a more generic
136
+ collection `products`, which you could develop liquid layouts for, so
137
+ that you and other developers could get the basic functionality needed
138
+ to display all products, with specific includes for `cupcakes` and
139
+ `cookies`.
140
+
141
+ Abstractly, because they're not outputted by default, you can think of
142
+ collections somewhat like http://jekyllrb.com/docs/datafiles/[Jekyll's
143
+ `&#x5F;data` folder support], but with the potential to generate content, and
144
+ be placed into their own specific part of your Jekyll site, so a lot
145
+ more robust. Like `&#x5F;data` files, they can support arbitrary key/values
146
+ through frontmatter, but they also support a full content body (like
147
+ posts and pages), and can be broken out into separate files. If I wanted
148
+ to break out my bakery's hours, I might have a `&#x5F;data/hours.yml` file
149
+ that looked something like this:
150
+
151
+ [source,yaml]
152
+ ----
153
+ monday: 9-5
154
+ tuesday: 9-5
155
+ wednesday: 9-5
156
+ thursday: 9-5
157
+ friday: 9-3
158
+ ----
159
+
160
+ That makes sense, because my bakery's hours is a relatively small
161
+ dataset. But trying to represent all my baked goods in that format (or
162
+ worse posts), would quickly get out of hand. That type of information is
163
+ better represented as individual markdown files with front matter, not
164
+ one giant YAML file that will quickly become unwieldy with complexity;
165
+ and rather than create the data, and pages to display the data, or the
166
+ data and a plugin to turn it into pages; using collections allows the
167
+ site owner to focus on the content.
168
+
169
+ For a more concrete example, take a look at
170
+ https://github.com/github/choosealicense.com[the source] for
171
+ http://choosealicense.com[choosealicense.com] a site which helps explain
172
+ open source licenses like the MIT or GPL license. There are pages like
173
+ "about" and "terms of service", but the actual licenses live in
174
+ https://github.com/github/choosealicense.com/tree/gh-pages/&#x5F;licenses[a
175
+ licenses collection] and are displayed via
176
+ https://github.com/github/choosealicense.com/blob/gh-pages/licenses.html[a
177
+ licensed page].
178
+
179
+ === Other use-cases
180
+
181
+ Of course this is not the only use-case, which is one of the benefits of
182
+ collections. You can turn on content generation to have the collection
183
+ contents automatically generated, or use the where syntax to get the
184
+ contents of specific collections to add common content, or devices to
185
+ your site.
186
+
187
+
188
+ == Using collections
189
+
190
+ The examples above were a slight simplification. There's one other step.
191
+ Before you can use a collection, you need to tell Jekyll about it. Going
192
+ back to our bakery example above, I might have a `&#x5F;config.yml` file that
193
+ looks something like this:
194
+
195
+ [source,yaml]
196
+ ----
197
+ collections:
198
+ - cupcakes
199
+ - cookies
200
+ ----
201
+
202
+ This tells Jekyll to look in the `&#x5F;cupcakes` and `&#x5F;cookies` folders
203
+ for documents, and to read them into the appropriate collection, including
204
+ http://jekyllrb.com/docs/frontmatter/[YAML front matter], just as it
205
+ would posts (but again, without the date, because collection documents
206
+ aren't date specific).
207
+
208
+ By default, collections are read in (and exposed as `site.[collection]`,
209
+ an alias per-collection), but not included in the final site; at least
210
+ not individually like you might expect posts or pages to. If you wanted
211
+ a page for each type of cupcake, you'd have to modify the `&#x5F;config.yml`
212
+ a bit:
213
+
214
+ [source,yaml]
215
+ ----
216
+ collections:
217
+ cupcakes:
218
+ output: true
219
+ permalink: /cupcakes/:path/
220
+ ----
221
+
222
+ That way, `&#x5F;cupcakes/chocolate.md` is outputted as
223
+ `cupcakes/chocolate/index.html` when the site is built and would be
224
+ accessible as `example.com/cupcakes/chocolate/`. The other advantage,
225
+ is, because the data is now structured and machine readable (rather than
226
+ in plain text), you could also use the `jsonify` filter to output that
227
+ same information as an API for use elsewhere.
228
+
229
+
230
+ === When to use a post, a page, or a collection
231
+
232
+ I like to think the decision looks roughly like this:
233
+
234
+ [source,console]
235
+ ----
236
+ +-------------------------------------+ +----------------+
237
+ | Can the things be logically grouped?|---No--->| Use pages |
238
+ +-------------------------------------+ +----------------+
239
+ |
240
+ Yes
241
+ |
242
+ V
243
+ +-------------------------------------+ +----------------+
244
+ | Are they grouped by date? |---No--->|Use a collection|
245
+ +-------------------------------------+ +----------------+
246
+ |
247
+ Yes
248
+ |
249
+ V
250
+ +-------------------------------------+
251
+ | Use posts |
252
+ +-------------------------------------+
253
+ ----
254
+
255
+ So if you're not about to open a bakery (if you do, please send
256
+ cookies); what might you use collections for? In short, any discrete
257
+ group of "things" that can be logically grouped by a common theme
258
+ (that's not their date). Here's a few examples:
259
+
260
+ * Listing employees on your company's "about" page (or a project's
261
+ maintainers)
262
+ * Documenting methods in an open source project (or the project's that
263
+ use it, or the plugins available)
264
+ * Organizing jobs on your résumé (or talks given, papers written)
265
+ * https://github.com/blog/1939-how-github-uses-github-to-document-GitHub[Articles
266
+ on a support site]
267
+ * Recipes on your personal blog (or restaurant reviews, or dishes on a
268
+ menu)
269
+ * Students in a class (or courses being offered, or listing the faculty)
270
+ * Cheats, tips, tricks and walkthroughs for games (by platform)
271
+ * Creating re-usable content snippets for your site such as
272
+ testimonials, forms, sentences, buzz-words or call-outs
273
+ * And honestly just about anything else
274
+
275
+ Collections are a powerful (and often misunderstood) Jekyll feature, but
276
+ hopefully you've now got an idea or two for your next Jekyll project. Of
277
+ course, if you're looking to dig in to collections, be sure to check out
278
+ http://jekyllrb.com/docs/collections/[the formal documentation] for a
279
+ much more in-depth explanation.
280
+
281
+ Happy Jekylling!