j1-template 2020.0.0 → 2020.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_blog_archive.html +22 -18
  3. data/_includes/themes/j1/layouts/content_generator_collection.html +15 -12
  4. data/_includes/themes/j1/layouts/content_generator_page.html +16 -17
  5. data/_includes/themes/j1/layouts/content_generator_post.html +19 -24
  6. data/_includes/themes/j1/modules/navigator/generator.html +62 -40
  7. data/assets/data/menu.html +6 -5
  8. data/assets/data/mmenu.html +455 -0
  9. data/assets/data/{sidebar.html → mmenu_sidebar.html} +24 -18
  10. data/assets/data/mmenu_toc.html +45 -0
  11. data/assets/data/quicklinks.html +9 -4
  12. data/assets/data/ssm.html +227 -0
  13. data/assets/error_pages/HTTP204.html +3 -3
  14. data/assets/themes/j1/core/css/bootstrap.css +116 -93
  15. data/assets/themes/j1/core/css/bootstrap.min.css +4 -4
  16. data/assets/themes/j1/core/css/globals.css +1 -1
  17. data/assets/themes/j1/core/css/theme_extensions.css +150 -23
  18. data/assets/themes/j1/core/css/theme_extensions.min.css +1 -1
  19. data/assets/themes/j1/core/css/uno.css +150 -23
  20. data/assets/themes/j1/core/css/uno.min.css +1 -1
  21. data/assets/themes/j1/core/css/vendor.css +130 -104
  22. data/assets/themes/j1/core/css/vendor.min.css +4 -4
  23. data/assets/themes/j1/core/js/template.js +296 -24
  24. data/assets/themes/j1/core/js/template.js.map +1 -1
  25. data/assets/themes/j1/core/js/template.min.js +1 -1
  26. data/lib/j1/version.rb +1 -1
  27. data/lib/j1_app/j1_auth_manager/auth_manager.rb +21 -17
  28. data/lib/j1_app/j1_auth_manager/config.rb +13 -9
  29. data/lib/j1_app/j1_site_manager/static_site.rb +1 -1
  30. data/lib/starter_web/Gemfile +2 -2
  31. data/lib/starter_web/_config.yml +12 -139
  32. data/lib/starter_web/_data/layouts/default.yml +5 -5
  33. data/lib/starter_web/_data/modules/authentication.yml +4 -4
  34. data/lib/starter_web/_data/modules/cookie_consent.yml +10 -10
  35. data/lib/starter_web/_data/modules/defaults/navigator.yml +25 -24
  36. data/lib/starter_web/_data/modules/defaults/ssm.yml +50 -0
  37. data/lib/starter_web/_data/modules/defaults/toccer.yml +1 -1
  38. data/lib/starter_web/_data/modules/navigator.yml +161 -97
  39. data/lib/starter_web/_data/modules/navigator.yml.new +232 -0
  40. data/lib/starter_web/_data/modules/ssm.yml +133 -0
  41. data/lib/starter_web/_data/modules/toccer.yml +2 -1
  42. data/lib/starter_web/_data/private.yml +66 -98
  43. data/lib/starter_web/_data/resources.yml +76 -10
  44. data/lib/starter_web/apps/public/{cc → cc/cc.yml} +0 -0
  45. data/lib/starter_web/apps/public/cc/index.adoc +107 -0
  46. data/lib/starter_web/assets/images/modules/icons/j1/{j1..ico → j1.ico} +0 -0
  47. data/lib/starter_web/assets/themes/j1/adapter/js/algolia.js +321 -0
  48. data/lib/starter_web/assets/themes/j1/adapter/js/back2top.js +2 -2
  49. data/lib/starter_web/assets/themes/j1/adapter/js/cookie_consent.js +38 -28
  50. data/lib/starter_web/assets/themes/j1/adapter/js/gallery_customizer.js +7 -7
  51. data/lib/starter_web/assets/themes/j1/adapter/js/j1.js +55 -30
  52. data/lib/starter_web/assets/themes/j1/adapter/js/logger.js +2 -2
  53. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js +439 -0
  54. data/lib/starter_web/assets/themes/j1/adapter/js/mmenu.js.new +432 -0
  55. data/lib/starter_web/assets/themes/j1/adapter/js/navigator.js +29 -47
  56. data/lib/starter_web/assets/themes/j1/adapter/js/ssm.js +496 -0
  57. data/lib/starter_web/assets/themes/j1/adapter/js/themer.js +2 -1
  58. data/lib/starter_web/assets/themes/j1/adapter/js/toccer.js +40 -36
  59. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.css +384 -0
  60. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/mmenu-light.min.css +384 -0
  61. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.css +95 -0
  62. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/css/themes/uno.min.css +95 -0
  63. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.js +11 -0
  64. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.min.js +11 -0
  65. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.js +118 -0
  66. data/lib/starter_web/assets/themes/j1/extensions/mmenu-light/js/mmenu-light.polyfills.min.js +118 -0
  67. data/lib/starter_web/collections/posts/public/{jekyll → featured}/_posts/2018-05-01-confusion-about-base-url.adoc +0 -0
  68. data/lib/starter_web/package.json +1 -1
  69. data/lib/starter_web/pages/public/learn/floating_sidebar.adoc +199 -0
  70. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +2 -2
  71. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +2 -2
  72. data/lib/starter_web/pages/public/learn/whats_up.adoc +12 -11
  73. data/lib/starter_web/pages/public/legal/en/500_support.adoc +1 -1
  74. data/lib/starter_web/pages/public/previewer/000_includes/tables/mdi_icons/200_rotate.asciidoc +1 -1
  75. data/lib/starter_web/pages/public/previewer/mdi_icons_preview.adoc +2 -3
  76. data/lib/starter_web/pages/public/previewer/twitter_emoji_preview.adoc +3 -3
  77. data/lib/starter_web/pages/public/site_search.adoc +196 -0
  78. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  79. data/lib/starter_web/utilsrv/package.json +1 -1
  80. metadata +27 -6
@@ -0,0 +1,95 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/extensions/mmenu-light/css/theme/uno.css
4
+ # Provides MobileMenu styles for J1 Theme Uno
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2020 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
+ #
14
+ # -----------------------------------------------------------------------------
15
+ */
16
+
17
+ /*
18
+ jadams, 2020-06-20: CSS/Offset to the NAV bar should be calculated
19
+ at runtime as a dyn style
20
+ */
21
+
22
+ /* CSS overwrites
23
+ ----------------------------------------------------------------------------- */
24
+
25
+ /* Drawer */
26
+ .mm-ocd {
27
+ top: 80px; /* jadams, 2020-06-20: offset to the NAV bar */
28
+ }
29
+
30
+ .mm-ocd--left .mm-ocd__content {
31
+ background-color: #212121;
32
+ }
33
+
34
+ .mm-ocd--right .mm-ocd__content {
35
+ background-color: #212121;
36
+ }
37
+
38
+ /* Navigator */
39
+ .mm-spn.mm-spn--navbar:after {
40
+ text-align: left; /* jadams, 2020-06-20: set menu title to the left */
41
+ font-size: x-large; /* jadams, 2020-06-20: increase size of the menu title */
42
+ }
43
+
44
+ /* Themes */
45
+ /* jadams, 2020-06-20: set j1 template colors (dark theme) */
46
+ .mm-spn.mm-spn--dark {
47
+ color: #e3e3e3;
48
+ background: #191919
49
+ }
50
+
51
+ /* Sidebar
52
+ ----------------------------------------------------------------------------- */
53
+ .mm-side {
54
+ margin: 1.5rem;
55
+ }
56
+
57
+ .mm-side .widget {
58
+ position: relative;
59
+ z-index: 1;
60
+ margin-bottom: 25px
61
+ }
62
+
63
+ .mm-side .widget .title {
64
+ color: #fff;
65
+ margin-bottom: 15px;
66
+ border-left: 3px solid #204a87;
67
+ padding-left: 5px
68
+ }
69
+
70
+ .mm-side .widget .heading {
71
+ text-align: left;
72
+ color: #eee;
73
+ font-size: 18px;
74
+ text-transform: uppercase;
75
+ position: relative;
76
+ margin-bottom: 10px;
77
+ padding-bottom: 10px
78
+ }
79
+
80
+ .mm-side .widget ul.link {
81
+ font-family: Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif;
82
+ font-size: 14px;
83
+ padding: 0;
84
+ margin: 0;
85
+ list-style: none
86
+ }
87
+
88
+ .mm-side .widget ul.link li a {
89
+ color: #aaa
90
+ }
91
+
92
+ .mm-side .widget ul.link li a:focus,.mm-side .widget ul.link li a:hover {
93
+ color: #fafafa;
94
+ text-decoration: none
95
+ }
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Mmenu Light
3
+ * mmenujs.com/mmenu-light v3.0.5
4
+ *
5
+ * Copyright (c) Fred Heusschen
6
+ * www.frebsite.nl
7
+ *
8
+ * License: CC-BY-4.0
9
+ * http://creativecommons.org/licenses/by/4.0/
10
+ */
11
+ !function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(i,s,function(e){return t[e]}.bind(null,s));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);var i=function(){function t(t){var e=this;this.listener=function(t){(t.matches?e.matchFns:e.unmatchFns).forEach((function(t){t()}))},this.toggler=window.matchMedia(t),this.toggler.addListener(this.listener),this.matchFns=[],this.unmatchFns=[]}return t.prototype.add=function(t,e){this.matchFns.push(t),this.unmatchFns.push(e),(this.toggler.matches?t:e)()},t}(),s=function(t){return Array.prototype.slice.call(t)},o=function(t,e){return s((e||document).querySelectorAll(t))},r=("ontouchstart"in window||navigator.msMaxTouchPoints,navigator.userAgent.indexOf("MSIE")>-1||navigator.appVersion.indexOf("Trident/")>-1),a="mm-spn",c=function(){function t(t,e,n,i,s){this.node=t,this.title=e,this.slidingSubmenus=i,this.selectedClass=n,this.node.classList.add(a),r&&(this.slidingSubmenus=!1),this.node.classList.add(a+"--"+s),this.node.classList.add(a+"--"+(this.slidingSubmenus?"navbar":"vertical")),this._setSelectedl(),this._initAnchors()}return Object.defineProperty(t.prototype,"prefix",{get:function(){return a},enumerable:!0,configurable:!0}),t.prototype.openPanel=function(t){var e=t.parentElement;if(this.slidingSubmenus){var n=t.dataset.mmSpnTitle;e===this.node?this.node.classList.add(a+"--main"):(this.node.classList.remove(a+"--main"),n||s(e.children).forEach((function(t){t.matches("a, span")&&(n=t.textContent)}))),n||(n=this.title),this.node.dataset.mmSpnTitle=n,o("."+a+"--open",this.node).forEach((function(t){t.classList.remove(a+"--open"),t.classList.remove(a+"--parent")})),t.classList.add(a+"--open"),t.classList.remove(a+"--parent");for(var i=t.parentElement.closest("ul");i;)i.classList.add(a+"--open"),i.classList.add(a+"--parent"),i=i.parentElement.closest("ul")}else{var r=t.matches("."+a+"--open");o("."+a+"--open",this.node).forEach((function(t){t.classList.remove(a+"--open")})),t.classList[r?"remove":"add"](a+"--open");for(var c=t.parentElement.closest("ul");c;)c.classList.add(a+"--open"),c=c.parentElement.closest("ul")}},t.prototype._setSelectedl=function(){var t=o("."+this.selectedClass,this.node),e=t[t.length-1],n=null;e&&(n=e.closest("ul")),n||(n=this.node.querySelector("ul")),this.openPanel(n)},t.prototype._initAnchors=function(){var t=this;this.node.addEventListener("click",(function(e){var n=e.target,i=!1;(i=(i=(i=i||function(t){return!!t.matches("a")}(n))||function(e){var n;return!!(n=e.closest("span")?e.parentElement:!!e.closest("li")&&e)&&(s(n.children).forEach((function(e){e.matches("ul")&&t.openPanel(e)})),!0)}(n))||function(e){var n=o("."+a+"--open",e),i=n[n.length-1];if(i){var s=i.parentElement.closest("ul");if(s)return t.openPanel(s),!0}return!1}(n))&&e.stopImmediatePropagation()}))},t}(),d="mm-ocd",u=function(){function t(t,e){var n=this;void 0===t&&(t=null),this.wrapper=document.createElement("div"),this.wrapper.classList.add(""+d),this.wrapper.classList.add(d+"--"+e),this.content=document.createElement("div"),this.content.classList.add(d+"__content"),this.wrapper.append(this.content),this.backdrop=document.createElement("div"),this.backdrop.classList.add(d+"__backdrop"),this.wrapper.append(this.backdrop),document.body.append(this.wrapper),t&&this.content.append(t);var i=function(t){n.close(),t.stopImmediatePropagation()};this.backdrop.addEventListener("touchstart",i,{passive:!0}),this.backdrop.addEventListener("mousedown",i,{passive:!0})}return Object.defineProperty(t.prototype,"prefix",{get:function(){return d},enumerable:!0,configurable:!0}),t.prototype.open=function(){this.wrapper.classList.add(d+"--open"),document.body.classList.add(d+"-opened")},t.prototype.close=function(){this.wrapper.classList.remove(d+"--open"),document.body.classList.remove(d+"-opened")},t}(),l=function(){function t(t,e){void 0===e&&(e="all"),this.menu=t,this.toggler=new i(e)}return t.prototype.navigation=function(t){var e=this;if(!this.navigator){var n=(t=t||{}).title,i=void 0===n?"Menu":n,s=t.selectedClass,o=void 0===s?"Selected":s,r=t.slidingSubmenus,a=void 0===r||r,d=t.theme,u=void 0===d?"light":d;this.navigator=new c(this.menu,i,o,a,u),this.toggler.add((function(){return e.menu.classList.add(e.navigator.prefix)}),(function(){return e.menu.classList.remove(e.navigator.prefix)}))}return this.navigator},t.prototype.offcanvas=function(t){var e=this;if(!this.drawer){var n=(t=t||{}).position,i=void 0===n?"left":n;this.drawer=new u(null,i);var s=document.createComment("original menu location");this.menu.after(s),this.toggler.add((function(){e.drawer.content.append(e.menu)}),(function(){e.drawer.close(),s.after(e.menu)}))}return this.drawer},t}();e.default=l;window.MmenuLight=l}]);
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Mmenu Light
3
+ * mmenujs.com/mmenu-light v3.0.5
4
+ *
5
+ * Copyright (c) Fred Heusschen
6
+ * www.frebsite.nl
7
+ *
8
+ * License: CC-BY-4.0
9
+ * http://creativecommons.org/licenses/by/4.0/
10
+ */
11
+ !function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(i,s,function(e){return t[e]}.bind(null,s));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);var i=function(){function t(t){var e=this;this.listener=function(t){(t.matches?e.matchFns:e.unmatchFns).forEach((function(t){t()}))},this.toggler=window.matchMedia(t),this.toggler.addListener(this.listener),this.matchFns=[],this.unmatchFns=[]}return t.prototype.add=function(t,e){this.matchFns.push(t),this.unmatchFns.push(e),(this.toggler.matches?t:e)()},t}(),s=function(t){return Array.prototype.slice.call(t)},o=function(t,e){return s((e||document).querySelectorAll(t))},r=("ontouchstart"in window||navigator.msMaxTouchPoints,navigator.userAgent.indexOf("MSIE")>-1||navigator.appVersion.indexOf("Trident/")>-1),a="mm-spn",c=function(){function t(t,e,n,i,s){this.node=t,this.title=e,this.slidingSubmenus=i,this.selectedClass=n,this.node.classList.add(a),r&&(this.slidingSubmenus=!1),this.node.classList.add(a+"--"+s),this.node.classList.add(a+"--"+(this.slidingSubmenus?"navbar":"vertical")),this._setSelectedl(),this._initAnchors()}return Object.defineProperty(t.prototype,"prefix",{get:function(){return a},enumerable:!0,configurable:!0}),t.prototype.openPanel=function(t){var e=t.parentElement;if(this.slidingSubmenus){var n=t.dataset.mmSpnTitle;e===this.node?this.node.classList.add(a+"--main"):(this.node.classList.remove(a+"--main"),n||s(e.children).forEach((function(t){t.matches("a, span")&&(n=t.textContent)}))),n||(n=this.title),this.node.dataset.mmSpnTitle=n,o("."+a+"--open",this.node).forEach((function(t){t.classList.remove(a+"--open"),t.classList.remove(a+"--parent")})),t.classList.add(a+"--open"),t.classList.remove(a+"--parent");for(var i=t.parentElement.closest("ul");i;)i.classList.add(a+"--open"),i.classList.add(a+"--parent"),i=i.parentElement.closest("ul")}else{var r=t.matches("."+a+"--open");o("."+a+"--open",this.node).forEach((function(t){t.classList.remove(a+"--open")})),t.classList[r?"remove":"add"](a+"--open");for(var c=t.parentElement.closest("ul");c;)c.classList.add(a+"--open"),c=c.parentElement.closest("ul")}},t.prototype._setSelectedl=function(){var t=o("."+this.selectedClass,this.node),e=t[t.length-1],n=null;e&&(n=e.closest("ul")),n||(n=this.node.querySelector("ul")),this.openPanel(n)},t.prototype._initAnchors=function(){var t=this;this.node.addEventListener("click",(function(e){var n=e.target,i=!1;(i=(i=(i=i||function(t){return!!t.matches("a")}(n))||function(e){var n;return!!(n=e.closest("span")?e.parentElement:!!e.closest("li")&&e)&&(s(n.children).forEach((function(e){e.matches("ul")&&t.openPanel(e)})),!0)}(n))||function(e){var n=o("."+a+"--open",e),i=n[n.length-1];if(i){var s=i.parentElement.closest("ul");if(s)return t.openPanel(s),!0}return!1}(n))&&e.stopImmediatePropagation()}))},t}(),d="mm-ocd",u=function(){function t(t,e){var n=this;void 0===t&&(t=null),this.wrapper=document.createElement("div"),this.wrapper.classList.add(""+d),this.wrapper.classList.add(d+"--"+e),this.content=document.createElement("div"),this.content.classList.add(d+"__content"),this.wrapper.append(this.content),this.backdrop=document.createElement("div"),this.backdrop.classList.add(d+"__backdrop"),this.wrapper.append(this.backdrop),document.body.append(this.wrapper),t&&this.content.append(t);var i=function(t){n.close(),t.stopImmediatePropagation()};this.backdrop.addEventListener("touchstart",i,{passive:!0}),this.backdrop.addEventListener("mousedown",i,{passive:!0})}return Object.defineProperty(t.prototype,"prefix",{get:function(){return d},enumerable:!0,configurable:!0}),t.prototype.open=function(){this.wrapper.classList.add(d+"--open"),document.body.classList.add(d+"-opened")},t.prototype.close=function(){this.wrapper.classList.remove(d+"--open"),document.body.classList.remove(d+"-opened")},t}(),l=function(){function t(t,e){void 0===e&&(e="all"),this.menu=t,this.toggler=new i(e)}return t.prototype.navigation=function(t){var e=this;if(!this.navigator){var n=(t=t||{}).title,i=void 0===n?"Menu":n,s=t.selectedClass,o=void 0===s?"Selected":s,r=t.slidingSubmenus,a=void 0===r||r,d=t.theme,u=void 0===d?"light":d;this.navigator=new c(this.menu,i,o,a,u),this.toggler.add((function(){return e.menu.classList.add(e.navigator.prefix)}),(function(){return e.menu.classList.remove(e.navigator.prefix)}))}return this.navigator},t.prototype.offcanvas=function(t){var e=this;if(!this.drawer){var n=(t=t||{}).position,i=void 0===n?"left":n;this.drawer=new u(null,i);var s=document.createComment("original menu location");this.menu.after(s),this.toggler.add((function(){e.drawer.content.append(e.menu)}),(function(){e.drawer.close(),s.after(e.menu)}))}return this.drawer},t}();e.default=l;window.MmenuLight=l}]);
@@ -0,0 +1,118 @@
1
+ // Source: https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
2
+ if (window.NodeList && !NodeList.prototype.forEach) {
3
+ NodeList.prototype.forEach = function(callback, thisArg) {
4
+ thisArg = thisArg || window;
5
+ for (var i = 0; i < this.length; i++) {
6
+ callback.call(thisArg, this[i], i, this);
7
+ }
8
+ };
9
+ }
10
+
11
+ // Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
12
+ if (!Element.prototype.matches) {
13
+ Element.prototype.matches =
14
+ Element.prototype.matchesSelector ||
15
+ Element.prototype.mozMatchesSelector ||
16
+ Element.prototype.msMatchesSelector ||
17
+ Element.prototype.oMatchesSelector ||
18
+ Element.prototype.webkitMatchesSelector ||
19
+ function(s) {
20
+ var matches = (
21
+ this.document || this.ownerDocument
22
+ ).querySelectorAll(s),
23
+ i = matches.length;
24
+ while (--i >= 0 && matches.item(i) !== this) {}
25
+ return i > -1;
26
+ };
27
+ }
28
+
29
+ // Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
30
+ if (!Element.prototype.matches) {
31
+ Element.prototype.matches =
32
+ Element.prototype.msMatchesSelector ||
33
+ Element.prototype.webkitMatchesSelector;
34
+ }
35
+
36
+ if (!Element.prototype.closest) {
37
+ Element.prototype.closest = function(s) {
38
+ var el = this;
39
+
40
+ do {
41
+ if (el.matches(s)) return el;
42
+ el = el.parentElement || el.parentNode;
43
+ } while (el !== null && el.nodeType === 1);
44
+ return null;
45
+ };
46
+ }
47
+
48
+ // from: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/after()/after().md
49
+ (function(arr) {
50
+ arr.forEach(function(item) {
51
+ if (item.hasOwnProperty('after')) {
52
+ return;
53
+ }
54
+ Object.defineProperty(item, 'after', {
55
+ configurable: true,
56
+ enumerable: true,
57
+ writable: true,
58
+ value: function after() {
59
+ var argArr = Array.prototype.slice.call(arguments),
60
+ docFrag = document.createDocumentFragment();
61
+
62
+ argArr.forEach(function(argItem) {
63
+ var isNode = argItem instanceof Node;
64
+ docFrag.appendChild(
65
+ isNode
66
+ ? argItem
67
+ : document.createTextNode(String(argItem))
68
+ );
69
+ });
70
+
71
+ this.parentNode.insertBefore(docFrag, this.nextSibling);
72
+ }
73
+ });
74
+ });
75
+ })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
76
+
77
+ // Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
78
+ (function(arr) {
79
+ arr.forEach(function(item) {
80
+ if (item.hasOwnProperty('append')) {
81
+ return;
82
+ }
83
+ Object.defineProperty(item, 'append', {
84
+ configurable: true,
85
+ enumerable: true,
86
+ writable: true,
87
+ value: function append() {
88
+ var argArr = Array.prototype.slice.call(arguments),
89
+ docFrag = document.createDocumentFragment();
90
+
91
+ argArr.forEach(function(argItem) {
92
+ var isNode = argItem instanceof Node;
93
+ docFrag.appendChild(
94
+ isNode
95
+ ? argItem
96
+ : document.createTextNode(String(argItem))
97
+ );
98
+ });
99
+
100
+ this.appendChild(docFrag);
101
+ }
102
+ });
103
+ });
104
+ })([Element.prototype, Document.prototype, DocumentFragment.prototype]);
105
+
106
+ // from: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
107
+ (function() {
108
+ if (typeof window.Event === 'function') return false;
109
+
110
+ function Event(event, params) {
111
+ params = params || { bubbles: false, cancelable: false };
112
+ var evt = document.createEvent('Event');
113
+ evt.initEvent(event, params.bubbles, params.cancelable);
114
+ return evt;
115
+ }
116
+
117
+ window.Event = Event;
118
+ })();
@@ -0,0 +1,118 @@
1
+ // Source: https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
2
+ if (window.NodeList && !NodeList.prototype.forEach) {
3
+ NodeList.prototype.forEach = function(callback, thisArg) {
4
+ thisArg = thisArg || window;
5
+ for (var i = 0; i < this.length; i++) {
6
+ callback.call(thisArg, this[i], i, this);
7
+ }
8
+ };
9
+ }
10
+
11
+ // Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches
12
+ if (!Element.prototype.matches) {
13
+ Element.prototype.matches =
14
+ Element.prototype.matchesSelector ||
15
+ Element.prototype.mozMatchesSelector ||
16
+ Element.prototype.msMatchesSelector ||
17
+ Element.prototype.oMatchesSelector ||
18
+ Element.prototype.webkitMatchesSelector ||
19
+ function(s) {
20
+ var matches = (
21
+ this.document || this.ownerDocument
22
+ ).querySelectorAll(s),
23
+ i = matches.length;
24
+ while (--i >= 0 && matches.item(i) !== this) {}
25
+ return i > -1;
26
+ };
27
+ }
28
+
29
+ // Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
30
+ if (!Element.prototype.matches) {
31
+ Element.prototype.matches =
32
+ Element.prototype.msMatchesSelector ||
33
+ Element.prototype.webkitMatchesSelector;
34
+ }
35
+
36
+ if (!Element.prototype.closest) {
37
+ Element.prototype.closest = function(s) {
38
+ var el = this;
39
+
40
+ do {
41
+ if (el.matches(s)) return el;
42
+ el = el.parentElement || el.parentNode;
43
+ } while (el !== null && el.nodeType === 1);
44
+ return null;
45
+ };
46
+ }
47
+
48
+ // from: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/after()/after().md
49
+ (function(arr) {
50
+ arr.forEach(function(item) {
51
+ if (item.hasOwnProperty('after')) {
52
+ return;
53
+ }
54
+ Object.defineProperty(item, 'after', {
55
+ configurable: true,
56
+ enumerable: true,
57
+ writable: true,
58
+ value: function after() {
59
+ var argArr = Array.prototype.slice.call(arguments),
60
+ docFrag = document.createDocumentFragment();
61
+
62
+ argArr.forEach(function(argItem) {
63
+ var isNode = argItem instanceof Node;
64
+ docFrag.appendChild(
65
+ isNode
66
+ ? argItem
67
+ : document.createTextNode(String(argItem))
68
+ );
69
+ });
70
+
71
+ this.parentNode.insertBefore(docFrag, this.nextSibling);
72
+ }
73
+ });
74
+ });
75
+ })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
76
+
77
+ // Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
78
+ (function(arr) {
79
+ arr.forEach(function(item) {
80
+ if (item.hasOwnProperty('append')) {
81
+ return;
82
+ }
83
+ Object.defineProperty(item, 'append', {
84
+ configurable: true,
85
+ enumerable: true,
86
+ writable: true,
87
+ value: function append() {
88
+ var argArr = Array.prototype.slice.call(arguments),
89
+ docFrag = document.createDocumentFragment();
90
+
91
+ argArr.forEach(function(argItem) {
92
+ var isNode = argItem instanceof Node;
93
+ docFrag.appendChild(
94
+ isNode
95
+ ? argItem
96
+ : document.createTextNode(String(argItem))
97
+ );
98
+ });
99
+
100
+ this.appendChild(docFrag);
101
+ }
102
+ });
103
+ });
104
+ })([Element.prototype, Document.prototype, DocumentFragment.prototype]);
105
+
106
+ // from: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
107
+ (function() {
108
+ if (typeof window.Event === 'function') return false;
109
+
110
+ function Event(event, params) {
111
+ params = params || { bubbles: false, cancelable: false };
112
+ var evt = document.createEvent('Event');
113
+ evt.initEvent(event, params.bubbles, params.cancelable);
114
+ return evt;
115
+ }
116
+
117
+ window.Event = Event;
118
+ })();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "j1_starter",
4
- "version": "2020.0.0",
4
+ "version": "2020.0.5",
5
5
  "description": "J1 Template starter Web",
6
6
  "homepage": "https://your.site",
7
7
  "author": {
@@ -0,0 +1,199 @@
1
+ ---
2
+ title: Floating SideBar
3
+ tagline: where to go
4
+ description: Where to go
5
+
6
+ tags: [ Page, Roundtrip ]
7
+ index: [ Start, Template, Whats, Up, Readme, TL;DR ]
8
+ categories: [ pages ]
9
+
10
+ permalink: /pages/public/learn/fsb/
11
+ regenerate: false
12
+
13
+ resources: [ lightbox ]
14
+ resource_options:
15
+ - attic:
16
+ padding_top: 400
17
+ padding_bottom: 50
18
+ opacity: 0.5
19
+ slides:
20
+ - url: /assets/images/modules/attics/runner-1920x1200-bw.jpg
21
+ alt: Photo by Alexander Redl on Unsplash
22
+ badge:
23
+ type: unsplash
24
+ author: Alexander Redl
25
+ href: https://unsplash.com/@alexanderredl
26
+ ---
27
+
28
+ // Enable the Liquid Preprocessor
29
+ // -----------------------------------------------------------------------------
30
+ :page-liquid:
31
+
32
+
33
+ // Set other global page attributes here
34
+ // -----------------------------------------------------------------------------
35
+ //:my-asciidoc-attribute:
36
+
37
+ // Load Liquid procedures
38
+ // -----------------------------------------------------------------------------
39
+ {% capture set_env_entry_document %}themes/{{site.template.name}}/procedures/global/set_env_entry_document.proc{%endcapture%}
40
+
41
+
42
+ // Initialize entry document environmental attributes
43
+ // -----------------------------------------------------------------------------
44
+ {% include {{set_env_entry_document}} %}
45
+
46
+ // Load tag, url and data attributes
47
+ // -----------------------------------------------------------------------------
48
+ // include::{includedir}/attributes.asciidoc[tag=tags]
49
+ // include::{includedir}/attributes.asciidoc[tag=urls]
50
+ // include::{includedir}/attributes.asciidoc[tag=data]
51
+
52
+ // Set local page attributes
53
+ // -----------------------------------------------------------------------------
54
+ // :images-dir: {imagesdir}/path/to/page/images
55
+
56
+
57
+ // Page content
58
+ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59
+
60
+ // Include sub-documents
61
+ // -----------------------------------------------------------------------------
62
+
63
+ ++++
64
+ <div class="sidebar">
65
+ <div class="floating-div">
66
+ <p>This "floating div" could be a form, a call to action, an ad,
67
+ or whatever other content you want to float in sidebar as the user
68
+ scrolls up and down the page.
69
+ </p>
70
+ </div>
71
+ </div>
72
+ ++++
73
+
74
+ Welcome to the pages of J1 Template. If your here first time,
75
+ hopefully you get on that page first. For sure, there is no better
76
+ place to step in.
77
+
78
+ Having a menu system is great. We hope the the navigator module of J1 will
79
+ support you to explore this site, find what your are looking for. The site
80
+ of J1 has grown over the last month a lot. Many documents were seeking for
81
+ a home. And we have really a bunch of them.
82
+
83
+ To get better orientated, the site is organized for *natural reading*. As we
84
+ use the English language for our international vistors (we are German),
85
+ *natural reading* means for a western language, reading from the left to the
86
+ right (LTR), and from top to down a page. The same to all menus, sections
87
+ and pages.
88
+
89
+ To read the site it is recommended to go for LTR. Other languages, other
90
+ countries and cultures go for RTL, but currently we've *no* support for RTL
91
+ implemented.
92
+
93
+ For that reason, it was a good decision to start from here.
94
+
95
+ == Whats up
96
+
97
+ First of all, you've started already! The important first step in to find
98
+ your way to Jekyll is done. Congratiulations.
99
+
100
+ The *Learn* section contains all you need to learn what Jekyll and J1 can do
101
+ for your website. For your new static web - if you like.
102
+
103
+ With this section you'll find a:
104
+
105
+ . *Roundtrip* to show some of the main features of the template system
106
+ *J1*.
107
+
108
+ . *Kickstarter* are Tutorials. The most important one to start is *Web in a Day*.
109
+ This tutorial guides you through all the steps to build a website using
110
+ the template system Jekyll One - your site using Jekyll and the template J1.
111
+
112
+ == Where to go
113
+
114
+ You should go for the *Roundtrip* first. See what you will get. As an overview
115
+ of some of the main features of *J1*. The roundtrip is a *visual* tour. No
116
+ technical stuff, nothing academic.
117
+
118
+ Let's go more deeper and make things real - and your hands dirty. We
119
+ recomment to work on the Kickstarter *Web in a Day*. A nice one-day journey
120
+ diving into the world of Jekyll. You'll learn a lot and at the end of that day
121
+ you know what Jekyll, static webs and the template system J1 is all about.
122
+
123
+ You're welcome!
124
+
125
+ If you like, continue by walking through the roundtrip examples
126
+ link:/pages/public/learn/roundtrip/present_images/[by starting the tour here].
127
+
128
+ ++++
129
+ <style>
130
+
131
+ .sidebar {
132
+ width:33.33%;
133
+ float:left;
134
+ padding: 0 10px;
135
+ }
136
+
137
+ .floating-div {
138
+ background-color: #333;
139
+ padding: 10px 50px;
140
+ color:#EEE;
141
+ font-size: 20px;
142
+ margin-top:10px;
143
+ position: absolute;
144
+ right: -40px;
145
+ }
146
+
147
+ .sticky {
148
+ position: fixed;
149
+ top: 150px;
150
+ right:-40px;
151
+ margin: 0;
152
+ width:calc(33.33% - 25px);
153
+ }
154
+
155
+ .abs {
156
+ position: absolute;
157
+ bottom: 10px;
158
+ right:10px;
159
+ width:calc(33.33% - 20px);
160
+ }
161
+ </style>
162
+
163
+ <script>
164
+ $(document).ready(function() {
165
+ var dependencies_met_core = setInterval(function() {
166
+ if (j1.getState() == 'finished') {
167
+ // variables
168
+ var main_content = $('.js-toc-content');
169
+ var m = $(main_content).offset().top;
170
+ var topPosition = $('.floating-div').offset().top - 10;
171
+ var floatingDivHeight = $('.floating-div').outerHeight();
172
+ var footer = $('#j1_footer');
173
+ var footerFromTop = $('#j1_footer').offset().top;
174
+ var absPosition = footerFromTop - floatingDivHeight - 20;
175
+ var win = $(window);
176
+ var floatingDiv = $('.floating-div');
177
+
178
+ win.scroll(function() {
179
+ if (window.matchMedia('(min-width: 768px)').matches) {
180
+ if ((win.scrollTop() > topPosition) && (win.scrollTop() < absPosition)) {
181
+ floatingDiv.addClass('sticky');
182
+ floatingDiv.removeClass('abs');
183
+
184
+ } else if ((win.scrollTop() > topPosition) && (win.scrollTop() > absPosition)) {
185
+ floatingDiv.removeClass('sticky');
186
+ floatingDiv.addClass('abs');
187
+
188
+ } else {
189
+ floatingDiv.removeClass('sticky');
190
+ floatingDiv.removeClass('abs');
191
+ }
192
+ }
193
+ });
194
+ clearInterval(dependencies_met_core);
195
+ }
196
+ }, 25);
197
+ });
198
+ </script>
199
+ ++++