j1-template 2023.3.1 → 2023.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +11 -9
  3. data/_includes/themes/j1/layouts/content_generator_post.html +1 -1
  4. data/_includes/themes/j1/modules/navigator/generator.html +3 -3
  5. data/_includes/themes/j1/modules/searcher/procedures/topsearch.proc +5 -5
  6. data/_includes/themes/j1/procedures/collections/create_collection_article_preview.proc +3 -3
  7. data/_includes/themes/j1/procedures/global/select_icon_size.proc +9 -2
  8. data/_includes/themes/j1/procedures/layouts/default_writer.proc +1 -1
  9. data/_includes/themes/j1/procedures/posts/collate_timeline.proc +8 -8
  10. data/_includes/themes/j1/procedures/posts/create_series_header.proc +1 -1
  11. data/_layouts/category.html +2 -2
  12. data/assets/data/authclient.html +10 -12
  13. data/assets/data/banner.html +3 -3
  14. data/assets/data/fab.html +11 -8
  15. data/assets/data/footer.html +2 -3
  16. data/assets/data/gallery_customizer.html +2 -2
  17. data/assets/data/masonry.html +4 -4
  18. data/assets/data/masterslider.html +1 -1
  19. data/assets/data/menu.html +9 -6
  20. data/assets/data/panel.html +8 -8
  21. data/assets/data/quicklinks.html +3 -1
  22. data/assets/data/rtext_resizer.html +1 -1
  23. data/assets/data/slick.html +2 -2
  24. data/assets/data/translator.html +1 -1
  25. data/assets/themes/j1/adapter/js/carousel.js +2 -2
  26. data/assets/themes/j1/adapter/js/j1.js +91 -25
  27. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +1 -1
  28. data/assets/themes/j1/adapter/js/lazyLoader.js +221 -0
  29. data/assets/themes/j1/adapter/js/lunr.js +3 -3
  30. data/assets/themes/j1/adapter/js/navigator.js +3 -5
  31. data/assets/themes/j1/adapter/js/themeToggler.js +3 -3
  32. data/assets/themes/j1/adapter/js/themer.js +8 -5
  33. data/assets/themes/j1/core/css/icon-fonts/mdi.css +3 -7
  34. data/assets/themes/j1/core/css/icon-fonts/mdi.min.css +1 -1
  35. data/assets/themes/j1/core/css/icon-fonts/mdib.css +8337 -0
  36. data/assets/themes/j1/core/css/icon-fonts/mdib.min.css +1 -0
  37. data/assets/themes/j1/core/js/template.js +98 -31
  38. data/assets/themes/j1/core/js/template.min.js +2 -2
  39. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  40. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-base.json +2690 -0
  41. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-base.min.json +1 -0
  42. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.json +2 -2
  43. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.min.json +1 -1
  44. data/assets/themes/j1/modules/materialize/scss/components/_global.scss +1 -1
  45. data/assets/themes/j1/modules/materialize/scss/components/_navbar.scss +2 -2
  46. data/assets/themes/j1/modules/materialize/scss/components/_sidenav.scss +1 -1
  47. data/assets/themes/j1/modules/materialize/scss/components/forms/_input-fields.scss +2 -2
  48. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +1 -1
  49. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  50. data/lib/j1/version.rb +1 -1
  51. data/lib/starter_web/Gemfile +2 -2
  52. data/lib/starter_web/README.md +5 -5
  53. data/lib/starter_web/_config.yml +1 -1
  54. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  55. data/lib/starter_web/_data/blocks/footer.yml +1 -1
  56. data/lib/starter_web/_data/blocks/panel.yml +47 -47
  57. data/lib/starter_web/_data/layouts/default.yml +1 -1
  58. data/lib/starter_web/_data/modules/defaults/attics.yml +2 -2
  59. data/lib/starter_web/_data/modules/defaults/authentication.yml +1 -1
  60. data/lib/starter_web/_data/modules/defaults/blog_navigator.yml +20 -20
  61. data/lib/starter_web/_data/modules/defaults/fab.yml +3 -3
  62. data/lib/starter_web/_data/modules/defaults/iconPicker.yml +1 -1
  63. data/lib/starter_web/_data/modules/defaults/lazyLoader.yml +33 -0
  64. data/lib/starter_web/_data/modules/defaults/lunr.yml +2 -2
  65. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  66. data/lib/starter_web/_data/modules/defaults/navigator.yml +18 -18
  67. data/lib/starter_web/_data/modules/defaults/themer.yml +2 -2
  68. data/lib/starter_web/_data/modules/fab.yml +7 -7
  69. data/lib/starter_web/_data/modules/iconPicker.yml +3 -3
  70. data/lib/starter_web/_data/modules/lazyLoader.yml +93 -0
  71. data/lib/starter_web/_data/resources.yml +67 -69
  72. data/lib/starter_web/_data/templates/feed.xml +1 -1
  73. data/lib/starter_web/_includes/custom/templates/collection_panel.html +2 -2
  74. data/lib/starter_web/_plugins/asciidoctor/fab-icon-inline.rb +1 -1
  75. data/lib/starter_web/_plugins/asciidoctor/fas-icon-inline.rb +1 -1
  76. data/lib/starter_web/_plugins/asciidoctor/mdil-icon-inline.rb +1 -1
  77. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  78. data/lib/starter_web/package.json +1 -1
  79. data/lib/starter_web/pages/public/learn/roundtrip/icon_fonts.adoc +152 -12
  80. data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +4 -4
  81. data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +13 -13
  82. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  83. data/lib/starter_web/utilsrv/package.json +1 -1
  84. metadata +9 -39
  85. data/assets/data/nbinteract.html +0 -129
  86. data/assets/themes/j1/adapter/js/nbinteract.js +0 -1485
  87. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.json +0 -7312
  88. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-regular.min.json +0 -1
  89. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.css +0 -1315
  90. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.min.css +0 -7
  91. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.css +0 -886
  92. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.structure.min.css +0 -5
  93. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.css +0 -446
  94. data/assets/themes/j1/modules/jquery-3.5.1/css/jquery-ui/jquery-ui.theme.min.css +0 -5
  95. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.js +0 -37
  96. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/hasClass.min.js +0 -17
  97. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.js +0 -42
  98. data/assets/themes/j1/modules/jquery-3.5.1/js/extensions/removeClass.min.js +0 -17
  99. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.js +0 -19057
  100. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery-ui.min.js +0 -6
  101. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.js +0 -10872
  102. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.js +0 -2
  103. data/assets/themes/j1/modules/jquery-3.5.1/js/jquery.min.map +0 -1
  104. data/assets/themes/j1/modules/jquery-3.5.1/js/require.js +0 -2145
  105. data/assets/themes/j1/modules/jquery-3.5.1/js/require.min.js +0 -5
  106. data/assets/themes/j1/modules/nbinteract-core/LICENSE.txt +0 -60
  107. data/assets/themes/j1/modules/nbinteract-core/README.md +0 -226
  108. data/assets/themes/j1/modules/nbinteract-core/css/nbinteract.css +0 -191
  109. data/assets/themes/j1/modules/nbinteract-core/css/nbinteract.min.css +0 -19
  110. data/assets/themes/j1/modules/nbinteract-core/css/theme/uno/nbinteract.css +0 -250
  111. data/assets/themes/j1/modules/nbinteract-core/css/theme/uno/nbinteract.min.css +0 -15
  112. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/latest.js +0 -19
  113. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/tex-chtml-full.js +0 -34
  114. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/tex-chtml.js +0 -1
  115. data/assets/themes/j1/modules/nbinteract-core/js/mathjax/tex-mml-chtml.js +0 -1
  116. data/assets/themes/j1/modules/nbinteract-core/js/nbinteract/README +0 -1
  117. data/assets/themes/j1/modules/nbinteract-core/js/nbinteract/j1-nbinteract-core.js +0 -94
  118. data/assets/themes/j1/modules/nbinteract-core/js/nbinteract/j1-nbinteract-core.js.map +0 -1
  119. data/assets/themes/j1/modules/nbinteract-core/js/requireJS/require.js +0 -2068
  120. data/assets/themes/j1/modules/nbinteract-core/js/requireJS/require.min.js +0 -36
  121. data/lib/starter_web/_data/modules/defaults/nbinteract.yml +0 -281
@@ -220,8 +220,10 @@ exclude_from_search: true
220
220
  {% assign icon_family = 'fa' %}
221
221
  {% elsif quicklinks_options.icon_family == 'MDI' or quicklinks_options.icon_family == 'Material Design Icons' %}
222
222
  {% assign icon_family = 'mdi' %}
223
+ {% elsif quicklinks_options.icon_family == 'mdib' or quicklinks_options.icon_family == 'Material Design Icons' %}
224
+ {% assign icon_family = 'mdib' %}
223
225
  {% else %}
224
- {% assign icon_family = 'mdi' %}
226
+ {% assign icon_family = 'mdib' %}
225
227
  {% endif %}
226
228
 
227
229
  {% include {{select_icon_size}} family=quicklinks_options.icon_family size=quicklinks_options.icon_size %}
@@ -84,7 +84,7 @@ exclude_from_search: true
84
84
  <div class="modal-header">
85
85
  <p class="lead">Text Resizer</p>
86
86
  <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
87
- <i class="mdi mdi-close mdi-dark mdi-48px"></i>
87
+ <i class="mdib mdib-close mdib-48px md-dark"></i>
88
88
  </button>
89
89
  </div>
90
90
  <!-- Body -->
@@ -221,11 +221,11 @@ exclude_from_search: true
221
221
 
222
222
  <ul class="list-inline d-flex justify-content-center mb-3">
223
223
  <li class="list-inline-item">
224
- <i class="mdi mdi-account md-gray-400 mdi-24px mr-1" style="margin-right: 8px;"></i>
224
+ <i class="mdib mdib-account mdib-24px md-gray-400 mr-1" style="margin-right: 8px;"></i>
225
225
  {{site.author.name | split: ' ' | first}} &nbsp;&middot;&nbsp;
226
226
  </li>
227
227
  <li class="list-inline-item">
228
- <i class="mdi mdi-calendar-blank md-gray-400 mdi-24px mr-1"></i>
228
+ <i class="mdib mdib-calendar-blank mdib-24px md-gray-400 mr-1"></i>
229
229
  {{post.date | date: '%b %d, %Y'}}
230
230
  </li>
231
231
  </ul>
@@ -81,7 +81,7 @@ exclude_from_search: true
81
81
  <p class="mb-3">{{translate_options.google.modal_settings.body_text.en}}</p>
82
82
  </div>
83
83
  <p style="font-size: 90%">{{translate_options.google.modal_settings.language_selector_title.en}}</p>
84
- <div id="dropdownJSON" class="notranslate mb-4" style="display:none"></div>
84
+ <div id="dropdownJSON" class="ms-dopdown notranslate mb-4" style="display:none"></div>
85
85
  <p>
86
86
  <a href="#google-privacy" data-bs-toggle="collapse" class="">Privacy Notice</a>
87
87
  <a href="#google-options" data-bs-toggle="collapse" class="float-right">Privacy</a>
@@ -242,9 +242,9 @@ j1.adapter.carousel = (function (j1, window) {
242
242
  {% endif %}
243
243
 
244
244
  {% if text_color %}
245
- $('#{{slider_id}}').addClass('mdi-{{text_color}}');
245
+ $('#{{slider_id}}').addClass('md-{{text_color}}');
246
246
  {% else %}
247
- $('#{{slider_id}}').addClass('mdi-md-grey-100');
247
+ $('#{{slider_id}}').addClass('md-grey-100');
248
248
  {% endif %}
249
249
 
250
250
  {% if font_size %}
@@ -82,8 +82,7 @@ regenerate: true
82
82
 
83
83
  {% assign authentication_options = authentication_defaults | merge: authentication_settings %}
84
84
 
85
-
86
-
85
+ {% assign footer = 'active_footer' %}
87
86
  {% assign footer_id = footer_options.active_footer %}
88
87
  {% assign footer_data_path = footer_defaults.data_path %}
89
88
  {% assign banner_data_path = banner_defaults.data_path %}
@@ -165,6 +164,8 @@ var j1 = (function (options) {
165
164
  var state = 'not_started';
166
165
  var mode = 'not_detected';
167
166
 
167
+ var performance_monitors_enabled = ('{{template_config.monitor.performance_observer}}' === 'true') ? true: false;
168
+
168
169
  // defaults for tracking providers
169
170
  var tracking_enabled = ('{{tracking_enabled}}' === 'true') ? true: false;
170
171
  var tracking_id = '{{tracking_id}}';
@@ -457,12 +458,12 @@ var j1 = (function (options) {
457
458
  // set signout
458
459
  logger.info('\n' + 'show signout icon');
459
460
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignOut');
460
- $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
461
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
461
462
  } else {
462
463
  // set signin
463
464
  logger.info('\n' + 'show signin icon');
464
465
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignIn');
465
- $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
466
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
466
467
  }
467
468
  logger.info('\n' + 'authentication detected as: ' + user_session.authenticated);
468
469
  $('#quickLinksSignInOutButton').css('display', 'block');
@@ -562,7 +563,7 @@ var j1 = (function (options) {
562
563
  // show the content|footer
563
564
  //
564
565
  $('#content').show();
565
- $('#{{footer_id}}').show();
566
+ $('.{{footer}}').show();
566
567
 
567
568
  clearInterval(dependencies_met_page_ready);
568
569
  clearInterval(dependencies_met_blocks_ready);
@@ -582,7 +583,7 @@ var j1 = (function (options) {
582
583
  //
583
584
  if ( footer_state == 'success') {
584
585
  $('#content').show();
585
- $('#{{footer_id}}').show();
586
+ $('.{{footer}}').show();
586
587
 
587
588
  clearInterval(dependencies_met_page_ready);
588
589
  }
@@ -720,7 +721,7 @@ var j1 = (function (options) {
720
721
  // show the content|footer
721
722
  //
722
723
  $('#content').show();
723
- $('#{{footer_id}}').show();
724
+ $('.{{footer}}').show();
724
725
 
725
726
  clearInterval(dependencies_met_page_ready);
726
727
  clearInterval(dependencies_met_blocks_ready);
@@ -740,7 +741,7 @@ var j1 = (function (options) {
740
741
  //
741
742
  if ( footer_state == 'success') {
742
743
  $('#content').show();
743
- $('#{{footer_id}}').show();
744
+ $('.{{footer}}').show();
744
745
 
745
746
  clearInterval(dependencies_met_page_ready);
746
747
  }
@@ -1215,12 +1216,12 @@ var j1 = (function (options) {
1215
1216
  // set signout
1216
1217
  logger.info('\n' + 'show signout icon');
1217
1218
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignOut');
1218
- $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
1219
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
1219
1220
  } else {
1220
1221
  // set signin
1221
1222
  logger.info('\n' + 'show signin icon');
1222
1223
  $('#navLinkSignInOut').attr('data-bs-target','#modalOmniSignIn');
1223
- $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
1224
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
1224
1225
  }
1225
1226
  logger.info('\n' + 'authentication detected as: ' + user_session.authenticated);
1226
1227
  $('#quickLinksSignInOutButton').css('display', 'block');
@@ -2486,8 +2487,8 @@ var j1 = (function (options) {
2486
2487
  // // var tabs_pills_link_color_active = j1.setColorData('md_blue'); // j1.getStyleValue('btn-info', 'background-color');
2487
2488
  // // var tabs_pills_link_color_hover = j1.setColorData('md_gray_300'); // j1.getStyleValue('btn-secondary', 'background-color');
2488
2489
  //
2489
- // // var tabs_pills_link_color_active = 'mdi-blue';
2490
- // // var tabs_pills_link_color_hover = 'mdi-gray-300';
2490
+ // // var tabs_pills_link_color_active = 'md-blue';
2491
+ // // var tabs_pills_link_color_hover = 'md-gray-300';
2491
2492
  //
2492
2493
  // // nav module
2493
2494
  // // -----------------------------------------------------------------------
@@ -2699,6 +2700,64 @@ var j1 = (function (options) {
2699
2700
 
2700
2701
  }, // END stringToBoolean
2701
2702
 
2703
+ // -------------------------------------------------------------------------
2704
+ // registerLazyLoadCss()
2705
+ // CSS loader to speed up inital rendering
2706
+ //
2707
+ // Requires the following config serrings:
2708
+ //
2709
+ // src: the 'location' of the CSS file
2710
+ // selector: the 'selector' that triggers the observer
2711
+ // rootMargin: the 'margin' before the load is trigged
2712
+ //
2713
+ // -------------------------------------------------------------------------
2714
+ //
2715
+ registerLazyLoadCss: function () {
2716
+
2717
+ console.log('register CSS files for lazy loading');
2718
+
2719
+ // load MDI Light CSS
2720
+ //
2721
+ j1.lazyCss().observe({
2722
+ 'src': '/assets/themes/j1/core/css/icon-fonts/mdil.min.css',
2723
+ 'selector': '.mdil',
2724
+ 'rootMargin': '150px 0px'
2725
+ });
2726
+
2727
+ // load MDI Regular CSS
2728
+ //
2729
+ j1.lazyCss().observe({
2730
+ 'src': '/assets/themes/j1/core/css/icon-fonts/mdi.min.css',
2731
+ 'selector': '.mdi',
2732
+ 'rootMargin': '150px 0px'
2733
+ });
2734
+
2735
+ // load FA CSS
2736
+ //
2737
+ j1.lazyCss().observe({
2738
+ 'src': '/assets/themes/j1/core/css/icon-fonts/fontawesome.min.css',
2739
+ 'selector': '.fa',
2740
+ 'rootMargin': '150px 0px'
2741
+ });
2742
+
2743
+ // load rTable CSS
2744
+ //
2745
+ j1.lazyCss().observe({
2746
+ 'src': '/assets/themes/j1/modules/rtable/css/theme/uno/rtable.min.css',
2747
+ 'selector': '.rtable',
2748
+ 'rootMargin': '150px 0px'
2749
+ });
2750
+
2751
+ // load CountryFlags CSS
2752
+ //
2753
+ j1.lazyCss().observe({
2754
+ 'src': '/assets/themes/j1/core/country-flags/css/theme/uno.min.css',
2755
+ 'selector': '.flag-icon',
2756
+ 'rootMargin': '150px 0px'
2757
+ });
2758
+
2759
+ }, // END registerLazyLoadCss
2760
+
2702
2761
  // -------------------------------------------------------------------------
2703
2762
  // registerMonitors()
2704
2763
  //
@@ -2778,7 +2837,11 @@ var j1 = (function (options) {
2778
2837
  }
2779
2838
 
2780
2839
  for (const {node, currentRect, previousRect} of entry.sources) {
2781
- var hasProperty = (node.hasOwnProperty('firstElementChild')) ? true : false;
2840
+ var hasProperty = node.hasOwnProperty('firstElementChild');
2841
+ if (hasProperty == null) {
2842
+ hasProperty = false;
2843
+ }
2844
+
2782
2845
  if (hasProperty) {
2783
2846
  var id = '';
2784
2847
  try {
@@ -2899,19 +2962,22 @@ var j1 = (function (options) {
2899
2962
  // run all observers for page monitoring
2900
2963
  // -----------------------------------------------------------------------
2901
2964
 
2902
- // monitor 'LCP'
2903
- //
2904
- performanceObserverLCP.observe({
2905
- type: 'largest-contentful-paint',
2906
- buffered: true
2907
- });
2965
+ if (performance_monitors_enabled) {
2966
+ // monitor 'LCP'
2967
+ //
2968
+ performanceObserverLCP.observe({
2969
+ type: 'largest-contentful-paint',
2970
+ buffered: true
2971
+ });
2908
2972
 
2909
- // monitor 'CLS'
2910
- //
2911
- performanceObserverCLS.observe({
2912
- type: 'layout-shift',
2913
- buffered: true
2914
- });
2973
+ // monitor 'CLS'
2974
+ //
2975
+ performanceObserverCLS.observe({
2976
+ type: 'layout-shift',
2977
+ buffered: true
2978
+ });
2979
+
2980
+ } // END if 'performance_monitors'
2915
2981
 
2916
2982
  // monitor 'GROWTH'
2917
2983
  resizeObserver.observe(
@@ -290,7 +290,7 @@ j1.adapter.justifiedGalleryCustomizer = (function (j1, window) {
290
290
  // See: https://jsfiddle.net/prathviraj080/vbbbw46a/1/
291
291
  //
292
292
  $('button.drawer-toggler').click(function(){
293
- $('button.drawer-toggler span.mdi').toggleClass('mdi-menu mdi-close');
293
+ $('button.drawer-toggler span.mdi').toggleClass('mdib-menu mdib-close');
294
294
  });
295
295
  $('button.drawer-toggler').click(function(){
296
296
  $('button.drawer-toggler').toggleClass('fadeIn rotateIn');
@@ -0,0 +1,221 @@
1
+ ---
2
+ regenerate: true
3
+ ---
4
+
5
+ {% capture cache %}
6
+
7
+ {% comment %}
8
+ # -----------------------------------------------------------------------------
9
+ # ~/assets/themes/j1/adapter/js/lazyCSSLoader.js
10
+ # Liquid template to adapt the lazyCSS module(core)
11
+ #
12
+ # Product/Info:
13
+ # https://jekyll.one
14
+ # Copyright (C) 2023 Juergen Adams
15
+ #
16
+ # J1 Theme is licensed under the MIT License.
17
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
18
+ # -----------------------------------------------------------------------------
19
+ # Test data:
20
+ # {{ liquid_var | debug }}
21
+ # wave_options: {{ wave_options | debug }}
22
+ # -----------------------------------------------------------------------------
23
+ {% endcomment %}
24
+
25
+ {% comment %} Liquid procedures
26
+ -------------------------------------------------------------------------------- {% endcomment %}
27
+
28
+ {% comment %} Set global settings
29
+ -------------------------------------------------------------------------------- {% endcomment %}
30
+ {% assign environment = site.environment %}
31
+ {% assign asset_path = "/assets/themes/j1" %}
32
+
33
+ {% comment %} Process YML config data
34
+ ================================================================================ {% endcomment %}
35
+
36
+ {% comment %} Set config files
37
+ -------------------------------------------------------------------------------- {% endcomment %}
38
+ {% assign template_config = site.data.j1_config %}
39
+ {% assign blocks = site.data.blocks %}
40
+ {% assign modules = site.data.modules %}
41
+
42
+ {% comment %} Set config data (settings only)
43
+ -------------------------------------------------------------------------------- {% endcomment %}
44
+ {% assign lazy_loader_defaults = modules.defaults.lazyLoader.defaults %}
45
+ {% assign lazy_loader_settings = modules.lazyLoader.settings %}
46
+
47
+ {% comment %} Set config options (settings only)
48
+ -------------------------------------------------------------------------------- {% endcomment %}
49
+ {% assign lazy_loader_options = lazy_loader_defaults | merge: lazy_loader_settings %}
50
+
51
+ {% comment %} Detect prod mode
52
+ -------------------------------------------------------------------------------- {% endcomment %}
53
+ {% assign production = false %}
54
+ {% if environment == 'prod' or environment == 'production' %}
55
+ {% assign production = true %}
56
+ {% endif %}
57
+
58
+ /*
59
+ # -----------------------------------------------------------------------------
60
+ # ~/assets/themes/j1/adapter/js/lazyLoader.js
61
+ # J1 Adapter for the lazyLoader module (core)
62
+ #
63
+ # Product/Info:
64
+ # https://jekyll.one
65
+ #
66
+ # Copyright (C) 2023 Juergen Adams
67
+ #
68
+ # J1 Theme is licensed under the MIT License.
69
+ # For details, see: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
70
+ # -----------------------------------------------------------------------------
71
+ # Adapter generated: {{site.time}}
72
+ # -----------------------------------------------------------------------------
73
+ */
74
+
75
+ // -----------------------------------------------------------------------------
76
+ // ESLint shimming
77
+ // -----------------------------------------------------------------------------
78
+ /* eslint indent: "off" */
79
+ // -----------------------------------------------------------------------------
80
+ 'use strict';
81
+ j1.adapter.lazyLoader = (function (j1, window) {
82
+
83
+ {% comment %} Set global variables
84
+ -------------------------------------------------------------------------------- {% endcomment %}
85
+ var environment = '{{environment}}';
86
+ var cookie_names = j1.getCookieNames();
87
+ var user_state = j1.readCookie(cookie_names.user_state);
88
+ var lazyLoaderDefaults;
89
+ var lazyLoaderSettings;
90
+ var lazyLoaderOptions;
91
+ var frontmatterOptions;
92
+ var _this;
93
+ var logger;
94
+ var logText;
95
+
96
+ // ---------------------------------------------------------------------------
97
+ // Main object
98
+ // ---------------------------------------------------------------------------
99
+ return {
100
+
101
+ // -------------------------------------------------------------------------
102
+ // init()
103
+ // adapter initializer
104
+ // -------------------------------------------------------------------------
105
+ init: function (options) {
106
+
107
+ // -----------------------------------------------------------------------
108
+ // Default module settings
109
+ // -----------------------------------------------------------------------
110
+ var settings = $.extend({
111
+ module_name: 'j1.adapter.lazyLoader',
112
+ generated: '{{site.time}}'
113
+ }, options);
114
+
115
+ // -----------------------------------------------------------------------
116
+ // Global variable settings
117
+ // -----------------------------------------------------------------------
118
+
119
+ // create settings object from module options
120
+ //
121
+ lazyLoaderDefaults = $.extend({}, {{lazy_loader_defaults | replace: 'nil', 'null' | replace: '=>', ':' }});
122
+ lazyLoaderSettings = $.extend({}, {{lazy_loader_settings | replace: 'nil', 'null' | replace: '=>', ':' }});
123
+ lazyLoaderOptions = $.extend(true, {}, lazyLoaderDefaults, lazyLoaderSettings);
124
+
125
+ _this = j1.adapter.lazyLoader;
126
+ logger = log4javascript.getLogger('j1.adapter.lazyLoader');
127
+
128
+ var dependencies_met_lazy_loader = setInterval(function() {
129
+ var pageFinished = (j1.getState() == 'finished') ? true: false;
130
+
131
+ if (pageFinished) {
132
+
133
+ _this.setState('started');
134
+ logger.info('\n' + 'initialize moodule lazyLoader: started');
135
+
136
+ _this.registerLoaders(lazyLoaderOptions);
137
+
138
+ _this.setState('finished');
139
+ logger.info('\n' + 'initialize moodule lazyLoader: finished');
140
+ clearInterval(dependencies_met_lazy_loader);
141
+ }
142
+ }, 10);
143
+
144
+ }, // END init
145
+
146
+ // -------------------------------------------------------------------------
147
+ // registerLoaders()
148
+ // Lazy load CSS to speed up page rendering
149
+ //
150
+ // Requires the following settings:
151
+ //
152
+ // src: the 'location' of the CSS file
153
+ // selector: the 'selector' that triggers the observer
154
+ // rootMargin: the 'margin' before the load is trigged
155
+ //
156
+ // -------------------------------------------------------------------------
157
+ //
158
+ registerLoaders: function () {
159
+ {% for loader in lazy_loader_options.loaders %} {% if loader.enabled %}
160
+ j1.lazyCSS().observe({
161
+ src: '{{loader.src}}',
162
+ selector: '{{loader.selector}}',
163
+ rootMargin: '{{loader.rootMargin}}'
164
+ });
165
+ logger.info('\n' + 'register lazy loading for: {{loader.description}}');
166
+ {% endif %} {% endfor %}
167
+ }, // END registerLoaders
168
+
169
+ // -------------------------------------------------------------------------
170
+ // messageHandler()
171
+ // manage messages send from other J1 modules
172
+ // -------------------------------------------------------------------------
173
+ messageHandler: function (sender, message) {
174
+ var json_message = JSON.stringify(message, undefined, 2);
175
+
176
+ logText = '\n' + 'received message from ' + sender + ': ' + json_message;
177
+ logger.debug(logText);
178
+
179
+ // -----------------------------------------------------------------------
180
+ // Process commands|actions
181
+ // -----------------------------------------------------------------------
182
+ if (message.type === 'command' && message.action === 'module_initialized') {
183
+ //
184
+ // Place handling of command|action here
185
+ //
186
+ logger.info('\n' + message.text);
187
+ }
188
+
189
+ //
190
+ // Place handling of other command|action here
191
+ //
192
+
193
+ return true;
194
+ }, // END messageHandler
195
+
196
+ // -------------------------------------------------------------------------
197
+ // setState()
198
+ // Sets the current (processing) state of the module
199
+ // -------------------------------------------------------------------------
200
+ setState: function (stat) {
201
+ _this.state = stat;
202
+ }, // END setState
203
+
204
+ // -------------------------------------------------------------------------
205
+ // getState()
206
+ // Returns the current (processing) state of the module
207
+ // -------------------------------------------------------------------------
208
+ getState: function () {
209
+ return _this.state;
210
+ } // END getState
211
+
212
+ }; // END return
213
+ })(j1, window);
214
+
215
+ {% endcapture %}
216
+ {% if production %}
217
+ {{ cache | minifyJS }}
218
+ {% else %}
219
+ {{ cache | strip_empty_lines }}
220
+ {% endif %}
221
+ {% assign cache = nil %}
@@ -168,10 +168,10 @@ j1.adapter.lunr = (function (j1, window) {
168
168
  _this.modalScript.text += '{{#docs}}' + '\n';
169
169
  _this.modalScript.text += ' <li>' + '\n';
170
170
  _this.modalScript.text += ' <h4 class="result-item"> <a class="link-no-decoration" href="{{url}}" target="_blank">{{title}} · {{tagline}}</a> </h4>' + '\n';
171
- _this.modalScript.text += ' <p class="result-item-text small text-muted mt-2 mb-0"> <i class="mdi mdi-calendar-blank mdi-18px mr-1"></i>{{displaydate}} </p>' + '\n';
171
+ _this.modalScript.text += ' <p class="result-item-text small text-muted mt-2 mb-0"> <i class="mdib mdib-calendar-blank mdib-18px mr-1"></i>{{displaydate}} </p>' + '\n';
172
172
  _this.modalScript.text += ' <p class="result-item-text">{{description}}</p>' + '\n';
173
- _this.modalScript.text += ' <i class="mdi mdi-tag-text-outline mdi-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>' + '\n';
174
- _this.modalScript.text += ' <i class="mdi mdi-tag mdi-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>' + '\n';
173
+ _this.modalScript.text += ' <i class="mdib mdib-tag-text-outline mdib-18px mr-1"></i><span class="sr-categories">{{#categories}} {{.}} · {{/categories}}</span>' + '\n';
174
+ _this.modalScript.text += ' <i class="mdib mdib-tag mdib-18px mr-1 ml-2"></i><span class="sr-tags">{{#tags}} {{.}} · {{/tags}}</span>' + '\n';
175
175
  _this.modalScript.text += ' </p>' + '\n';
176
176
  _this.modalScript.text += ' </li>' + '\n';
177
177
  _this.modalScript.text += '{{/docs}}' + '\n';
@@ -487,11 +487,11 @@ j1.adapter.navigator = (function (j1, window) {
487
487
  if (user_session.authenticated === 'true') {
488
488
  // Set SignOut
489
489
  $('#navLinkSignInOut').attr('data-bs-target', '#modalOmniSignOut');
490
- $('#iconSignInOut').removeClass('mdi-login').addClass('mdi-logout');
490
+ $('#iconSignInOut').removeClass('mdib-login').addClass('mdib-logout');
491
491
  } else {
492
492
  // Set SignIn
493
493
  $('#navLinkSignInOut').attr('data-bs-target', '#modalOmniSignIn');
494
- $('#iconSignInOut').removeClass('mdi-logout').addClass('mdi-login');
494
+ $('#iconSignInOut').removeClass('mdib-logout').addClass('mdib-login');
495
495
  }
496
496
  }
497
497
 
@@ -889,11 +889,9 @@ j1.adapter.navigator = (function (j1, window) {
889
889
  style += '</style>';
890
890
  $('head').append(style);
891
891
 
892
-
893
-
894
892
  // $('head').append('<style>.mdi-bg-primary {color: ' +bg_scrolled+ ';}</style>');
895
893
  style = '<style>';
896
- style += ' .mdi-bg-primary {';
894
+ style += ' var(--bg-primary) {';
897
895
  style += ' color: ' + bg_scrolled;
898
896
  style += ' }';
899
897
  style += '</style>';
@@ -164,7 +164,7 @@ var logText;
164
164
  //
165
165
  if ($('#quickLinksThemeTogglerButton').length) {
166
166
  if (user_state.theme_name == dark_theme_name) {
167
- $('#quickLinksThemeTogglerButton a i').toggleClass('mdi-lightbulb mdi-lightbulb-outline');
167
+ $('#quickLinksThemeTogglerButton a i').toggleClass('mdib-lightbulb mdib-lightbulb-outline');
168
168
  }
169
169
  }
170
170
 
@@ -173,11 +173,11 @@ var logText;
173
173
  if (user_state.theme_name == light_theme_name) {
174
174
  user_state.theme_name = dark_theme_name;
175
175
  user_state.theme_css = dark_theme_css;
176
- user_state.theme_icon = 'mdi-lightbulb';
176
+ user_state.theme_icon = 'mdib-lightbulb';
177
177
  } else {
178
178
  user_state.theme_name = light_theme_name;
179
179
  user_state.theme_css = light_theme_css;
180
- user_state.theme_icon = 'mdi-lightbulb-outline';
180
+ user_state.theme_icon = 'mdib-lightbulb-outline';
181
181
  }
182
182
 
183
183
  logger.info('\n' + 'switch theme to: ' + user_state.theme_name);
@@ -52,18 +52,21 @@ regenerate: true
52
52
  -------------------------------------------------------------------------------- {% endcomment %}
53
53
  {% assign themer_options = themer_defaults| merge: themer_settings %}
54
54
  {% assign footer_options = footer_defaults | merge: footer_settings %}
55
+ {% assign footer = 'active_footer' %}
55
56
  {% assign footer_id = footer_options.active_footer %}
56
57
  {% assign default_theme = template_config.theme %}
57
58
  {% assign theme_base = "core/css/themes" %}
58
59
 
60
+
61
+ {% comment %} Detect prod mode
62
+ -------------------------------------------------------------------------------- {% endcomment %}
63
+
59
64
  {% if environment == "development" or environment == "test" %}
60
65
  {% assign theme_ext = "css" %}
61
66
  {% else %}
62
67
  {% assign theme_ext = "min.css" %}
63
68
  {% endif %}
64
69
 
65
- {% comment %} Detect prod mode
66
- -------------------------------------------------------------------------------- {% endcomment %}
67
70
  {% assign production = false %}
68
71
  {% if environment == 'prod' or environment == 'production' %}
69
72
  {% assign production = true %}
@@ -117,7 +120,7 @@ j1.adapter.themer = (function (j1, window) {
117
120
  var user_state_detected = false;
118
121
  var styleLoaded = false;
119
122
  var id = 'default';
120
- var cssExtension = (environment === 'production') ? '.min.css' : '.css';
123
+ var cssExtension = (development) ? '.css' : '.min.css';
121
124
  var default_theme_name = '{{default_theme.name}}';
122
125
  var default_theme_author = '{{default_theme.author}}';
123
126
  var default_theme_author_url = '{{default_theme.author_url}}';
@@ -205,7 +208,7 @@ j1.adapter.themer = (function (j1, window) {
205
208
  baseUrl = url.origin;
206
209
  error_page = url.origin + '/204.html';
207
210
  j1Cookies = j1.findCookie('j1');
208
- gaCookies = j1.findCookie('_ga');
211
+ gaCookies = j1.findCookie('__g');
209
212
 
210
213
  // initialize state flag
211
214
  _this.state = 'started';
@@ -220,7 +223,7 @@ j1.adapter.themer = (function (j1, window) {
220
223
  // Find conterpart (show) in the j1.adapter
221
224
  // hide content|footer until 'page' is loaded
222
225
  $('#content').hide();
223
- $('{{footer_id}}').hide();
226
+ $('.{{footer}}').hide();
224
227
 
225
228
  // jadams, 2021-07-25: problem seems NOT an timing issue on the iPad
226
229
  // platform. (General) Dependency should be REMOVED!!!
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  # -----------------------------------------------------------------------------
3
- # ~/packages/100_theme_css/material_design_icons.scss
3
+ # ~/packages/100_theme_css/material_design_icons_regular.scss
4
4
  # CSS index file for Material Design Icons v5.9.55
5
5
  #
6
6
  # Product/Info:
@@ -65,15 +65,11 @@
65
65
  # -----------------------------------------------------------------------------
66
66
  */
67
67
  @font-face {
68
- src: url("/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff") format("woff");
69
68
  src: url("/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff2") format("woff2");
70
- src: url("/assets/themes/j1/core/fonts/material_design_icons/fonts/eot/materialdesignicons-webfont.eot?v=6.9.96");
71
- src: url("/assets/themes/j1/core/fonts/material_design_icons/fonts/eot/materialdesignicons-webfont.eot?#iefix&v=6.9.96") format("embedded-opentype");
72
- src: url("/assets/themes/j1/core/fonts/material_design_icons/fonts/svg/materialdesignicons-webfont.svg?v=6.9.96#materialdesigniconsregular") format("svg");
73
- src: url("/assets/themes/j1/core/fonts/material_design_icons/fonts/ttf/materialdesignicons-webfont.ttf?v=6.9.96") format("truetype");
74
69
  font-family: "Material Design Icons";
75
70
  font-weight: normal;
76
- font-style: normal; }
71
+ font-style: normal;
72
+ font-display: block; }
77
73
 
78
74
  /*
79
75
  # -----------------------------------------------------------------------------