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
@@ -0,0 +1,78 @@
1
+ ---
2
+ layout: collection
3
+
4
+ title: Outlander
5
+ tagline: The Land and Lore of Scotland
6
+ description: The Land and Lore of Scotland
7
+
8
+ date: 2016-11-28 19:16:49 +0100
9
+ book:
10
+ cover: https://d4rri9bdfuube.cloudfront.net/assets/images/book/large/9780/4402/9780440212560.jpg
11
+ format: paperback
12
+ pages: 850
13
+ publisher: Bantam Doubleday Dell Publishing Group Inc
14
+ author: Diana Gabaldon
15
+ ISBN10: 0440212561
16
+ ISBN13: 9780440212560
17
+ rank: 297
18
+
19
+ tags: [ collection, books ]
20
+ index: [ Romance, Historical, Fiction ]
21
+ categories: [ romance ]
22
+
23
+ #permalink:
24
+ regenerate: false
25
+
26
+ toc: false
27
+ resources: []
28
+ resource_options:
29
+ ---
30
+
31
+ // Enable the Liquid Preprocessor
32
+ //
33
+ :page-liquid:
34
+
35
+ // Set other global page attributes here
36
+ // -----------------------------------------------------------------------------
37
+ image:{{page.book.cover}}[width=200, role="mr-4 float-left"]
38
+
39
+
40
+ // Place an excerpt at the most top position
41
+ // -----------------------------------------------------------------------------
42
+ Claire Randall is leading a double life. She has a husband in one century,
43
+ and a lover in another...
44
+
45
+ In 1945, Claire Randall, a former combat nurse, is back from the war and
46
+ reunited with her husband on a second honeymoon--when she innocently touches
47
+ aboulder in one of the ancient stone circles that dot the British Isles.
48
+ Suddenly she is a Sassenach--an "outlander"--in a Scotland torn by war and
49
+ raiding border clans in the year of our Lord...1743.
50
+
51
+ Hurled back in time by forces she cannot understand, Claire's destiny in soon
52
+ inextricably intertwined with Clan MacKenzie and the forbidden Castle Leoch.
53
+ She is catapulted without warning into the intrigues of lairds and spies that
54
+ may threaten her life ...and shatter her heart.
55
+
56
+ [role="clearfix mb-3"]
57
+ excerpt__end
58
+
59
+
60
+ [[readmore]]
61
+ For here, James Fraser, a gallant young Scots warrior, shows her a passion so
62
+ fierce and a love so absolute that Claire becomes a woman torn between fidelity
63
+ and desire...and between two vastly different men in two irreconcilable lives.
64
+
65
+ _Absorbing and heartwarming .. lavishly evokes the land and lore of Scotland_
66
+
67
+ *Publishers Weekly*
68
+
69
+ _Stunning!_
70
+
71
+ *Los Angeles Daily News*
72
+
73
+ _It is a large canvas that Gabaldon paints, filled with strong passions and
74
+ derring-do. Strong willed and sensual, Claire is an engaging modern heroine
75
+ plopped down in a simpler, more primitive time .. Great fun .. marvelous
76
+ and fantastic adventures, romance, sex .. perfect escape reading!_
77
+
78
+ *San Francisco Chronicle*
@@ -0,0 +1,62 @@
1
+ ---
2
+ layout: collection
3
+
4
+ title: Outlander
5
+ tagline: The Land and Lore of Scotland
6
+ description: The Land and Lore of Scotland
7
+
8
+ date: 2016-11-28 19:16:49 +0100
9
+ book:
10
+ cover: https://d4rri9bdfuube.cloudfront.net/assets/images/book/large/9781/7808/9781780896618.jpg
11
+ format: hardback
12
+ pages: 256
13
+ publisher: Cornerstone
14
+ author: Diana Gabaldon
15
+ ISBN10: 1780896611
16
+ ISBN13: 9781780896618
17
+ rank: 701
18
+
19
+ tags: [ collection, books ]
20
+ index: [ Romance, Historical, Adventure ]
21
+ categories: [ romance ]
22
+
23
+ #permalink:
24
+ regenerate: false
25
+
26
+ toc: false
27
+ resources: []
28
+ resource_options:
29
+ ---
30
+
31
+ // Enable the Liquid Preprocessor
32
+ //
33
+ :page-liquid:
34
+
35
+ // Set other global page attributes here
36
+ // -----------------------------------------------------------------------------
37
+ image:{{page.book.cover}}[width=200, role="mr-4 float-left"]
38
+
39
+
40
+ // Place an excerpt at the most top position
41
+ // -----------------------------------------------------------------------------
42
+ 1740: Young Jamie Fraser has left Scotland and, with his best friend Ian Murray,
43
+ is running with a band of mercenaries in France.
44
+
45
+ Both men have good reason not to go back to their homeland: both are nursing
46
+ wounds, and despite their best efforts to remedy the situation, both are still
47
+ virgins. So when a Jewish doctor hires them to escort his granddaughter to
48
+ Paris, they readily agree. Both men are instantly drawn to the beautiful young
49
+ lady.
50
+
51
+ Find out what happened before Jamie met Claire in this brilliant new Outlander
52
+ short story. What neither know is that their lives and their friendships are
53
+ about to become infinitely more complicated - and a lot more dangerous...
54
+
55
+ [role="clearfix mb-3"]
56
+ excerpt__end
57
+
58
+
59
+ [[readmore]]
60
+ Find out what happened before Jamie met Claire in this brilliant new Outlander
61
+ short story. What neither know is that their lives and their friendships are
62
+ about to become infinitely more complicated - and a lot more dangerous...
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: Site generators
3
- tagline: open-source tools
4
- description: Top open-source site generators
3
+ tagline: open source tools
4
+ description: Top Open Source site generators
5
5
 
6
6
  date: 2019-05-01 00:00:00
7
7
  series:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: Cookies
3
- tagline: good to know about
3
+ tagline: good to know
4
4
  description: Useful info on cookies and how they used
5
5
 
6
6
  date: 2019-06-01 00:00:00 +0200
@@ -13,7 +13,7 @@ tags: [ Tutorial, kickstarter ]
13
13
  index: [ Docker, Windows, Shared, Folder, Folders ]
14
14
  categories: []
15
15
 
16
- regenerate: true
16
+ regenerate: false
17
17
 
18
18
  resources: []
19
19
  resource_options:
@@ -28,15 +28,11 @@ resource_options:
28
28
  alt: docker_banner_r-1280x500-bw
29
29
  ---
30
30
 
31
- // NOTE: General Asciidoc page attributes settings
32
- // -----------------------------------------------------------------------------
31
+ // Page Initializer
32
+ // =============================================================================
33
+ // Enable the Liquid Preprocessor
33
34
  :page-liquid:
34
35
 
35
-
36
- // Additional Asciidoc page attributes goes here
37
- // -----------------------------------------------------------------------------
38
- :page-imagesdir: {{page.images.dir}}/j1_using_docker
39
-
40
36
  // Place an excerpt at the most top position
41
37
  // -----------------------------------------------------------------------------
42
38
  How to run Docker smooth on Windows? Sounds like a quite simple question
@@ -46,29 +42,37 @@ the answer is *not* that easy. As often: it depends (on the use case).
46
42
  [role="clearfix mb-3"]
47
43
  excerpt__end
48
44
 
49
- // Liquid procedures
45
+ // Load Liquid procedures
50
46
  // -----------------------------------------------------------------------------
51
- {% capture set_env_entry_document %}themes/{{site.template.name}}/procedures/global/set_env_entry_document.proc{%endcapture%}
52
-
53
- // Initialize entry document paths
54
- //
55
- {% include {{set_env_entry_document}} init_folders=all %}
47
+ {% capture load_attributes %}themes/{{site.template.name}}/procedures/global/attributes_loader.proc{%endcapture%}
56
48
 
57
- // Load tags and urls
58
- //
59
- include::{includedir}/attributes.asciidoc[tag=tags]
60
- include::{includedir}/attributes.asciidoc[tag=urls]
61
- include::{includedir}/attributes.asciidoc[tag=data]
49
+ // Load page attributes (all)
50
+ // -----------------------------------------------------------------------------
51
+ {% include {{load_attributes}} scope="all" %}
62
52
 
63
- // Additional debug output (if :debug: set to true)
53
+ // Additional Asciidoc page attributes goes here
64
54
  // -----------------------------------------------------------------------------
65
- :debug: false
66
- include::{tabledir}/debug_variables.asciidoc[]
55
+ :debug: false
56
+ :page-imagesdir: {{page.images.dir}}/j1_using_docker
67
57
 
68
58
  // Page content
69
- // -----------------------------------------------------------------------------
70
- //include::{documentsdir}/100-docker-using-shared-folders.asciidoc[]
59
+ // =============================================================================
60
+ // include::{documentdir}/100-docker-using-shared-folders.asciidoc[]
61
+
62
+ == Path attributes
63
+
64
+ * documentdir: *{documentdir}*
65
+
66
+ == Global attributes
67
+
68
+ Attributes loaded from *global* attributes file
69
+ *~/source/includes/attributes.asciidoc*.
70
+
71
+ === Tags
71
72
 
73
+ * window: *{browser-window--new}*
74
+ * no-clipboard: *{no-clipboard}*
75
+ * figure-caption: *{figure-caption}*
72
76
 
73
77
  [[readmore]]
74
78
  == Docker smooth on Windows
@@ -0,0 +1,66 @@
1
+ // ~/document_base_folder/000_includes
2
+ // Asciidoc attribute includes: attributes.asciidoc
3
+ // -----------------------------------------------------------------------------
4
+
5
+
6
+ // URLs - Internal references and/or sources on the Internet
7
+ // -----------------------------------------------------------------------------
8
+ tag::urls[]
9
+
10
+ :blogging-on-github-part-2: http://digitaldrummerj.me/blogging-on-github-part-2-your-first-post/
11
+ :blogging-on-github-part-3: http://digitaldrummerj.me//blogging-on-github-part-3-adding-comments/
12
+ :blogging-on-github-part-4: http://digitaldrummerj.me//blogging-on-github-part-4-creating-additional-pages/
13
+
14
+ :docker-install-toolbox-on-windows: https://docs.docker.com/toolbox/toolbox_install_windows/
15
+ :virtualbox-install-on-windows: https://www.virtualbox.org/wiki/Downloads
16
+
17
+ end::urls[]
18
+
19
+ // Tags - Asciidoc attributes used internally
20
+ // -----------------------------------------------------------------------------
21
+ tag::tags[]
22
+
23
+ :debug: false
24
+
25
+ :window: window="_blank"
26
+ :figure-caption: Figure
27
+ :y: icon:check[role="green"]
28
+ :n: icon:times[role="red"]
29
+ :c: icon:file-alt[role="blue"]
30
+ :arrow-r: icon:arrow-right[role="blue"]
31
+ :arrow-l: icon:arrow-left[role="blue"]
32
+ :arrow-t: icon:arrow-top[role="blue"]
33
+ :arrow-d: icon:arrow-down[role="blue"]
34
+ :beginner: icon:battery-quarter[role="md-blue"]
35
+ :inter: icon:battery-half[role="md-blue"]
36
+ :advanced: icon:battery-full[role="md-blue"]
37
+ :emdash: —
38
+
39
+ end::tags[]
40
+
41
+
42
+ // Data - Data elements for Asciidoctor extensions
43
+ // -----------------------------------------------------------------------------
44
+ tag::data[]
45
+
46
+ :data-docker-windows-kinematic-alpha: "collections/blog/series/j1_using_docker/kinematic_alpha.1280x600.png, Docker UI Kinematic on Windows"
47
+
48
+ end::data[]
49
+
50
+
51
+
52
+ // Product|Author - Document (e.g release) and Author information
53
+ // -----------------------------------------------------------------------------
54
+ tag::product_info[]
55
+
56
+ :license: MIT License
57
+ :revdate: 2018
58
+ :revnumber: 1.0.0
59
+
60
+ end::product_info[]
61
+
62
+ tag::authors[]
63
+
64
+ :uri-author-juergen-adams: https://jekyll.one
65
+
66
+ end::authors[]
@@ -0,0 +1,430 @@
1
+ [[readmore]]
2
+ == Docker smooth on Windows
3
+
4
+ [role="mb-3"]
5
+ image::{page-imagesdir}/windows_docker_banner.1280x500.png[{{page.title}}]
6
+
7
+ In general, two incarnations of Docker for Windows are available:
8
+
9
+ * Legacy solution: *Docker Toolbox*
10
+ * Native solution: *Docker for Windows*
11
+
12
+ Before the native version of Docker *Docker for Windows* was available,
13
+ a *cross-platform* solution called *Docker Toolbox* could be used.
14
+ *Docker Toolbox* is a bundle of *current* Docker software based on
15
+ *Docker Machine* combined with the *Docker Engine* bundled with
16
+ *VirtualBox* as a Hypervisor to run Linux boxes as virtual machines
17
+ on Windows.
18
+
19
+ What the Docker team recomments: Update to the newer package, if possible.
20
+ This should be discussed, especially for Windows, in more detail ...
21
+
22
+ [WARNING]
23
+ ====
24
+ *The Docker Team mentions the following about Docker Toolbox:*
25
+
26
+ Docker Toolbox is for *older Windows* systems (or *Apple MacOS* versions)
27
+ that *does not meet* the requirements of the *native* Docker version.
28
+ ====
29
+
30
+ Docker won't never run *natively* on Windows. The *Container Technology*
31
+ used by Docker depends on *Linux* (at least on a Unix flavour of the host
32
+ operating system). For all non-Linux (or Unix) platforms, a *Hypervisor* is
33
+ needed to make it possible to run the needed *Linux OS* for Docker.
34
+
35
+ Yes, Windows support a *native* Hypervisor layer: `Hyper-V`. Using the Windows
36
+ component `Hyper-V`, any operating system can be run as *virtual machines* on
37
+ Windows. But it should be kept in mind: the Hypervisor layer is *always* needed;
38
+ as well as for the so-called the *native* Docker version on Windows. But:
39
+ real *native* Docker versions does *not* need a Hypervisor layer; they run
40
+ containers direcly on the host OS! This should be kept on mind.
41
+
42
+ They are some pittfals using *Docker for Windows* if you go for:
43
+
44
+ * Stability - found quite often issues running containers on *Docker for Windows*.
45
+ If you're not a Windows specialist, it is hard to findout issues for `Hyper-V`
46
+ , the VM and|or both.
47
+ * Flexibility - it is *NOT* possible to use the Hypervisor `Hyper-V` in
48
+ parallel to *VirtualBox* as an alternative
49
+ * Incompatibility - on some Windows installations, and for sure they met the
50
+ requirements of the *native* Docker version, the installaton was *NOT*
51
+ successful and Docker fails to start
52
+
53
+ Again: the software included in the *Docker Toolbox* are *current* versions.
54
+ The latest Toolbox contains:
55
+
56
+ * the Docker Engine Docker, version 18.03.0-ce, build 0520e24302
57
+ * the Docker Machine, version 0.14.0, build 89b8332
58
+ * the Docker Composer, version 1.20.1, build 5d8c71b2
59
+ * a current MINGW64-based GNU bash, version 4.4.19(2)-release (x86_64-pc-msys)
60
+
61
+ For all the people having their (IT) roots on Unix respectively Linux, the
62
+ *Docker Toolbox* is the better solution on Windows (for now). No need to go
63
+ for the Windows Hypervisor `Hyper-V` - Oracle *VirtualBox* can be used
64
+ instead; as quite often used for testing and development.
65
+
66
+ Let's have a look how to *Manage Linux on Windows*, to use Docker on the
67
+ Windows platform.
68
+
69
+ == Installing Docker Toolbox
70
+
71
+ As discussed ealier, *Docker Toolbox* is using *VirtualBox* for the
72
+ Hypervisor to create the Linux VMs needed. To get the latest version,
73
+ install VirtualBox first (Docker Toolbox includes a installer package
74
+ for VBox but not nessesarily at their latets version).
75
+
76
+ Go for the link:{virtualbox-install-on-windows}[VirtualBox Download Page]
77
+ and select under *VirtualBox 5.x.y platform packages* the latest version
78
+ for Windows (Windows hosts). Install the package - the installation process
79
+ is quite simple supported by an build in installer wizard.
80
+
81
+ If done, go for the installation of the Toolbox. A current package can be
82
+ retrieved from link:{docker-install-toolbox-on-windows}[Docker Documents].
83
+ The page includes all the info needed to install the software.
84
+
85
+ NOTE: For the installation of the *Docker Toolbox*, please deselect the
86
+ installation of *VirtualBox* included as the software has been already
87
+ installed.
88
+
89
+ NOTE: The commandline interface used by *Docker Toolbox* is based on
90
+ *Git MSYS-git UNIX tools*. If you have *Git* installed already for your
91
+ Windows host, please deselect the installation of *Git* included.
92
+
93
+ *Docker Toolbox* comes with *NO* graphical user interface (GUI). To manage
94
+ Docker, the included GNU bash of the *Git MSYS-git UNIX tools* shoud be used.
95
+ A very first version of a (native) Docker UI on Windows is *Kitematic*,
96
+ currently in a alpha version included.
97
+
98
+ ifdef::backend-html5[]
99
+ .Docker UI Kinematic on Windows
100
+ lightbox::docker-windows-kinematic-alpha[ 800, {docker-windows-kinematic-alpha-data} ]
101
+ endif::[]
102
+
103
+ TIP: You should check *Kitematic*. If started for *Docker Toolbox* on Windows,
104
+ change (the Hypervisor) to Virtualbox.
105
+
106
+ For Windows users a commandline interface to manage a complex system like
107
+ Docker may sound a bit stone age. It's not for good reasons:
108
+
109
+ * the knowlegde of the base Docker commands is essential to understand the
110
+ Container Technology better
111
+
112
+ * Blalal blaaa
113
+
114
+
115
+
116
+ == Manage Linux on Windows
117
+
118
+ VirtualBox is a greate piece of software for desktop and workstation
119
+ virtualization. A huge number of IT specialist and developers are using VB
120
+ for: testing and development environments. Sometimes for production
121
+ environments – if it's applicable.
122
+
123
+ One good idea for VirtualBox is, if you are Web|App developer for Linux you
124
+ can keep *Windows* as your primary OS - yeah, yeah those people are living on
125
+ our planet! One can install a Linux distribution of choice in VirtualBox VM
126
+ and reap both benefits of Windows as primary OS and Linux as a server
127
+ platform for good reasons.
128
+
129
+ === Create a Linux VM
130
+
131
+ lorem:sentences[5]
132
+
133
+ lorem:sentences[3]
134
+
135
+
136
+ === Sharing Data
137
+
138
+ For (real) native Docker installations, it is easy to share data between then
139
+ host OS and containers managed by Docker. It is simple this:
140
+
141
+ [source, sh]
142
+ ----
143
+ docker run --rm \
144
+ --volume=$PWD:/srv/jekyll \
145
+ -p 35729:35729 -p 40000:40000 \
146
+ -it jekyll-one/j1:latest \
147
+ j1 serve --incremental --livereload
148
+ ----
149
+
150
+ The container, instructed by `--volume=$PWD:/srv/jekyll` shares the
151
+ filesystem of the host - the *native* way to bring in data into a
152
+ container for processing. In the example a static Jekyll Web is created
153
+ by J1 Template (j1), served by the ports 35729 for livereload and 40000
154
+ serving the web.
155
+
156
+ For the Windows platform, using a virtual Linux Box for Docker containers,
157
+ this is *NOT* possible. The virtual system is managed by Virtualbox and no
158
+ direct relationship is in between the VBox and the host operating system
159
+ Windows! No (direct) access to the host filesystem is possible. Bad luck so
160
+ far.
161
+
162
+ Generally spoken, there are 3 ways of sharing files between a Windows host
163
+ and Linux guest boxes; keep files:
164
+
165
+ * in the guest (Linux) and share them with host through Samba
166
+ * on host (Windows) and use VirtualBox *Shared Folders*
167
+ * on host (Windows) and mount Windows *Public Folders* via CIFS
168
+ from within guest (Linux)
169
+
170
+ For all people experienced on the Linux platform, the first option is
171
+ probably the easiest. But it has it’s drawbacks. In most cases for testing,
172
+ it's *NOT* wanted to keep files in a VM. In case of corruption of the VM,
173
+ reinstallation needs, or whatever yor data is *lost* in most cases. Truly,
174
+ not an option.
175
+
176
+ Typically developers want them kept on native Windows *disks* as they are
177
+ expected as more safely stored on physical devices and easier to backup.
178
+ So first option is clearly out.
179
+
180
+ *Shared Folders* are really a great idea. After installing the *VirtualBox
181
+ Guest Additions* (which brings the mount.vboxsf binary and vboxsf kernel
182
+ module) the guest can mount automatically a Windows OS folder inside the VM.
183
+ Some klicks further the guest start's, mount the *shared folder* in guest and
184
+ voila: you're done! Sounds really great.
185
+
186
+ But there's a catch – performance. Shared Folders are really, really horrible
187
+ slow. Which in turn kills the idea of programming and testing code without
188
+ loosing hair because of the slowness. You can find tons of articles around
189
+ slow shared folders on the Internet; both for the Big Dogs: VMware and
190
+ VirtualBox. But no solution. Since decades.
191
+
192
+ Analyzing the performance, it's obvious that kernel spends really large
193
+ amount of time in IO mode – so the vboxsf CIFS emulation of VirtualBoxis
194
+ behaving something like a slug. Birds love slugs but IT professionals don’t
195
+ like that, do they?
196
+
197
+ It seems that the only viable solution is sharing folders though Windows and
198
+ mounting them via CIFS on the guest, the virtual Linux box. This way, a
199
+ similiar flexible solution for sharing folders can be achived but at a much
200
+ better performance.
201
+
202
+
203
+ === Performance tests
204
+
205
+ Anyway, *shared folders* will be always slow as the are of type *NAS* - network
206
+ attached storage. For a local network nowadays, typically at Gigabit level and
207
+ quite low in latency, an acceptable performance cab be achived.
208
+
209
+ I did some simple tests to show the performance differences. There are three
210
+ directories I did for my tests:
211
+
212
+ * /mnt/media/repo1, data on a physical (local) disk on the host
213
+ * /mnt/media/repo2, data on a physical (local) disk in the guest
214
+ * /mnt/media/repo3, data on a Windows share mounted via cifs in the guest
215
+
216
+ I've been using simple (bash) script based on *dd* commands for testing.
217
+ The *dd* commands used as a base are shown below. For sure not a quite
218
+ sophisticated test scenario but it's giving a general impression what can
219
+ achived in real world.
220
+
221
+ NOTE: For multi-platform testing, on Windows the `dd` command is used as well.
222
+ For *Docker Toolbox*, beside the GNU bash, a full set of *GNU CoreUtils* are
223
+ available as well (accessible out of the *Docker Quickstart Terminal*). The
224
+ used (bash) test script needs to be run out of *Docker Quickstart Terminal*.
225
+ Download the tester script from here.
226
+
227
+ The test script *docker_perf_test.sh* supports a test scenario for
228
+ *General System Performance*. This is focussing on pure CPU|Memory power.
229
+ On both systems (host and guest) these tests are using pure *kernel services*
230
+ for creating input and output data. One is creating random input data as
231
+ fast as possible, the other discards everything it gets as fast as it can.
232
+
233
+ .General System Performance
234
+ [source, sh]
235
+ ----
236
+ dd if=/dev/urandom of=/dev/null bs=1M count=10000
237
+ ----
238
+
239
+ Please see those tests for *General System Performance* for the background
240
+ *What could be achived in therory*. These tests may helpful to compare your
241
+ current setup for the host and the guest same way.
242
+
243
+ As mentioned, all tests for *docker_perf_test.sh* are based on the `dd`
244
+ command. For *real world* measures, standard *dd tests* are used. You'll
245
+ find a lot of those on the Internet. All tests for *docker_perf_test.sh* are
246
+ changed (from `/dev/zero`) to `/dev/urandom` for the input to put some
247
+ *pressure* on the CPU while processing data for reading or writing from the
248
+ filesystem to be checked. All the tests are *rules of thumb*, no technical
249
+ measures.
250
+
251
+ NOTE: Zum Messen der Schreibperformance liest man die zu Schreibenden
252
+ Daten am besten aus /dev/zero und schreibt eine normale Datei im Filesystem
253
+ (z.B. mit of=/root/testfile). Die folgenden Beispiele verwenden ein Testdatei,
254
+ um irrtümlichen Datenverlust zu vermeiden. Die dabei erzielbare Performance
255
+ Werte sind etwas geringer (da dadurch auch Metadaten im Filesystem geschrieben
256
+ werden).
257
+
258
+ Find the base `dd` commands for read an write performance tests below. The
259
+ exported shared folder on Windows is *C:\Users\Public* mapped to the Unix
260
+ (POSIX) folder scheme of */c/Users/Public* on the guest OS.
261
+
262
+ .Write Performance - Windows host (local disk), Linux guest (shared disk)
263
+ [source, sh]
264
+ ----
265
+ dd if=/dev/urandom bs=1M count=1024 | split -b 1M - name.
266
+ ----
267
+ .Write Performance (local disk), Linux guest
268
+ [source, sh]
269
+ ----
270
+ dd if=/dev/urandom of=/var/tmp/test/samplefile bs=1M count=1024
271
+ ----
272
+
273
+ .Read Performance - Windows host (local disk), Linux guest (shared disk)
274
+ [source, sh]
275
+ ----
276
+ dd if=/c/Users/Public/test/samplefile of=/dev/null bs=1M count=1024 iflag=direct
277
+ ----
278
+ .Read Performance (local disk), Linux guest
279
+ [source, sh]
280
+ ----
281
+ dd if=/var/tmp/test/samplefile of=/dev/null bs=1M count=1024 iflag=direct
282
+ ----
283
+
284
+ Have a look at the table below for the measures found on a *Windows 10*
285
+ desktop host (Intel Core Quad Q9550) using a *SATA-300* disk for the local
286
+ physical disk and a Gigabit network interface (*Realtek PCIe GBE* familiy)
287
+ running a *CentOS 7 Linux* (version 3.10.0-862) as a guest:
288
+
289
+ .Data transfer rates for 1 GB of data
290
+ [cols="2,2,4,3, options="header", role="table-responsive, full-width"]
291
+ |===============================================================================
292
+ |direction |mountpoint |source |througput [MB/s]
293
+
294
+ |`read`
295
+ |/mnt/media/repo1
296
+ |physical (local) disk on the *host*
297
+ |85.20
298
+
299
+ |`read`
300
+ |/mnt/media/repo2
301
+ |physical (local) disk on the *guest*
302
+ |147.00
303
+
304
+ |`read`
305
+ |/mnt/media/repo3
306
+ |shared disk on the *guest*
307
+ |30.3
308
+
309
+ |`write`
310
+ |/mnt/media/repo1
311
+ |physical (local) disk on the *host*
312
+ |234.00
313
+
314
+ |`write`
315
+ |/mnt/media/repo2
316
+ |physical (local) disk on the *guest*
317
+ |34.00
318
+
319
+ |`write`
320
+ |/mnt/media/repo3
321
+ |shared disk on the *guest*
322
+ |39.9
323
+
324
+ |===============================================================================
325
+
326
+ WARNING: Bei Verwendung von if=/dev/zero und bs=1G benötigt das Linuxsystem
327
+ 1GB freien Platz im RAM. Falls Ihr Testsystem nicht ausreichend RAM ...
328
+
329
+ NOTE: Um praxisnahe Ergebnisse zu erhalten empfehlen wir die beschrieben Tests
330
+ mehrmals (z.B. 3 bis 10x) durchzuführen. Damit können Sie Ausreißer rechtzeitig
331
+ erkennen.
332
+
333
+
334
+ lorem:sentences[5]
335
+
336
+ == Publish a Shared Folder
337
+
338
+ lorem:sentences[5]
339
+
340
+ lorem:sentences[3]
341
+
342
+
343
+ == Mount Shared Folders on Linux
344
+
345
+ lorem:sentences[5]
346
+
347
+ === Installing CIFS
348
+
349
+ For the Linux VM, a current Ubunt Server of version 18.06 is used. To mount
350
+ CIFS shares, the package `cifs-utils` needs to be installed:
351
+
352
+ [source, bash]
353
+ ----
354
+ sudo apt-get -y install cifs-utils
355
+ ----
356
+
357
+ Mounting filesystems in general, therefor the same to the CIFS share, are
358
+ done as root. This ends up in the situation this folder cannot (accessed??)
359
+ written as normal user.
360
+
361
+ . Create the `cifs` group
362
+ +
363
+ [source, bash]
364
+ ----
365
+ sudo groupadd cifs
366
+ ----
367
+
368
+ [start=2]
369
+ . Add your user to the `cifs` group
370
+ +
371
+ [source, bash]
372
+ ----
373
+ sudo usermod -aG cifs $USER
374
+ ----
375
+
376
+ [start=3]
377
+ . Create the mountpoint (to be used by Docker) as root
378
+ +
379
+ [source, bash]
380
+ ----
381
+ mkdir -p /c/Users/Public
382
+ ----
383
+
384
+ [start=4]
385
+ . Change the ownership of the mountpoint
386
+ +
387
+ [source, bash]
388
+ ----
389
+ chown -R root:cifs /c/Users/Public
390
+ ----
391
+
392
+ [start=5]
393
+ . Create a credentials file to place user|password data safe.
394
+ +
395
+ [source, bash]
396
+ ----
397
+ touch ~/.smbcredentials
398
+ ----
399
+
400
+ .smbcredentials
401
+ ----
402
+ username=<your_windows_user>
403
+ password=<windows_user_password>
404
+ ----
405
+
406
+ === Mount the share manually
407
+
408
+ To enable non-authorized users to read and write the shared files, specify
409
+ user and group ID that the mounted shares folders should use. This would
410
+ allow particular users and group members to read|write to the share.
411
+
412
+ To do so, the following options are used for a public mount:
413
+
414
+ * username
415
+ * password
416
+ * uid
417
+ * gid
418
+
419
+ Add the Windows host IP address to the hosts file
420
+
421
+ ./etc/hosts
422
+ <ip_v4_address> <name_of_the windows_box> <alias_name>
423
+
424
+
425
+ === Mount the share at boot-time
426
+
427
+ lorem:sentences[3]
428
+
429
+ ./etc/fstab
430
+ &#47;&#47;win10pc/Public /c/Users/Public cifs uid=1000,gid=5555,credentials=/home/jadams/.smbcredentials,iocharset=utf8,rw 0 0