j1-template 2023.2.7 → 2023.3.1
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/layouts/content_generator_news_panel_posts.html +2 -1
- data/_includes/themes/j1/layouts/content_generator_post.html +2 -2
- data/_includes/themes/j1/layouts/layout_metadata_generator.html +38 -38
- data/_includes/themes/j1/procedures/blocks/footer/boxes/about_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/contacts_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/issue.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/links_box.proc +1 -1
- data/_includes/themes/j1/procedures/blocks/footer/boxes/news_box.proc +1 -1
- data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -3
- data/_includes/themes/j1/procedures/layouts/module_writer.proc +7 -23
- data/_includes/themes/j1/procedures/layouts/resource_writer.proc +8 -8
- data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
- data/_layouts/compress.html +26 -21
- data/_layouts/default.html +36 -30
- data/assets/data/banner.html +5 -2
- data/assets/data/footer.html +15 -3
- data/assets/data/masonry.html +1 -1
- data/assets/data/masterslider.html +1 -0
- data/assets/data/menu.html +4 -4
- data/assets/data/panel.html +6 -3
- data/assets/data/quicklinks.html +138 -149
- data/assets/error_pages/HTTP204.html +3 -3
- data/assets/error_pages/HTTP400.html +3 -3
- data/assets/error_pages/HTTP401.html +3 -3
- data/assets/error_pages/HTTP403.html +3 -3
- data/assets/error_pages/HTTP404.html +3 -3
- data/assets/error_pages/HTTP444.html +3 -3
- data/assets/error_pages/HTTP445.html +3 -3
- data/assets/error_pages/HTTP446.html +5 -5
- data/assets/error_pages/HTTP447.html +7 -7
- data/assets/error_pages/HTTP448.html +7 -7
- data/assets/error_pages/HTTP500.html +3 -3
- data/assets/error_pages/HTTP501.html +3 -3
- data/assets/error_pages/HTTP502.html +3 -3
- data/assets/error_pages/HTTP503.html +3 -3
- data/assets/themes/j1/adapter/js/advertising.js +355 -156
- data/assets/themes/j1/adapter/js/analytics.js +1 -1
- data/assets/themes/j1/adapter/js/asciidoctor.js +1 -1
- data/assets/themes/j1/adapter/js/attic.js +22 -14
- data/assets/themes/j1/adapter/js/bmd.js +1 -1
- data/assets/themes/j1/adapter/js/carousel.js +5 -4
- data/assets/themes/j1/adapter/js/clipboard.js +1 -1
- data/assets/themes/j1/adapter/js/comments.js +5 -5
- data/assets/themes/j1/adapter/js/cookieConsent.js +1 -1
- data/assets/themes/j1/adapter/js/customFunctions.js +1 -1
- data/assets/themes/j1/adapter/js/customModule.js +1 -1
- data/assets/themes/j1/adapter/js/dropdowns.js +4 -2
- data/assets/themes/j1/adapter/js/fab.js +9 -6
- data/assets/themes/j1/adapter/js/framer.js +1 -1
- data/assets/themes/j1/adapter/js/iconPicker.js +227 -0
- data/assets/themes/j1/adapter/js/j1.js +402 -76
- data/assets/themes/j1/adapter/js/justifiedGallery.js +9 -3
- data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +2 -2
- data/assets/themes/j1/adapter/js/lightbox.js +4 -3
- data/assets/themes/j1/adapter/js/logger.js +1 -1
- data/assets/themes/j1/adapter/js/lunr.js +1 -1
- data/assets/themes/j1/adapter/js/masonry.js +4 -3
- data/assets/themes/j1/adapter/js/masterslider.js +30 -57
- data/assets/themes/j1/adapter/js/mmenu.js +2 -2
- data/assets/themes/j1/adapter/js/navigator.js +7 -5
- data/assets/themes/j1/adapter/js/nbinteract.js +9 -9
- data/assets/themes/j1/adapter/js/particles.js +2 -2
- data/assets/themes/j1/adapter/js/rangeSlider.js +2 -2
- data/assets/themes/j1/adapter/js/rouge.js +2 -2
- data/assets/themes/j1/adapter/js/rtable.js +1 -1
- data/assets/themes/j1/adapter/js/rtextResizer.js +1 -1
- data/assets/themes/j1/adapter/js/scroller.js +97 -109
- data/assets/themes/j1/adapter/js/slick.js +28 -18
- data/assets/themes/j1/adapter/js/themeToggler.js +259 -0
- data/assets/themes/j1/adapter/js/themer.js +63 -23
- data/assets/themes/j1/adapter/js/toccer.js +9 -6
- data/assets/themes/j1/adapter/js/translator.js +4 -2
- data/assets/themes/j1/adapter/js/waves.js +6 -4
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1322 -417
- data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +2064 -1273
- data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +3 -3
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +10280 -9399
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +10 -10
- data/assets/themes/j1/core/css/vendor.css +0 -14
- data/assets/themes/j1/core/css/vendor.min.css +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.js +6 -4
- data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
- data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js +1 -1
- data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.min.js +1 -1
- data/assets/themes/j1/modules/iconPicker/README.md +266 -0
- data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.css +419 -0
- data/assets/themes/j1/modules/iconPicker/css/universal-icon-picker.min.css +17 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-brands.json +467 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-brands.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-regular.json +169 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-regular.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-solid.json +1136 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome-solid.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome.json +1772 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/font-awesome.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.json +292 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.json +7312 -0
- data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.min.json +1 -0
- data/assets/themes/j1/modules/iconPicker/images/magnifying-glass-solid.svg +1 -0
- data/assets/themes/j1/modules/iconPicker/images/star-of-life-solid.svg +3 -0
- data/assets/themes/j1/modules/iconPicker/images/xmark-solid.svg +3 -0
- data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.js +493 -0
- data/assets/themes/j1/modules/iconPicker/js/universal-icon-picker.min.js +17 -0
- data/assets/themes/j1/modules/jquery/AUTHORS.txt +372 -0
- data/assets/themes/j1/modules/jquery/LICENSE.txt +43 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_444444_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_555555_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_777620_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_777777_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_cc0000_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/images/ui-icons_ffffff_256x240.png +0 -0
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.css +92 -92
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.min.css +4 -4
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.structure.css +88 -88
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.structure.min.css +2 -2
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.theme.css +4 -4
- data/assets/themes/j1/modules/jquery/css/jquery-ui/jquery-ui.theme.min.css +2 -2
- data/assets/themes/j1/modules/jquery/js/jquery-ui.js +13683 -13678
- data/assets/themes/j1/modules/jquery/js/jquery-ui.min.js +3 -3
- data/assets/themes/j1/modules/jquery/js/jquery.js +1029 -1203
- data/assets/themes/j1/modules/jquery/js/jquery.min.js +2 -2
- data/assets/themes/j1/modules/jquery/js/jquery.min.map +1 -1
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.css +1315 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.min.css +7 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.css +886 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.min.css +5 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.css +446 -0
- data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.min.css +5 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.js +37 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.min.js +17 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.js +42 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.min.js +17 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.js +19057 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.min.js +6 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.js +10872 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.js +2 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.map +1 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/require.js +2145 -0
- data/assets/themes/j1/modules/jquery-3.5.1/js/require.min.js +5 -0
- data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.js +2 -2
- data/assets/themes/j1/modules/lightGallery/js/modules/j1/j1-video.min.js +1 -1
- data/assets/themes/j1/modules/masterslider/css/theme/uno.css +9 -9
- data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +1 -1
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +2 -2
- data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
- data/assets/themes/j1/modules/rouge/css/uno.dark/theme.css +136 -47
- data/assets/themes/j1/modules/rouge/css/uno.light/theme.css +9 -9
- data/assets/themes/j1/modules/scroller/js/scroller.js +76 -69
- data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
- data/assets/themes/j1/modules/translator/js/translator.js +1 -1
- data/assets/themes/j1/modules/translator/js/translator.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +2 -2
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +5 -2
- data/lib/starter_web/_data/blocks/banner.yml +8 -5
- data/lib/starter_web/_data/blocks/defaults/footer.yml +4 -4
- data/lib/starter_web/_data/blocks/footer.yml +12 -5
- data/lib/starter_web/_data/blocks/panel.yml +41 -38
- data/lib/starter_web/_data/j1_config.yml +68 -58
- data/lib/starter_web/_data/layouts/collection.yml +1 -0
- data/lib/starter_web/_data/layouts/default.yml +1 -1
- data/lib/starter_web/_data/layouts/home.yml +38 -9
- data/lib/starter_web/_data/layouts/news_panel_posts.yml +1 -0
- data/lib/starter_web/_data/layouts/page.yml +2 -1
- data/lib/starter_web/_data/layouts/post.yml +1 -0
- data/lib/starter_web/_data/layouts/raw.yml +1 -0
- data/lib/starter_web/_data/modules/advertising.yml +209 -58
- data/lib/starter_web/_data/modules/analytics.yml +2 -2
- data/lib/starter_web/_data/modules/attics.yml +4 -7
- data/lib/starter_web/_data/modules/defaults/advertising.yml +3 -2
- data/lib/starter_web/_data/modules/defaults/attics.yml +3 -3
- data/lib/starter_web/_data/modules/defaults/iconPicker.yml +42 -0
- data/lib/starter_web/_data/modules/defaults/navigator.yml +15 -13
- data/lib/starter_web/_data/modules/defaults/theme_toggler.yml +42 -0
- data/lib/starter_web/_data/modules/iconPicker.yml +64 -0
- data/lib/starter_web/_data/modules/masonry.yml +3 -3
- data/lib/starter_web/_data/modules/masterslider.yml +5 -5
- data/lib/starter_web/_data/modules/navigator_menu.yml +311 -160
- data/lib/starter_web/_data/modules/scroller.yml +8 -8
- data/lib/starter_web/_data/modules/slick.yml +47 -86
- data/lib/starter_web/_data/modules/theme_toggler.yml +29 -0
- data/lib/starter_web/_data/modules/themer.yml +0 -6
- data/lib/starter_web/_data/resources.yml +54 -53
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_includes/attributes.0.asciidoc +626 -0
- data/lib/starter_web/_includes/attributes.asciidoc +81 -72
- data/lib/starter_web/_includes/google/static/google_ad_5128488466.html +19 -0
- data/lib/starter_web/_includes/google/static/google_ad_7284712660.html +19 -0
- data/lib/starter_web/_includes/google/templates/google_ads.html +55 -0
- data/lib/starter_web/_plugins/asciidoctor/google-ad-block.rb +47 -0
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/images/badges/configBinder.jpg +0 -0
- data/lib/starter_web/assets/images/badges/docsBinder.jpg +0 -0
- data/lib/starter_web/assets/images/badges/notebookBinder.jpg +0 -0
- data/lib/starter_web/assets/images/badges/scaleable/configBinder.svg +1 -1
- data/lib/starter_web/assets/images/badges/scaleable/docsBinder.svg +1 -1
- data/lib/starter_web/assets/images/badges/scaleable/myBinder.svg +1 -1
- data/lib/starter_web/assets/images/badges/scaleable/notebookBinder.svg +1 -1
- data/lib/starter_web/assets/images/icons/hyvor-talk/jpg/hyvor-logo.512x512.jpg +0 -0
- data/lib/starter_web/assets/images/icons/hyvor-talk/png/hyvor-logo.24x24.jpg +0 -0
- data/lib/starter_web/assets/images/icons/hyvor-talk/scalable/hyvor-logo.svg +1 -1
- data/lib/starter_web/assets/images/icons/j1/jpg/j1-256x256.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/jpg/j1-512x512.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/jpg/j1-64x64.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-256x256.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-512x512.jpg +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-512x512.jpg.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-512x512.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/png/j1-64x64.png +0 -0
- data/lib/starter_web/assets/images/icons/j1/scalable/j1.svg +1 -1
- data/lib/starter_web/assets/images/icons/mdi/mdi.svg +1 -0
- data/lib/starter_web/assets/images/icons/mdi/mdil.svg +1 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/alexander-redl.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/alina-grubnyak.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/andrea-badino.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/brad-neathery.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/brigitta-schneiter.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/bruno-figueiredo.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/clem-onojeghuo.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/core_web_vitals_best.png +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/crawford-jolly.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/eleni-afiontzi.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/fly-d.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/guillaume-bolduc.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/harpal-singh.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/hayden-mills-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-1.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-content-mockup-3.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/j1-starter-mockup-1.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/john-schnobrich-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/josep-martins.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/josh-liu.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kelly-sikkemal.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kira-auf-der-heide.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kristopher-roller.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/kristopher-roller.webp +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/matthaeus.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/melanie-deziel.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/milad-fakurian.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/mohammad-rahmani.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/nasa.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/quino-al-2.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/recha-oktaviani.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/building-blocks-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/christina-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/cookies-1920x1200.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/katie-moum-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/icons/j1/scalable/j1.svg +1 -1
- data/lib/starter_web/assets/images/pages/asciidoc_skeletons/example-pdf-screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/pages/core_web_vitals/200-create-a-link-1.jpg +0 -0
- data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best.jpg +0 -0
- data/lib/starter_web/assets/images/pages/core_web_vitals/core_web_vitals_best_full.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/appdevtools-html-validator.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/freeformatter-html-validator.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/w3c-nu-checker.jpg +0 -0
- data/lib/starter_web/assets/images/pages/html_validator/w3c-validator.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/dynamic-web-access.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/jamstack-generators.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.1200x400.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/static-web-access.jpg +0 -0
- data/lib/starter_web/assets/images/promo/home/screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/home/screenshot.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-faq.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-generator.jpg +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-generator.png +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/jekyll-og.png +0 -0
- data/lib/starter_web/assets/images/quotes/promo/jekyll/scalable/jekyll-faq.psd +0 -0
- data/lib/starter_web/collections/_biography/a-life-in-questions.adoc +8 -9
- data/lib/starter_web/collections/_biography/becoming.adoc +23 -10
- data/lib/starter_web/collections/_biography/born-to-run.adoc +28 -10
- data/lib/starter_web/collections/_biography/forty-autumns.adoc +20 -13
- data/lib/starter_web/collections/_biography/not-dead-yet.adoc +25 -15
- data/lib/starter_web/collections/_biography/princess-diarist-the.adoc +24 -15
- data/lib/starter_web/collections/_biography/when-breath-becomes-air.adoc +25 -12
- data/lib/starter_web/collections/_fantasy/harry-potter-deathly-hallows.adoc +14 -10
- data/lib/starter_web/collections/_fantasy/harry-potter-philosophers-stone.adoc +11 -8
- data/lib/starter_web/collections/_fantasy/mistborn-trilogy.adoc +32 -8
- data/lib/starter_web/collections/_fantasy/ready-player-one.adoc +17 -14
- data/lib/starter_web/collections/_fantasy/sword-of-destiny.adoc +27 -13
- data/lib/starter_web/collections/_fantasy/terry-pratchet-diary.adoc +38 -15
- data/lib/starter_web/collections/_people/diana-petersen.adoc +2 -0
- data/lib/starter_web/collections/_people/larry-parker.adoc +2 -0
- data/lib/starter_web/collections/_people/parveen-anand.adoc +2 -0
- data/lib/starter_web/collections/_portfolio/branding.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/graphic_design.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/identity.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/illustration.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/photography.adoc +5 -0
- data/lib/starter_web/collections/_portfolio/web_design.adoc +5 -0
- data/lib/starter_web/collections/_romance/{breath-of-snow-and-ashes-a.adoc → breath-of-snow-and-ashes.adoc} +20 -5
- data/lib/starter_web/collections/_romance/dressmaker-the.adoc +26 -14
- data/lib/starter_web/collections/_romance/fiery-cross-the.adoc +12 -9
- data/lib/starter_web/collections/_romance/it-ends-with-us.adoc +14 -11
- data/lib/starter_web/collections/_romance/outlander-novel.adoc +48 -25
- data/lib/starter_web/collections/_romance/virgins-outlander-short-story.adoc +30 -15
- data/lib/starter_web/collections/posts/public/featured/_posts/0000-00-00-welcome-to-j1.adoc.erb +4 -2
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +4 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-static-site-generators.adoc +5 -3
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +4 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/_includes/attributes.asciidoc +2 -2
- data/lib/starter_web/index.html +1 -18
- data/lib/starter_web/package.json +3 -3
- data/lib/starter_web/pages/public/about/features.adoc +1 -1
- data/lib/starter_web/pages/public/about/reporting_issues.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/100_converter/112_getting_started.asciidoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/_includes/documents/200_themes/212_values.asciidoc +4 -4
- data/lib/starter_web/pages/public/blog/navigator/index.html +2 -2
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_all_books.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_biography.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_fantasy.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/article_previewer/viewer_romance.adoc +1 -1
- data/lib/starter_web/pages/public/learn/bookshelf/jekyll_collections.adoc +75 -65
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/attributes.asciidoc +58 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/accordion.asciidoc +34 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/alerts.asciidoc +15 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/badges.asciidoc +9 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/body.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/breadcrumbs.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/buttons.asciidoc +75 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/cards.asciidoc +22 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/carousel.asciidoc +37 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/close.asciidoc +15 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/code.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/color_system.asciidoc +353 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/components.asciidoc +69 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/dropdowns.asciidoc +53 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/figures.asciidoc +5 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/forms.asciidoc +270 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/grid.asciidoc +49 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/links.asciidoc +21 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/list_groups.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/modals.asciidoc +43 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/navbar.asciidoc +45 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/navs.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/offcanvas.asciidoc +16 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/options.asciidoc +30 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/pagination.asciidoc +40 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/paragraph.asciidoc +5 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/placeholders.asciidoc +5 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/popovers.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/position.asciidoc +8 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/progress_bars.asciidoc +12 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/spacing.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/spinners.asciidoc +12 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/tables.asciidoc +55 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/thumbnails.asciidoc +9 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/toasts.asciidoc +18 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/tooltips.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/typography.asciidoc +115 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/documents/z_index.asciidoc +26 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/tables/_table.asciidoc +9 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/_includes/tables/accordion.asciidoc +87 -0
- data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +262 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/attributes.asciidoc +59 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/documents/100_chapter.asciidoc +541 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/documents/200_chapter.asciidoc +33 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/build_command_options.asciidoc +72 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/files_and_folders.asciidoc +66 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/global_configuration_options.asciidoc +63 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/global_variables.asciidoc +26 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/page_variables.asciidoc +54 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/serve_command_options.asciidoc +45 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/_includes/tables/site_variables.asciidoc +59 -0
- data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +442 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.0.asciidoc +112 -0
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/100_gistblock.asciidoc +3 -4
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +2 -2
- data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +10 -10
- data/lib/starter_web/pages/public/learn/roundtrip/present_images.adoc +35 -4
- data/lib/starter_web/pages/public/learn/roundtrip/responsive_tables.adoc +3 -3
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +41 -49
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +2 -2
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +2 -2
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +2 -2
- data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +255 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +1458 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/j1.adoc +63 -0
- data/lib/starter_web/pages/public/tools/cheatsheet/yaml.adoc +514 -0
- data/lib/starter_web/pages/public/{previewer → tools/previewer}/preview_bootstrap_theme.adoc +94 -5
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +169 -60
- data/_includes/themes/j1/modules/ads/google_ad_content_home.html +0 -11
- data/_includes/themes/j1/modules/ads/google_ad_top_home.html +0 -11
- data/assets/themes/j1/core/css/nbinteract-tutorial/styles.css +0 -1711
- data/assets/themes/j1/core/css/nbinteract-tutorial/styles.min.css +0 -1
- data/assets/themes/j1/modules/advertising/js/google/adInitializer.js +0 -127
- data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.2.js +0 -460
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.css +0 -97
- data/assets/themes/j1/modules/mdiPreviewer/css/previewer.min.css +0 -15
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.js +0 -115
- data/assets/themes/j1/modules/mdiPreviewer/js/previewer.min.js +0 -15
- data/assets/themes/j1/modules/mdilPreviewer/css/previewer.css +0 -97
- data/assets/themes/j1/modules/mdilPreviewer/css/previewer.min.css +0 -15
- data/assets/themes/j1/modules/mdilPreviewer/js/previewer.js +0 -125
- data/assets/themes/j1/modules/mdilPreviewer/js/previewer.min.js +0 -15
- data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_content_home.html +0 -11
- data/lib/starter_web/_includes/themes/j1/modules/ads/google_ad_top_home.html +0 -11
- data/lib/starter_web/assets/images/icons/j1/j1-256x256.gif +0 -0
- data/lib/starter_web/assets/images/pages/asciidoc_skeletons/example-pdf-screenshot.png +0 -0
- data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.png +0 -0
- data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.png +0 -0
- data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.png +0 -0
- data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.png +0 -0
- data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.png +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/binderhub-architecture.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/jupyterlab-architecture.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/mandelbrot-menge-1920x1200.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/mandelbrot-menge.png +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi-textbook-example.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_bar.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_hist.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_line.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_multiple_choice.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_scatter.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_scatter_drag.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_short_answer.jpg +0 -0
- data/lib/starter_web/assets/images/pages/nbinteract/nbi-textbook-example.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/dynamic-web-access.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/jamstack-generators.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.1200x400.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/jekyll.png +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-1.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-2.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-3.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-4.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/post-5.jpg +0 -0
- data/lib/starter_web/assets/images/posts/featured/static-web-access.png +0 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2022-08-01-organize-your-life.adoc +0 -118
- data/lib/starter_web/collections/posts/public/series/_posts/2022-08-02-organize-your-life.adoc +0 -118
- data/lib/starter_web/collections/posts/public/series/_posts/2022-08-03-organize-your-life.adoc +0 -118
- data/lib/starter_web/collections/posts/public/series/_posts/2022-09-01-organize-your-life.adoc +0 -117
- data/lib/starter_web/collections/posts/public/series/_posts/2022-09-02-organize-your-life.adoc +0 -117
- /data/lib/starter_web/assets/images/badges/{configBinder.png → png/configBinder.png} +0 -0
- /data/lib/starter_web/assets/images/badges/{docsBinder.png → png/docsBinder.png} +0 -0
- /data/lib/starter_web/assets/images/badges/{notebookBinder.png → png/notebookBinder.png} +0 -0
- /data/lib/starter_web/assets/images/icons/hyvor-talk/{hyvor-logo.24x24.png → png/hyvor-logo.24x24.png} +0 -0
- /data/lib/starter_web/assets/images/icons/hyvor-talk/{hyvor-logo.512x512.png → png/hyvor-logo.512x512.png} +0 -0
@@ -6,7 +6,7 @@ regenerate: true
|
|
6
6
|
|
7
7
|
{% comment %}
|
8
8
|
# -----------------------------------------------------------------------------
|
9
|
-
# ~/assets/
|
9
|
+
# ~/assets/theFdames/j1/adapter/js/advertising.js
|
10
10
|
# Liquid template to adapt advertising plugin
|
11
11
|
#
|
12
12
|
# Product/Info:
|
@@ -39,14 +39,14 @@ regenerate: true
|
|
39
39
|
{% assign blocks = site.data.blocks %}
|
40
40
|
{% assign modules = site.data.modules %}
|
41
41
|
|
42
|
-
{% comment %} Set config data
|
42
|
+
{% comment %} Set config data
|
43
43
|
-------------------------------------------------------------------------------- {% endcomment %}
|
44
44
|
{% assign cookie_defaults = modules.defaults.cookies.defaults %}
|
45
45
|
{% assign cookie_settings = modules.cookies.settings %}
|
46
46
|
{% assign advertising_defaults = modules.defaults.advertising.defaults %}
|
47
47
|
{% assign advertising_settings = modules.advertising.settings %}
|
48
48
|
|
49
|
-
{% comment %} Set config options
|
49
|
+
{% comment %} Set config options
|
50
50
|
-------------------------------------------------------------------------------- {% endcomment %}
|
51
51
|
{% assign cookie_options = cookie_defaults | merge: cookie_settings %}
|
52
52
|
{% assign advertising_options = advertising_defaults | merge: advertising_settings %}
|
@@ -55,6 +55,7 @@ regenerate: true
|
|
55
55
|
-------------------------------------------------------------------------------- {% endcomment %}
|
56
56
|
{% assign advertising = advertising_options.enabled %}
|
57
57
|
{% assign advertising_provider = advertising_options.provider %}
|
58
|
+
{% assign layout = page.layout %}
|
58
59
|
|
59
60
|
{% comment %} Detect prod mode
|
60
61
|
-------------------------------------------------------------------------------- {% endcomment %}
|
@@ -90,14 +91,21 @@ j1.adapter.advertising = (function (j1, window) {
|
|
90
91
|
|
91
92
|
{% comment %} Set global variables
|
92
93
|
-------------------------------------------------------------------------------- {% endcomment %}
|
93
|
-
var environment
|
94
|
-
var
|
95
|
-
var
|
96
|
-
var
|
97
|
-
var
|
94
|
+
var environment = '{{environment}}';
|
95
|
+
var production = (environment.includes('prod') ? true : false);
|
96
|
+
var development = (environment.includes('dev') ? true : false);
|
97
|
+
var date = new Date();
|
98
|
+
var timestamp_now = date.toISOString();
|
99
|
+
var gasScript = document.createElement('script');
|
100
|
+
var gasDiv = document.createElement('div');
|
101
|
+
var gasIns = document.createElement('ins');
|
102
|
+
var adInitializerScript = document.createElement('script');
|
103
|
+
var advertisingProvider = 'Google Adsense';
|
104
|
+
var layout;
|
98
105
|
var advertisingDefaults;
|
99
|
-
var
|
106
|
+
var advertisingSettings;
|
100
107
|
var advertisingOptions;
|
108
|
+
var frontmatterOptions;
|
101
109
|
var autoHideOnUnfilled;
|
102
110
|
var addBorderOnUnfilled;
|
103
111
|
var checkTrackingProtection;
|
@@ -109,9 +117,8 @@ var baseUrl;
|
|
109
117
|
var hostname;
|
110
118
|
var cookie_names;
|
111
119
|
var user_consent;
|
112
|
-
var
|
113
|
-
var
|
114
|
-
var validProviderID;
|
120
|
+
var publisherID;
|
121
|
+
var validpublisherID;
|
115
122
|
var _this;
|
116
123
|
var logger;
|
117
124
|
var logText;
|
@@ -127,20 +134,6 @@ var logText;
|
|
127
134
|
// -------------------------------------------------------------------------
|
128
135
|
init: function (options) {
|
129
136
|
|
130
|
-
{% if advertising %}
|
131
|
-
// [INFO ] [j1.adapter.advertising ] [ detected advertising provider (j1_config): {{advertising_provider}}} ]
|
132
|
-
// [INFO ] [j1.adapter.advertising ] [ start processing load region head, layout: {{page.layout}} ]
|
133
|
-
|
134
|
-
// Load module DEFAULTS|CONFIG
|
135
|
-
advertisingDefaults = $.extend({}, {{analytics_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
136
|
-
aadvertisingSettings = $.extend({}, {{analytics_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
137
|
-
advertisingOptions = $.extend(true, {}, advertisingDefaults, aadvertisingSettings);
|
138
|
-
|
139
|
-
autoHideOnUnfilled = analyticsOptions.google.autoHideOnUnfilled;
|
140
|
-
addBorderOnUnfilled = analyticsOptions.google.addBorderOnUnfilled;
|
141
|
-
checkTrackingProtection = analyticsOptions.google.checkTrackingProtection;
|
142
|
-
showErrorPageOnBlocked = analyticsOptions.google.showErrorPageOnBlocked;
|
143
|
-
|
144
137
|
// -----------------------------------------------------------------------
|
145
138
|
// Default module settings
|
146
139
|
// -----------------------------------------------------------------------
|
@@ -152,107 +145,177 @@ var logText;
|
|
152
145
|
// -----------------------------------------------------------------------
|
153
146
|
// Global variable settings
|
154
147
|
// -----------------------------------------------------------------------
|
148
|
+
logger = log4javascript.getLogger('j1.adapter.advertising');
|
149
|
+
_this = j1.adapter.advertising;
|
155
150
|
cookie_names = j1.getCookieNames();
|
156
151
|
user_consent = j1.readCookie(cookie_names.user_consent);
|
157
152
|
url = new liteURL(window.location.href);
|
158
153
|
hostname = url.hostname;
|
159
154
|
|
160
|
-
|
161
|
-
|
162
|
-
|
155
|
+
// create settings object from frontmatter
|
156
|
+
//
|
157
|
+
frontmatterOptions = options != null ? $.extend({}, options) : {};
|
158
|
+
|
159
|
+
// initialze advertisingOptions
|
160
|
+
//
|
161
|
+
advertisingDefaults = $.extend({}, {{advertising_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
|
162
|
+
advertisingSettings = $.extend({}, {{advertising_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
|
163
|
+
advertisingOptions = $.extend(true, {}, advertisingDefaults, advertisingSettings, frontmatterOptions);
|
164
|
+
layout = advertisingOptions.layout;
|
165
|
+
publisherID = advertisingOptions.google.publisherID;
|
166
|
+
validpublisherID = (publisherID.includes('pub-')) ? true : false;
|
167
|
+
autoHideOnUnfilled = advertisingOptions.google.autoHideOnUnfilled;
|
168
|
+
addBorderOnUnfilled = advertisingOptions.google.addBorderOnUnfilled;
|
169
|
+
checkTrackingProtection = advertisingOptions.google.checkTrackingProtection;
|
170
|
+
showErrorPageOnBlocked = advertisingOptions.google.showErrorPageOnBlocked;
|
171
|
+
|
172
|
+
// run initialization on 'contentVisible'
|
173
|
+
//
|
174
|
+
var dependencies_met_page_ready = setInterval (function (options) {
|
175
|
+
var contentState = $('#content').css("display");
|
176
|
+
var contentVisible = (contentState == 'block') ? true: false;
|
163
177
|
|
164
|
-
|
165
|
-
logger = log4javascript.getLogger('j1.adapter.advertising.google');
|
178
|
+
if (j1.getState() === 'finished' && contentVisible) {
|
166
179
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
logger.info('\n' + 'module is being initialized');
|
180
|
+
{% comment %} detect|load code if 'advertising' is 'enabled'
|
181
|
+
------------------------------------------------------------------------ {% endcomment %}
|
182
|
+
{% if advertising %}
|
171
183
|
|
172
|
-
|
173
|
-
if (j1.getState() == 'finished') {
|
184
|
+
_this.ad_initializer();
|
174
185
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
|
186
|
+
if (!validpublisherID) {
|
187
|
+
if (development) {
|
188
|
+
logger.warn('\n' + 'invalid publisher id: ' + publisherID);
|
189
|
+
logger.info('\n' + 'module disabled' );
|
190
|
+
}
|
181
191
|
clearInterval(dependencies_met_page_ready);
|
182
192
|
return false;
|
183
193
|
}
|
184
194
|
|
195
|
+
{% case advertising_provider %}
|
196
|
+
{% when "google" %}
|
197
|
+
// [INFO ] [j1.adapter.advertising ] [ place provider: Google Adsense ]
|
198
|
+
|
199
|
+
// initialize state flag
|
200
|
+
//
|
201
|
+
_this.setState('started');
|
202
|
+
if (development) {
|
203
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
204
|
+
}
|
205
|
+
|
185
206
|
if (user_consent.personalization) {
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
207
|
+
if (development) {
|
208
|
+
logger.info('\n' + 'adsense api is being initialized');
|
209
|
+
}
|
210
|
+
|
211
|
+
if (!validpublisherID) {
|
212
|
+
if (development) {
|
213
|
+
logger.debug('\n' + 'invalid publisherID detected for Google Adsense: ' + publisherID);
|
214
|
+
logger.info('\n' + 'skip initialization for provider: ' + advertisingProvider);
|
215
|
+
}
|
216
|
+
return false;
|
217
|
+
} else {
|
218
|
+
if (development) {
|
219
|
+
logger.info('\n' + 'use publisherID for Google Adsense: ' + publisherID);
|
220
|
+
}
|
221
|
+
}
|
222
|
+
|
223
|
+
// add Google Adsense API dynamically in head section loaded async
|
224
|
+
//
|
225
|
+
if (development) {
|
226
|
+
logger.info('\n' + 'add Google AdsenseAPI in section: head');
|
227
|
+
}
|
228
|
+
|
229
|
+
gasScript.async = true;
|
230
|
+
gasScript.id = 'gas-api';
|
231
|
+
gasScript.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
|
232
|
+
gasScript.setAttribute('data-ad-client', publisherID);
|
233
|
+
document.head.appendChild(gasScript);
|
234
|
+
|
235
|
+
if (development) {
|
236
|
+
logger.info('\n' + 'adsense api initialized');
|
237
|
+
}
|
199
238
|
|
200
239
|
// setup monitor for state changes on all ads configured
|
201
|
-
//
|
202
|
-
|
203
|
-
|
240
|
+
//
|
241
|
+
setTimeout(function () {
|
242
|
+
var ads_found = (document.getElementsByClassName('adsbygoogle').length > 0) ? true : false;
|
243
|
+
if (ads_found > 0) {
|
244
|
+
if (development) {
|
245
|
+
logger.info('\n' + 'setup Google Ad monitoring');
|
246
|
+
}
|
247
|
+
_this.ad_monitor();
|
248
|
+
} else {
|
249
|
+
if (development) {
|
250
|
+
logger.warn('\n' + 'no initialized Google Ads found in page');
|
251
|
+
}
|
252
|
+
}
|
253
|
+
}, 1000);
|
204
254
|
|
205
255
|
// run protection check
|
206
|
-
//
|
256
|
+
//
|
207
257
|
if (checkTrackingProtection) {
|
208
|
-
|
209
|
-
|
258
|
+
if (development) {
|
259
|
+
logger.debug('\n' + 'run checks for tracking protection');
|
260
|
+
}
|
210
261
|
|
262
|
+
_this.check_tracking_protection();
|
211
263
|
var dependencies_met_tracking_check_ready = setInterval (function (options) {
|
212
264
|
if (typeof tracking_protection !== 'undefined' ) {
|
213
|
-
|
214
265
|
var browser_tracking_feature = navigator.DoNotTrack;
|
215
266
|
|
216
267
|
if (!tracking_protection && !browser_tracking_feature) {
|
217
|
-
|
218
|
-
|
268
|
+
if (development) {
|
269
|
+
logText = '\n' + 'tracking protection: disabled';
|
270
|
+
logger.info(logText);
|
271
|
+
}
|
219
272
|
} else {
|
220
|
-
|
221
|
-
|
273
|
+
if (development) {
|
274
|
+
logText = '\n' + 'tracking protection: enabled';
|
275
|
+
logger.debug(logText);
|
276
|
+
}
|
222
277
|
|
223
278
|
if (showErrorPageOnBlocked) {
|
224
|
-
|
279
|
+
if (development) {
|
280
|
+
logger.error('\n' + 'redirect to error page (blocked content): HTML-447');
|
281
|
+
}
|
225
282
|
// redirect to error page: blocked content
|
226
283
|
window.location.href = '/447.html';
|
227
284
|
}
|
228
285
|
}
|
229
286
|
}
|
287
|
+
|
230
288
|
clearInterval(dependencies_met_tracking_check_ready);
|
231
|
-
},
|
289
|
+
}, 10);
|
232
290
|
} else {
|
233
|
-
//
|
234
|
-
// ---------------------------------------------------------------
|
235
|
-
logger.info('\n' + 'setup monitoring');
|
236
|
-
_this.monitor_ads();
|
237
|
-
|
291
|
+
// no protection check enabled
|
238
292
|
_this.setState('finished');
|
239
|
-
|
240
|
-
|
293
|
+
|
294
|
+
if (development) {
|
295
|
+
logger.debug('\n' + 'state: ' + _this.getState());
|
296
|
+
logger.info('\n' + 'module initialized successfully');
|
297
|
+
}
|
298
|
+
|
241
299
|
clearInterval(dependencies_met_tracking_check_ready);
|
242
300
|
}
|
243
|
-
|
301
|
+
|
244
302
|
} else {
|
245
|
-
//
|
246
|
-
//
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
303
|
+
// user consent on personalization "false"
|
304
|
+
//
|
305
|
+
if (production) {
|
306
|
+
console.debug('cookies for personalization rejected');
|
307
|
+
console.debug('initialization of module advertising skipped');
|
308
|
+
} else {
|
309
|
+
logger.warn('\n' + 'user consent on personalization: ' + user_consent.personalization);
|
310
|
+
logger.warn('\n' + 'initializing module: skipped');
|
311
|
+
}
|
312
|
+
|
313
|
+
// if consent is rejected, detect and remove Adsense cookies
|
314
|
+
//
|
315
|
+
var gasCookies = j1.findCookie('__g');
|
254
316
|
gasCookies.forEach(function (item) {
|
255
|
-
//
|
317
|
+
// remove Google Ad cookies
|
318
|
+
//
|
256
319
|
if (hostname == 'localhost') {
|
257
320
|
j1.removeCookie({ name: item, domain: false, secure: false });
|
258
321
|
} else {
|
@@ -261,72 +324,221 @@ var logText;
|
|
261
324
|
});
|
262
325
|
|
263
326
|
// manage tracking protection
|
264
|
-
//
|
327
|
+
//
|
265
328
|
if (checkTrackingProtection) {
|
266
329
|
if (!user_consent.personalization) {
|
267
|
-
|
268
|
-
|
330
|
+
if (development) {
|
331
|
+
logText = '\n' + 'consent on cookies disabled for personalization';
|
332
|
+
logger.debug(logText);
|
333
|
+
}
|
269
334
|
|
270
335
|
if (showErrorPageOnBlocked) {
|
271
|
-
|
336
|
+
if (development) {
|
337
|
+
logger.error('\n' + 'redirect to error page (blocked content): HTML-447');
|
338
|
+
}
|
272
339
|
// redirect to error page: blocked content
|
273
340
|
window.location.href = '/448.html';
|
274
341
|
}
|
275
342
|
}
|
276
343
|
}
|
277
|
-
|
344
|
+
|
278
345
|
} // END if user_consent.personalization
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
346
|
+
|
347
|
+
{% when "custom" %}
|
348
|
+
// [INFO ] [j1.adapter.advertising ] [ place provider: Custom Provider ]
|
349
|
+
{% endcase %}
|
350
|
+
// [INFO ] [j1.adapter.advertising ] [ end processing ]
|
351
|
+
{% else %}
|
352
|
+
var ads_found = document.getElementsByClassName('adsbygoogle').length;
|
353
|
+
if (development) {
|
354
|
+
logger = log4javascript.getLogger('j1.adapter.advertising');
|
355
|
+
logger.debug('\n' + 'found ads in page: #' + ads_found);
|
356
|
+
logger.debug('\n' + 'no ads initialized, advertising disabled');
|
357
|
+
}
|
358
|
+
{% endif %} // END if 'advertising'
|
359
|
+
|
293
360
|
clearInterval(dependencies_met_page_ready);
|
294
361
|
}
|
295
|
-
},
|
296
|
-
{% endif %}
|
297
|
-
return;
|
362
|
+
}, 10);
|
298
363
|
}, // END init
|
299
364
|
|
300
365
|
// -------------------------------------------------------------------------
|
301
|
-
//
|
366
|
+
// ad_initializer()
|
367
|
+
// initialze all ad units in a page (ins elements)
|
368
|
+
// -------------------------------------------------------------------------
|
369
|
+
ad_initializer: function () {
|
370
|
+
|
371
|
+
var dependencies_met_page_visible = setInterval (function (options) {
|
372
|
+
var contentState = $('#content').css("display");
|
373
|
+
var contentVisible = (contentState == 'block') ? true: false;
|
374
|
+
var ads_found = (document.getElementsByClassName('adsbygoogle').length > 0) ? true : false;
|
375
|
+
var ads_initialized = 0;
|
376
|
+
var ad_containers;
|
377
|
+
|
378
|
+
if (j1.getState() === 'finished' && contentVisible && ads_found) {
|
379
|
+
if (!validpublisherID) {
|
380
|
+
// skip setup processes
|
381
|
+
//
|
382
|
+
clearInterval(dependencies_met_page_visible);
|
383
|
+
return false;
|
384
|
+
}
|
385
|
+
|
386
|
+
// create|loading adverting for containers enabled
|
387
|
+
//
|
388
|
+
ad_containers = advertisingOptions.google.ads;
|
389
|
+
ad_containers.forEach(function (ad) {
|
390
|
+
if (user_consent.personalization) {
|
391
|
+
var currentDiv = document.getElementById(ad.id);
|
392
|
+
|
393
|
+
if (ad.enabled && ad.layout == layout) {
|
394
|
+
var ins = document.createElement('ins');
|
395
|
+
|
396
|
+
currentDiv.appendChild(ins);
|
397
|
+
var insID = 'ins_' + ad.id;
|
398
|
+
ins.setAttribute('id', insID);
|
399
|
+
ins.className = "adsbygoogle";
|
400
|
+
|
401
|
+
document.getElementById(insID).setAttribute('style', ad.styles);
|
402
|
+
document.getElementById(insID).setAttribute('data-ad-test', ad.test)
|
403
|
+
document.getElementById(insID).setAttribute('data-ad-client', ad.publisherID);
|
404
|
+
document.getElementById(insID).setAttribute('data-ad-slot', ad.slot);
|
405
|
+
document.getElementById(insID).setAttribute('data-ad-format', ad.ad_format);
|
406
|
+
|
407
|
+
if (ad.ad_layout == 'display') {
|
408
|
+
document.getElementById(insID).setAttribute('data-full-width-responsive', ad.ad_responsive);
|
409
|
+
}
|
410
|
+
|
411
|
+
// if (ad.ad_layout == 'in-article') {
|
412
|
+
// document.getElementById(insID).setAttribute('data-ad-format', ad.ad_format);
|
413
|
+
// }
|
414
|
+
|
415
|
+
if (ad.ad_layout == 'multiplex') {
|
416
|
+
document.getElementById(insID).setAttribute('data-matched-content-ui-typ', ad.ui_type);
|
417
|
+
document.getElementById(insID).setAttribute('data-matched-content-columns-num', ad.ui_columns);
|
418
|
+
document.getElementById(insID).setAttribute('data-matched-content-rows-num', ad.ui_rows);
|
419
|
+
}
|
420
|
+
|
421
|
+
ads_initialized ++;
|
422
|
+
} else {
|
423
|
+
if (ad.layout == layout) {
|
424
|
+
if (development) {
|
425
|
+
logger.warn('\n' + 'ad disabled on id ' + ad.id + ' for slot: ' + ad.slot);
|
426
|
+
}
|
427
|
+
}
|
428
|
+
}
|
429
|
+
} else {
|
430
|
+
if (development) {
|
431
|
+
logger.warn('\n' + 'skipped add settings on all ad containers');
|
432
|
+
}
|
433
|
+
} // END if user_consent.personalization
|
434
|
+
|
435
|
+
});
|
436
|
+
// END loading adverting containers
|
437
|
+
|
438
|
+
if (ads_initialized > 0) {
|
439
|
+
if (development) {
|
440
|
+
logger.info('\n' + 'ads enabled found in page (total): ' + ads_initialized);
|
441
|
+
}
|
442
|
+
|
443
|
+
var google_ads = document.getElementsByClassName('adsbygoogle');
|
444
|
+
var counter = document.getElementsByClassName('adsbygoogle').length;
|
445
|
+
|
446
|
+
// jadams, 2023-06-22:
|
447
|
+
// skip last element in google_ads (adsbygoogle-noablate)
|
448
|
+
// TODO: clarify for what reason an 'ins' element with
|
449
|
+
// class 'adsbygoogle-noablate' is added by Googgle Adsense
|
450
|
+
// Possible reason: publisherID is 'wrong|fake' or NOT 'verified'
|
451
|
+
//
|
452
|
+
counter--;
|
453
|
+
|
454
|
+
[].forEach.call(google_ads, function() {
|
455
|
+
// skip last element in google_ads (adsbygoogle-noablate)
|
456
|
+
if (counter > 0) {
|
457
|
+
(adsbygoogle = window.adsbygoogle || []).push({});
|
458
|
+
}
|
459
|
+
counter --;
|
460
|
+
});
|
461
|
+
} else {
|
462
|
+
if (development) {
|
463
|
+
logger.warn('\n' + 'no ads found in page for layout: ' + layout);
|
464
|
+
}
|
465
|
+
} // END if ads_initialized
|
466
|
+
|
467
|
+
clearInterval(dependencies_met_page_visible);
|
468
|
+
} // END contentVisible|ads_found
|
469
|
+
|
470
|
+
}, 10); // END dependencies_met_page_visible
|
471
|
+
|
472
|
+
}, // END ad_initializer
|
473
|
+
|
474
|
+
// -------------------------------------------------------------------------
|
475
|
+
// ad_monitor()
|
302
476
|
// monitor for state changes on the ad placed in pages (if any)
|
303
477
|
//
|
304
478
|
// NOTE: Check visibility state of the adSlot to prevent multiple
|
305
479
|
// processing of the same slot
|
480
|
+
//
|
481
|
+
// NOTE: Skip ad containers with class 'adsbygoogle-noablate'
|
482
|
+
//
|
306
483
|
// -------------------------------------------------------------------------
|
307
|
-
|
308
|
-
var logger = log4javascript.getLogger('j1.adapter.advertising.monitor.ads');
|
309
|
-
|
484
|
+
ad_monitor: function () {
|
310
485
|
$('.adsbygoogle').attrchange({
|
311
486
|
trackValues: true,
|
312
487
|
callback: function (event) {
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
488
|
+
var elm = event.target.dataset;
|
489
|
+
var elm_classes = event.target.className;
|
490
|
+
var validAdContainer = (elm_classes.includes('adsbygoogle-noablate')) ? false : true;
|
491
|
+
var environment = '{{environment}}';
|
492
|
+
var production = (environment.includes('prod') ? true : false);
|
493
|
+
var adSlotIsVisible = $('.adsbygoogle').is(":visible");
|
494
|
+
|
495
|
+
if (adSlotIsVisible && validAdContainer && event.newValue !== event.oldValue) {
|
496
|
+
if (event.newValue === 'unfilled') {
|
497
|
+
if (production) {
|
498
|
+
console.debug('detected ad blocks in state: unfilled');
|
499
|
+
} else {
|
500
|
+
logger.warn('\n' + 'detected ad on slot ' + elm.adSlot + ' in state: ' + event.newValue);
|
501
|
+
}
|
502
|
+
if (addBorderOnUnfilled) {
|
503
|
+
$('.adsbygoogle').addClass('border--dotted');
|
504
|
+
}
|
505
|
+
if (autoHideOnUnfilled) {
|
506
|
+
if (development) {
|
507
|
+
logger.info('\n' + ' hide ad on slot: ' + elm.adSlot);
|
323
508
|
}
|
509
|
+
$('.adsbygoogle').hide();
|
324
510
|
}
|
325
|
-
}
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
511
|
+
} else if (event.newValue === 'filled') {
|
512
|
+
if (development) {
|
513
|
+
logger.info('\n' + 'detected ad on slot ' + elm.adSlot + ' in state: ' + event.newValue);
|
514
|
+
}
|
515
|
+
} else {
|
516
|
+
var filled = (event.newValue.includes('display') ? true : false);
|
517
|
+
var unfilled = (event.newValue.includes('dotted') ? true : false);
|
518
|
+
if (filled) {
|
519
|
+
if (production) {
|
520
|
+
console.info('detected ad blocks in state: filled');
|
521
|
+
} else {
|
522
|
+
logger.info('\n' + 'detected ad block on slot ' + elm.adSlot + ' in state: filled');
|
523
|
+
}
|
524
|
+
} else if (unfilled) {
|
525
|
+
if (production) {
|
526
|
+
console.info('detected ad blocks in state: unfilled');
|
527
|
+
} else {
|
528
|
+
logger.info('\n' + 'detected ad block on slot ' + elm.adSlot + ' in state: unfilled');
|
529
|
+
}
|
530
|
+
} else {
|
531
|
+
if (production) {
|
532
|
+
console.warn('unknown ad state detected: ' + event.newValue);
|
533
|
+
} else {
|
534
|
+
logger.warn('\n' + 'unknown ad state detected on slot ' + elm.adSlot + ' : ' + event.newValue);
|
535
|
+
}
|
536
|
+
}
|
537
|
+
} // END if 'event.newValue'
|
538
|
+
} // END if 'adSlotIsVisible'
|
539
|
+
} // END 'callback'
|
540
|
+
}); // END 'attrchange'
|
541
|
+
}, // END ad_monitor
|
330
542
|
|
331
543
|
// -------------------------------------------------------------------------
|
332
544
|
// check_tracking_protection()
|
@@ -343,8 +555,10 @@ var logText;
|
|
343
555
|
check_tracking_protection: function () {
|
344
556
|
var logger = log4javascript.getLogger('j1.adapter.advertising.monitor.tracking');
|
345
557
|
|
346
|
-
|
347
|
-
|
558
|
+
if (development) {
|
559
|
+
logText = '\n' + 'check for trackingprotection';
|
560
|
+
logger.info(logText);
|
561
|
+
}
|
348
562
|
|
349
563
|
function checkTrackingProtection() {
|
350
564
|
if (!checkTrackingProtection.promise) {
|
@@ -365,35 +579,16 @@ var logText;
|
|
365
579
|
tracking_protection = false;
|
366
580
|
}).catch(e => {
|
367
581
|
tracking_protection = true;
|
368
|
-
|
582
|
+
if (development) {
|
583
|
+
logger.debug('\n' + 'detection details: ' + e);
|
584
|
+
}
|
369
585
|
});
|
370
586
|
}
|
371
587
|
}
|
588
|
+
|
372
589
|
checkTrackingProtection();
|
373
590
|
}, // END check_tracking_protection
|
374
591
|
|
375
|
-
// -------------------------------------------------------------------------
|
376
|
-
// place_ads()
|
377
|
-
// place ads configured|enabled
|
378
|
-
// -------------------------------------------------------------------------
|
379
|
-
place_ads: function () {
|
380
|
-
|
381
|
-
logText = '\n' + 'ads are being placed';
|
382
|
-
logger.info(logText);
|
383
|
-
|
384
|
-
// START loadig ads
|
385
|
-
var dependencies_met_page_ready = setInterval (function (options) {
|
386
|
-
if (j1.getState() === 'finished') {
|
387
|
-
|
388
|
-
{% comment %} See loop for loading elements with adapter/scroller.js
|
389
|
-
---------------------------------------------------------------------- {% endcomment %}
|
390
|
-
clearInterval(dependencies_met_page_ready);
|
391
|
-
|
392
|
-
}
|
393
|
-
});
|
394
|
-
// END place ads
|
395
|
-
},
|
396
|
-
|
397
592
|
// -------------------------------------------------------------------------
|
398
593
|
// messageHandler()
|
399
594
|
// manage messages send from other J1 modules
|
@@ -401,8 +596,10 @@ var logText;
|
|
401
596
|
messageHandler: function (sender, message) {
|
402
597
|
var json_message = JSON.stringify(message, undefined, 2);
|
403
598
|
|
404
|
-
|
405
|
-
|
599
|
+
if (development) {
|
600
|
+
logText = '\n' + 'received message from ' + sender + ': ' + json_message;
|
601
|
+
logger.debug(logText);
|
602
|
+
}
|
406
603
|
|
407
604
|
// -----------------------------------------------------------------------
|
408
605
|
// Process commands|actions
|
@@ -411,7 +608,9 @@ var logText;
|
|
411
608
|
//
|
412
609
|
// Place handling of command|action here
|
413
610
|
//
|
414
|
-
|
611
|
+
if (development) {
|
612
|
+
logger.info('\n' + message.text);
|
613
|
+
}
|
415
614
|
}
|
416
615
|
|
417
616
|
//
|