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.
- checksums.yaml +4 -4
- data/_includes/themes/j1/blocks/footer/boxes/about_box.proc +2 -2
- data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +4 -4
- data/_includes/themes/j1/blocks/footer/boxes/news_box.proc +2 -2
- data/_includes/themes/j1/blocks/footer/generator.html +1 -1
- data/_includes/themes/j1/layouts/content_generator_blog_archive.html +19 -16
- data/_includes/themes/j1/layouts/content_generator_collection.html +2 -2
- data/_includes/themes/j1/layouts/content_generator_page.html +8 -56
- data/_includes/themes/j1/layouts/content_generator_post.html +5 -3
- data/_includes/themes/j1/procedures/global/attributes_loader.proc +117 -0
- data/_includes/themes/j1/procedures/global/create_bs_button.proc +10 -10
- data/_includes/themes/j1/procedures/global/create_word_cloud.proc +14 -12
- data/_includes/themes/j1/procedures/global/get_documents_dir.proc +1 -1
- data/_includes/themes/j1/procedures/global/set_env_entry_document.proc +3 -3
- data/_includes/themes/j1/procedures/posts/collate_timeline.proc +37 -38
- data/_layouts/blog_archive.html +4 -3
- data/_layouts/collection.html +1 -1
- data/_layouts/home.html +1 -1
- data/_layouts/page.html +2 -2
- data/_layouts/post.html +3 -3
- data/apps/public/cc/cc.yml +0 -2
- data/assets/data/authclient.html +15 -15
- data/assets/data/banner.html +11 -11
- data/assets/data/carousel.json +1 -1
- data/assets/data/cookiebar.html +8 -8
- data/assets/data/footer.html +1 -1
- data/assets/data/galleries.json +1 -1
- data/assets/data/gallery_customizer.html +4 -4
- data/assets/data/mdi_icons.json +1 -1
- data/assets/data/menu.html +7 -7
- data/assets/data/mmenu.html +5 -5
- data/assets/data/mmenu_sidebar.html +2 -2
- data/assets/data/mmenu_toc.html +2 -2
- data/assets/data/panel.html +115 -95
- data/assets/data/quicklinks.html +2 -2
- data/assets/data/search.json +1 -1
- data/assets/data/ssm.html +2 -2
- data/assets/data/themes.json +3 -1
- data/assets/data/twa_v1.json +1 -1
- data/assets/themes/j1/adapter/js/algolia.js +1 -1
- data/assets/themes/j1/adapter/js/attic.js +1 -1
- data/assets/themes/j1/adapter/js/back2top.js +231 -0
- data/assets/themes/j1/adapter/js/{mdb.js → bmd.js} +11 -11
- data/assets/themes/j1/adapter/js/carousel.js +135 -134
- data/assets/themes/j1/adapter/js/clipboard.js +2 -1
- data/assets/themes/j1/adapter/js/cookiebar.js +2 -1
- data/assets/themes/j1/adapter/js/framer.js +1 -5
- data/assets/themes/j1/adapter/js/gallery_customizer.js +2 -1
- data/assets/themes/j1/adapter/js/j1.js +36 -10
- data/assets/themes/j1/adapter/js/jf_gallery.js +1 -1
- data/assets/themes/j1/adapter/js/lightbox.js +1 -1
- data/assets/themes/j1/adapter/js/logger.js +2 -1
- data/assets/themes/j1/adapter/js/mmenu.js +10 -8
- data/assets/themes/j1/adapter/js/navigator.js +101 -31
- data/assets/themes/j1/adapter/js/searcher.js +1 -1
- data/assets/themes/j1/adapter/js/ssm.js +30 -29
- data/assets/themes/j1/adapter/js/themer.js +7 -13
- data/assets/themes/j1/adapter/js/toccer.js +37 -7
- data/assets/themes/j1/core/css/animate.css +17 -0
- data/assets/themes/j1/core/css/bootstrap.css +54 -48
- data/assets/themes/j1/core/css/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/css/{fontawesome.css → icons-fontawesome.css} +31 -12
- data/assets/themes/j1/core/css/{fontawesome.min.css → icons-fontawesome.min.css} +0 -0
- data/assets/themes/j1/core/css/{iconify-icons.css → icons-iconify.css} +51 -38
- data/assets/themes/j1/core/css/{iconify-icons.min.css → icons-iconify.min.css} +1 -1
- data/assets/themes/j1/core/css/{material-design-icons.css → icons-materialdesign.css} +326 -244
- data/assets/themes/j1/core/css/icons-materialdesign.min.css +1 -0
- data/assets/themes/j1/core/css/{twemoji.css → icons-twemoji.css} +61 -51
- data/assets/themes/j1/core/css/{twemoji.min.css → icons-twemoji.min.css} +0 -0
- data/assets/themes/j1/core/css/{theme_extensions.css → theme-extensions.css} +1754 -1429
- data/assets/themes/j1/core/css/theme-extensions.min.css +1 -0
- data/assets/themes/j1/core/css/uno-dark.css +8109 -0
- data/assets/themes/j1/core/css/uno-dark.min.css +6 -0
- data/assets/themes/j1/core/css/uno.css +15337 -3046
- data/assets/themes/j1/core/css/uno.min.css +8 -1
- data/assets/themes/j1/core/css/vendor.css +86 -13430
- data/assets/themes/j1/core/css/vendor.min.css +1 -7
- data/assets/themes/j1/core/js/template.js +6 -6
- data/assets/themes/j1/core/js/template.js.map +1 -1
- data/assets/themes/j1/core/js/template.min.js +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.js +12 -13
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +12 -13
- data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.js +43 -34
- data/assets/themes/j1/modules/bsThemeSwitcher/js/switcher.min.js +11 -12
- data/assets/themes/j1/modules/carousel/css/carousel.css +8 -9
- data/assets/themes/j1/modules/carousel/css/carousel.min.css +7 -9
- data/assets/themes/j1/modules/carousel/css/carousel_transitions.css +7 -8
- data/assets/themes/j1/modules/carousel/css/carousel_transitions.min.css +7 -9
- data/assets/themes/j1/modules/carousel/css/theme/uno.css +7 -8
- data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +8 -9
- data/assets/themes/j1/modules/clipboard/css/theme/uno.css +7 -7
- data/assets/themes/j1/modules/clipboard/css/theme/uno.min.css +8 -45
- data/assets/themes/j1/modules/iframeResizer/examples/frame.absolute.html +2 -5
- data/assets/themes/j1/modules/iframeResizer/examples/frame.content.html +17 -44
- data/assets/themes/j1/modules/iframeResizer/examples/frame.hover.html +2 -5
- data/assets/themes/j1/modules/iframeResizer/examples/frame.nested.html +5 -7
- data/assets/themes/j1/modules/iframeResizer/examples/frame.textarea.html +1 -1
- data/assets/themes/j1/modules/iframeResizer/examples/frame.tolerance.html +3 -5
- data/assets/themes/j1/modules/iframeResizer/examples/index.html +4 -3
- data/assets/themes/j1/modules/iframeResizer/examples/two.html +4 -3
- data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.css +8 -9
- data/assets/themes/j1/modules/justifiedGallery/css/theme/uno.min.css +8 -31
- data/assets/themes/j1/modules/lightGallery/css/themes/uno.css +7 -8
- data/assets/themes/j1/modules/lightGallery/css/themes/uno.min.css +8 -10
- data/assets/themes/j1/modules/lightbox/css/lightbox.css +11 -12
- data/assets/themes/j1/modules/lightbox/css/lightbox.min.css +11 -12
- data/assets/themes/j1/modules/lightbox/css/theme/uno.css +7 -7
- data/assets/themes/j1/modules/lightbox/css/theme/uno.min.css +7 -8
- data/assets/themes/j1/modules/lightbox/js/lightbox.js +11 -12
- data/assets/themes/j1/modules/lightbox/js/lightbox.min.js +11 -27
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +82 -0
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +15 -0
- data/assets/{README.md → themes/j1/modules/mdiPreviewer/js/readme} +0 -0
- data/assets/themes/j1/modules/mmenuLight/css/mmenu.css +11 -11
- data/assets/themes/j1/modules/mmenuLight/css/mmenu.min.css +12 -386
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno.css +15 -19
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno.min.css +8 -163
- data/assets/themes/j1/modules/popper/js/popper.js +1 -1
- data/assets/themes/j1/modules/popper/js/popper.js.map +1 -1
- data/assets/themes/j1/modules/popper/js/popper.min.js.map +1 -1
- data/assets/themes/j1/modules/tocbot/css/theme/uno.css +12 -19
- data/assets/themes/j1/modules/tocbot/css/theme/uno.min.css +8 -82
- data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +153 -0
- data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +19 -0
- data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +12 -13
- data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +12 -268
- data/assets/themes/j1/modules/twemoji/js/twemoji.js +11 -20
- data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +11 -17
- data/lib/j1/version.rb +1 -1
- data/lib/j1_app/j1_auth_manager/config.rb +10 -5
- data/lib/j1_app/j1_auth_manager/views/auth_manager_ui.erb +5 -5
- data/lib/starter_web/Gemfile +6 -2
- data/lib/starter_web/_config.yml +2 -2
- data/lib/starter_web/_data/apps/carousel.yml +6 -7
- data/lib/starter_web/_data/apps/defaults/carousel.yml +2 -3
- data/lib/starter_web/_data/apps/defaults/gallery_customizer.yml +1 -2
- data/lib/starter_web/_data/apps/defaults/justified_gallery.yml +1 -2
- data/lib/starter_web/_data/apps/defaults/light_gallery.yml +1 -2
- data/lib/starter_web/_data/apps/defaults/lightbox.yml +1 -2
- data/lib/starter_web/_data/apps/gallery_customizer.yml +1 -2
- data/lib/starter_web/_data/apps/justified_gallery.yml +4 -5
- data/lib/starter_web/_data/apps/light_gallery.yml +1 -2
- data/lib/starter_web/_data/apps/lightbox.yml +1 -2
- data/lib/starter_web/_data/blocks/banner.yml +25 -21
- data/lib/starter_web/_data/blocks/defaults/banner.yml +3 -4
- data/lib/starter_web/_data/blocks/defaults/footer.yml +1 -2
- data/lib/starter_web/_data/blocks/defaults/panel.yml +3 -4
- data/lib/starter_web/_data/blocks/footer.yml +1 -2
- data/lib/starter_web/_data/blocks/panel.yml +29 -23
- data/lib/starter_web/_data/builder/blog_navigator.yml +1 -2
- data/lib/starter_web/_data/layouts/app.yml +1 -2
- data/lib/starter_web/_data/layouts/blog_archive.yml +1 -2
- data/lib/starter_web/_data/layouts/collection.yml +1 -2
- data/lib/starter_web/_data/layouts/home.yml +7 -28
- data/lib/starter_web/_data/layouts/post.yml +1 -2
- data/lib/starter_web/_data/layouts/raw.yml +1 -2
- data/lib/starter_web/_data/modules/advertising.yml +0 -1
- data/lib/starter_web/_data/modules/attics.yml +0 -1
- data/lib/starter_web/_data/modules/authentication.yml +0 -1
- data/lib/starter_web/_data/modules/back2top.yml +30 -0
- data/lib/starter_web/_data/modules/defaults/attics.yml +5 -3
- data/lib/starter_web/_data/modules/defaults/authentication.yml +0 -1
- data/lib/starter_web/_data/modules/defaults/back2top.yml +146 -0
- data/lib/starter_web/_data/modules/defaults/framer.yml +1 -3
- data/lib/starter_web/_data/modules/defaults/jekyll_search.yml +0 -1
- data/lib/starter_web/_data/modules/defaults/log4javascript.yml +4 -5
- data/lib/starter_web/_data/modules/defaults/log4r.yml +1 -2
- data/lib/starter_web/_data/modules/defaults/navigator.yml +15 -15
- data/lib/starter_web/_data/modules/defaults/stickybits.yml +1 -2
- data/lib/starter_web/_data/modules/defaults/themer.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -2
- data/lib/starter_web/_data/modules/framer.yml +1 -2
- data/lib/starter_web/_data/modules/log4javascript.yml +4 -5
- data/lib/starter_web/_data/modules/log4r.yml +1 -2
- data/lib/starter_web/_data/modules/navigator_menu.yml +3 -3
- data/lib/starter_web/_data/modules/themer.yml +2 -1
- data/lib/starter_web/_data/modules/toccer.yml +1 -1
- data/lib/starter_web/_data/private.yml +56 -108
- data/lib/starter_web/_data/resources.yml +107 -32
- data/lib/starter_web/_data/template_settings.yml +1 -1
- data/lib/starter_web/assets/images/modules/attics/aditya-joshi-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/alex-holyoake-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/anaya-katlego-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/antonella-lombardi-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/antonino-visalli-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/brandon-mowinkel-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/daniel-jensen-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/giammarco-boscaro-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/go-up-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/ian-schneider-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/jason-rosewell-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/jessica-ruscello-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/lianhao-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/library-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280-v.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/mae-mue-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/matthaeus-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/nousnou-iwasaki-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/premium-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/robert-v-ruggiero-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/romain-vignes-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/runner-1920x1200-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/spider-web-1920x1200-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/the-place-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/welcome-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-1.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-3.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-4.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-5.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-6.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-7.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/cats/cat-8.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/mega_cities/andreas-brucker_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-1_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/mega_cities/denys-nevozhai-2_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/mega_cities/luca-bravo_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/carousel/mega_cities/thomas-tucker_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/andreas-brucker_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/banter-snaps_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-1_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/denys-nevozhai-2_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/emmad-mazhari_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/ethan-brooke_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/federico-rizzarelli_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/gints-gailis_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/johan-mouchet_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/luca-bravo_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/oskars-sylwan_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/steven-diaz_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker-bw.jpg +0 -0
- data/lib/starter_web/assets/images/modules/gallery/mega_cities/thomas-tucker_b.jpg +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/favicon.ico +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/j1-256x256.png +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/j1-32x32.ico +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/j1-512x512.png +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/j1-64x64.png +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/j1.ico +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/scalable/j1.svg +31 -35
- data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-1.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-2.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/100_present_images/lightbox-image-3.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/bootstrap-1920x1000-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/cards-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/emojies-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/icon-fonts-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/images-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/puzzle-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/tables-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/themes-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/images/pages/roundtrip/typography-1920x1280-bw.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/adriana-lima-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
- data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/still/underground-broadway.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
- data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +81 -0
- data/lib/starter_web/collections/_biography/becoming.adoc +72 -0
- data/lib/starter_web/collections/_biography/born-to-run.adoc +78 -0
- data/lib/starter_web/collections/_biography/forty-autumns.adoc +75 -0
- data/lib/starter_web/collections/_biography/not-dead-yet.adoc +69 -0
- data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +72 -0
- data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +73 -0
- data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +64 -0
- data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +64 -0
- data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +62 -0
- data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +63 -0
- data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +62 -0
- data/lib/starter_web/collections/_fantasy/terry-pratchet-diary-2017.adoc +60 -0
- data/lib/starter_web/collections/_romance/breath-of-snow-and-ashes-a.adoc +67 -0
- data/lib/starter_web/collections/_romance/dressmaker-the.adoc +61 -0
- data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +69 -0
- data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +66 -0
- data/lib/starter_web/collections/_romance/outlander-novel.adoc +78 -0
- data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +62 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-05-01-top-open-source-static-site-generators.adoc +2 -2
- data/lib/starter_web/collections/posts/public/featured/_posts/2019-06-01-about-cookies.adoc +1 -1
- data/lib/starter_web/collections/posts/public/series/_posts/2018-11-01-docker-using-shared-folders.adoc +28 -24
- data/lib/starter_web/collections/posts/public/series/_posts/includes/attributes.asciidoc +66 -0
- data/lib/starter_web/collections/posts/public/series/_posts/includes/documents/100-docker-using-shared-folders.asciidoc +430 -0
- data/lib/starter_web/collections/posts/public/series/_posts/includes/documents/loop.sh +28 -0
- data/lib/starter_web/collections/posts/public/series/_posts/includes/tables/debug_variables.asciidoc +48 -0
- data/lib/starter_web/collections/posts/public/test_posts/_posts/2020-09-11-test_post.adoc +134 -0
- data/lib/starter_web/collections/posts/public/test_posts/_posts/includes/attributes.asciidoc +41 -0
- data/lib/starter_web/collections/posts/public/test_posts/_posts/includes/tables/debug_variables.asciidoc +48 -0
- data/lib/starter_web/includes/attributes.asciidoc +183 -0
- data/lib/starter_web/index.html +1 -1
- data/lib/starter_web/package.json +2 -2
- data/lib/starter_web/pages/protected/site_search.adoc +8 -19
- data/lib/starter_web/pages/public/blog/navigator/archive.html +11 -17
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +13 -19
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +13 -19
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +11 -12
- data/lib/starter_web/pages/public/bookshelf/100_whats_up.adoc +281 -0
- data/lib/starter_web/pages/public/bookshelf/200_book_shelf_biography.adoc +52 -0
- data/lib/starter_web/pages/public/bookshelf/300_book_shelf_fantasy.adoc +54 -0
- data/lib/starter_web/pages/public/bookshelf/400_book_shelf_romance.adoc +54 -0
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/100_meet_and_greet_jekyll.adoc +10 -19
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/200_preparations.adoc +12 -23
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/300_first_awesome_web.adoc +11 -21
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/attributes.asciidoc +21 -12
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/documents/100_meet_and_greet_jekyll.asciidoc +0 -0
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/documents/200_preparations.asciidoc +0 -0
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/documents/300_first_awesome_web.asciidoc +0 -0
- data/lib/starter_web/pages/public/learn/kickstarter/web_in_a_day/{000_includes → includes}/parts.asciidoc +0 -0
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +58 -79
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +27 -40
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +33 -48
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +40 -54
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +81 -96
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +14 -54
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +25 -40
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +21 -36
- data/lib/starter_web/pages/public/learn/roundtrip/510_mdb_preview/mdb_previewer.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/attributes.asciidoc +7 -32
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/100_gistblock.asciidoc +0 -0
- data/lib/starter_web/pages/public/learn/roundtrip/includes/documents/410_bottom_info.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_bottom_left_warning.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_bottom_right_danger.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_central_success.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_full_height_left_info.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_full_height_right_success.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_table_3_column.asciidoc +0 -0
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_top_info.asciidoc +3 -3
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_top_left_info.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/{000_includes → includes}/documents/410_top_right_success.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/includes/documents/419_advanced_modals_demo.asciidoc +337 -0
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_info.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_left_warning.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_bottom_right_danger.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_central_success.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_left_info.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_full_height_right_success.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_info.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_left_info.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/vtutorials/000_includes/documents/410_top_right_success.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/whats_up.adoc +6 -25
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +6 -12
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +27 -33
- data/lib/starter_web/pages/public/legal/en/400_license_agreement.adoc +3 -2
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +2 -0
- data/lib/starter_web/pages/public/previewer/bootstrap_theme.adoc +1297 -717
- data/lib/starter_web/pages/public/previewer/iframer.adoc +2 -7
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/attributes.asciidoc +16 -8
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/100_absolute_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/110_bs_grid_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/120_relative_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/200_rotate.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/300_flip.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/400_spin_pulsed.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/500_bw_color_palette.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/510_bs_color_palette.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/600_md_color_palette.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/601_md_color_palette_indigo.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/mdi_icons/602_md_color_palette_pink.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/100_bs_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/100_relative_sizes.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/200_rotate.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/300_flip.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/{000_includes → includes}/tables/twitter_emoji/400_spin_pulsed.asciidoc +0 -0
- data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +9 -22
- data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +22 -29
- data/lib/starter_web/pages/public/{learn/examples → test_pages}/floating_ad.adoc +0 -0
- data/lib/starter_web/pages/public/{learn/examples → test_pages}/floating_div.adoc +1 -1
- data/lib/starter_web/pages/public/test_pages/includes/attributes.asciidoc +47 -0
- data/lib/starter_web/pages/public/test_pages/includes/documents/100_gistblock.asciidoc +27 -0
- data/lib/starter_web/pages/public/test_pages/includes/images/pages/minneapolis.1200x400.jpg +0 -0
- data/lib/starter_web/pages/public/test_pages/includes/tables/000_bem_specifiers.asciidoc +22 -0
- data/lib/starter_web/pages/public/test_pages/includes/tables/000_specifier_examples.asciidoc +56 -0
- data/lib/starter_web/pages/public/test_pages/nav_pagination_tester.adoc +297 -0
- data/lib/starter_web/pages/public/test_pages/page_attribute_tester.adoc +103 -0
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +106 -65
- data/_includes/themes/j1/blocks/footer/boxes/about_box.proc.org +0 -40
- data/assets/themes/j1/core/css/material-design-icons.min.css +0 -1
- data/assets/themes/j1/core/css/theme_extensions.min.css +0 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js.org +0 -1
- data/lib/starter_web/assets/images/modules/attics/admin-dashboard-bootstrap-1280x600.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/mae-mu-Vf9gbsLZyf0-unsplash.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/still/underground-broadway.webp +0 -0
- data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.webp +0 -0
- data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.1.asciidoc +0 -120
- data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour.adoc +0 -144
- data/lib/starter_web/pages/public/learn/roundtrip/000_bs_tour_api.adoc +0 -642
- data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/410_bottom_info.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/roundtrip/000_includes/documents/419_advanced_modals_html.asciidoc +0 -928
- 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...
|
@@ -13,7 +13,7 @@ tags: [ Tutorial, kickstarter ]
|
|
13
13
|
index: [ Docker, Windows, Shared, Folder, Folders ]
|
14
14
|
categories: []
|
15
15
|
|
16
|
-
regenerate:
|
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
|
-
//
|
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
|
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
|
58
|
-
//
|
59
|
-
include
|
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
|
53
|
+
// Additional Asciidoc page attributes goes here
|
64
54
|
// -----------------------------------------------------------------------------
|
65
|
-
:debug:
|
66
|
-
|
55
|
+
:debug: false
|
56
|
+
:page-imagesdir: {{page.images.dir}}/j1_using_docker
|
67
57
|
|
68
58
|
// Page content
|
69
|
-
//
|
70
|
-
//include::{
|
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
|
+
//win10pc/Public /c/Users/Public cifs uid=1000,gid=5555,credentials=/home/jadams/.smbcredentials,iocharset=utf8,rw 0 0
|