jekyll-garden 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/README.md +62 -0
- data/_config.yml +269 -0
- data/_data/emoji.yml +46 -0
- data/_data/themes.yml +145 -0
- data/_includes/anchor-headings.html +156 -0
- data/_includes/branch.html +18 -0
- data/_includes/btn_state.html +14 -0
- data/_includes/connect.html +46 -0
- data/_includes/cookie-consent.html +79 -0
- data/_includes/dates.html +22 -0
- data/_includes/hp-tooltip.html +106 -0
- data/_includes/img/bullet-ancestor.svg +5 -0
- data/_includes/img/bullet-branch.svg +7 -0
- data/_includes/img/bullet-tree.svg +9 -0
- data/_includes/img/bullet-web.svg +9 -0
- data/_includes/img/pencil-filter.svg +17 -0
- data/_includes/share.html +47 -0
- data/_includes/site-nav.html +100 -0
- data/_includes/tags.html +49 -0
- data/_includes/themes.scss.liquid +80 -0
- data/_includes/toc.html +187 -0
- data/_layouts/404.html +10 -0
- data/_layouts/about.html +14 -0
- data/_layouts/archive.html +77 -0
- data/_layouts/base.html +68 -0
- data/_layouts/book.html +40 -0
- data/_layouts/entry.html +269 -0
- data/_layouts/home.html +96 -0
- data/_layouts/map.html +17 -0
- data/_layouts/post.html +37 -0
- data/_layouts/privacy.html +15 -0
- data/_layouts/recent.html +66 -0
- data/_layouts/state.html +70 -0
- data/_layouts/table-wrappers.html +7 -0
- data/_layouts/vendor/compress.html +10 -0
- data/_sass/base/_code.scss +133 -0
- data/_sass/base/_layout.scss +55 -0
- data/_sass/base/_link.scss +105 -0
- data/_sass/base/_main.scss +96 -0
- data/_sass/base/_markdown.scss +281 -0
- data/_sass/base/_typography.scss +89 -0
- data/_sass/base/code_themes/_gruvbox.scss +92 -0
- data/_sass/base/code_themes/_monokai.scss +217 -0
- data/_sass/base/code_themes/_solarized.scss +84 -0
- data/_sass/components/_btn.scss +95 -0
- data/_sass/components/_infobox.scss +48 -0
- data/_sass/components/_item.scss +28 -0
- data/_sass/components/_search.scss +61 -0
- data/_sass/components/_tag_pills.scss +24 -0
- data/_sass/components/_visited.scss +42 -0
- data/_sass/includes/_anchor_headings.scss +36 -0
- data/_sass/includes/_connect.scss +8 -0
- data/_sass/includes/_cookie_consent.scss +46 -0
- data/_sass/includes/_dates.scss +6 -0
- data/_sass/includes/_hp_tooltip.scss +41 -0
- data/_sass/includes/_share.scss +10 -0
- data/_sass/includes/_site_nav.scss +97 -0
- data/_sass/includes/_svg.scss +89 -0
- data/_sass/includes/_toc.scss +38 -0
- data/_sass/layouts/_404.scss +3 -0
- data/_sass/layouts/_about.scss +3 -0
- data/_sass/layouts/_archive.scss +26 -0
- data/_sass/layouts/_book.scss +17 -0
- data/_sass/layouts/_entry.scss +152 -0
- data/_sass/layouts/_home.scss +75 -0
- data/_sass/layouts/_map.scss +3 -0
- data/_sass/layouts/_post.scss +17 -0
- data/_sass/layouts/_privacy.scss +3 -0
- data/_sass/layouts/_recent.scss +77 -0
- data/_sass/layouts/_state.scss +98 -0
- data/_sass/main.scss +73 -0
- data/_sass/util/_functions.scss +9 -0
- data/_sass/util/_variables.scss +113 -0
- data/_sass/util/mixins/_buttons.scss +27 -0
- data/_sass/util/mixins/_layout.scss +84 -0
- data/_sass/util/mixins/_typography.scss +84 -0
- data/_sass/vendor/normalize.scss/README.md +7 -0
- data/_sass/vendor/normalize.scss/normalize.scss +349 -0
- data/assets/css/styles.scss +31 -0
- data/assets/font/Cutive_Mono/CutiveMono-Regular.ttf +0 -0
- data/assets/font/Cutive_Mono/OFL.txt +93 -0
- data/assets/font/Old_Standard_TT/OFL.txt +93 -0
- data/assets/font/Old_Standard_TT/OldStandardTT-Bold.ttf +0 -0
- data/assets/font/Old_Standard_TT/OldStandardTT-Italic.ttf +0 -0
- data/assets/font/Old_Standard_TT/OldStandardTT-Regular.ttf +0 -0
- data/assets/font/exo2/Exo2-Italic-VariableFont_wght.ttf +0 -0
- data/assets/font/exo2/Exo2-VariableFont_wght.ttf +0 -0
- data/assets/font/exo2/OFL.txt +93 -0
- data/assets/font/exo2/README.txt +81 -0
- data/assets/font/exo2/static/Exo2-Black.ttf +0 -0
- data/assets/font/exo2/static/Exo2-BlackItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Bold.ttf +0 -0
- data/assets/font/exo2/static/Exo2-BoldItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraBold.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraBoldItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraLight.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraLightItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Italic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Light.ttf +0 -0
- data/assets/font/exo2/static/Exo2-LightItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Medium.ttf +0 -0
- data/assets/font/exo2/static/Exo2-MediumItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Regular.ttf +0 -0
- data/assets/font/exo2/static/Exo2-SemiBold.ttf +0 -0
- data/assets/font/exo2/static/Exo2-SemiBoldItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Thin.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ThinItalic.ttf +0 -0
- data/assets/img/bloomz.svg +1 -0
- data/assets/img/bonsai-dark.png +0 -0
- data/assets/img/bonsai-dark.svg +106 -0
- data/assets/img/bonsai-light.png +0 -0
- data/assets/img/bonsai-light.svg +81 -0
- data/assets/img/bonsai-star.png +0 -0
- data/assets/img/bonsai-star.svg +1 -0
- data/assets/img/books/the-ancient-art-of-bonsai.png +0 -0
- data/assets/img/favicon-dark.png +0 -0
- data/assets/img/favicon-light.png +0 -0
- data/assets/img/garden.svg +1 -0
- data/assets/img/jekyll.png +0 -0
- data/assets/img/jekyll.svg +3 -0
- data/assets/img/nav-base-dark.svg +1 -0
- data/assets/img/nav-base-light.svg +1 -0
- data/assets/img/nav-base-star.svg +1 -0
- data/assets/img/nav-bonsai-dark.svg +1 -0
- data/assets/img/nav-bonsai-light.svg +1 -0
- data/assets/img/nav-bonsai-star.svg +1 -0
- data/assets/img/wikibonsai-way.png +0 -0
- data/assets/js/entry.js +130 -0
- data/assets/js/graph.js +64 -0
- data/assets/js/scripts.js +64 -0
- data/assets/js/search.js +165 -0
- data/assets/js/site-nav.js +132 -0
- data/assets/js/theme-colors.js +57 -0
- data/assets/js/vendor/lunr.js +3475 -0
- data/assets/js/vendor/lunr.min.js +6 -0
- data/assets/js/visited-nav.js +65 -0
- metadata +352 -0
Binary file
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
2
|
+
<path fill="#e70000" d="M10.766 32c-0.464 0-0.922-0.083-1.359-0.25-1.833-0.703-2.807-2.698-2.302-4.536l-0.021-0.010 0.12-0.302 9.328-24.219c0.141-0.365 0.078-1.214 0.010-1.693-0.021-0.115-0.021-0.214 0.010-0.318l0.010-0.031 0.005-0.021v-0.010l0.016-0.026c0.141-0.385 0.599-0.583 1.344-0.583 0.896 0 2.135 0.281 3.401 0.766 1.063 0.406 2.031 0.917 2.708 1.432 0.802 0.599 1.125 1.141 0.943 1.599l-0.042 0.063-0.021 0.016c-0.057 0.083-0.12 0.161-0.198 0.224-0.422 0.359-1.021 0.979-1.12 1.26l-9.417 24.557-0.026-0.005c-0.656 1.266-1.943 2.073-3.391 2.078h-0.005zM7.849 27.042l-0.026 0.068c-0.599 1.599 0.214 3.411 1.818 4.026 0.359 0.135 0.734 0.203 1.115 0.203 1.297 0 2.443-0.781 2.917-2l0.036-0.083 9.281-24.12c0.193-0.516 1.12-1.359 1.302-1.516l0.021-0.026c0.016-0.016 0.031-0.016 0.031-0.036 0-0.083-0.083-0.359-0.745-0.859-0.641-0.484-1.536-0.964-2.536-1.344-1.161-0.438-2.359-0.719-3.161-0.719-0.521 0-0.698 0.109-0.724 0.172v0.052c0.021 0.135 0.193 1.38-0.047 2.021l-9.281 24.156zM19.781 11.698c0 0-1.286 1.479-2.458 2.016-1.172 0.531-2.036 0.391-3.094 1.005-1.052 0.615-1.583 1.474-1.583 1.474l-4.286 11.146c-0.464 1.26 0.224 2.734 1.5 3.229 1.281 0.49 2.719-0.161 3.219-1.411zM13.208 25.016c0.135-0.057 0.297 0 0.354 0.135 0.057 0.141 0 0.297-0.141 0.354s-0.302 0-0.354-0.141c-0.057-0.125 0-0.286 0.141-0.349zM11.854 22.609c-0.203 0.094-0.443 0-0.531-0.203s0-0.448 0.208-0.531c0.203-0.094 0.448 0 0.531 0.203 0.099 0.203 0.010 0.417-0.208 0.521zM12.234 21.151c-0.161-0.385 0-0.833 0.385-1.010 0.38-0.167 0.818 0 1 0.38 0.161 0.385 0 0.828-0.38 1.005-0.401 0.172-0.839 0-1.021-0.38zM15.469 18.141c0.208-0.099 0.448 0 0.531 0.198 0.094 0.203 0 0.448-0.203 0.531-0.208 0.094-0.448 0-0.531-0.208-0.099-0.198 0-0.443 0.203-0.526zM13.745 16.302c0.141-0.057 0.302 0 0.354 0.135 0.057 0.141 0 0.302-0.135 0.359-0.141 0.052-0.302 0-0.354-0.141-0.057-0.141 0.010-0.302 0.135-0.354zM18.24 1.521c0.135-0.349 1.328-0.219 2.661 0.302 1.333 0.51 2.307 1.208 2.172 1.557-0.135 0.354-1.328 0.219-2.661-0.292-1.339-0.516-2.313-1.214-2.172-1.568z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 286.14 116.43"><defs><style>.cls-1{fill:#e6e1e8;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M47.2,116.43H0q0-2.3.16-16.32T.33,59.33q0-10.33,0-26.85T0,0H47.2V7.72H11.72q-.17,16.1-.2,28.74t0,22.21q0,20.28.16,32t.16,18H47.2Z"/><path class="cls-1" d="M116.38,116.43H69.18q0-2.3.16-16.32t.16-40.78q0-10.33,0-26.85T69.18,0h47.2V7.72H80.9q-.16,16.1-.21,28.74t0,22.21q0,20.28.16,32t.17,18h35.4Z"/><path class="cls-1" d="M217,116.43h-47.2v-7.72h35.4q0-6.93.16-19.95t.16-30.09q0-8.62,0-23.09t-.2-27.86H169.77V0H217q-.25,15.9-.29,32.7t0,26.63q0,18.32.16,36.56T217,116.43Z"/><path class="cls-1" d="M286.14,116.43h-47.2v-7.72h35.4q0-6.93.17-19.95t.16-30.09q0-8.62,0-23.09t-.21-27.86H238.94V0h47.2q-.24,15.9-.28,32.7t0,26.63q0,18.32.16,36.56T286.14,116.43Z"/><path class="cls-1" d="M129.38,90.26c0-8.15,5.51-13.88,13.22-13.88s13,5.73,13,13.88c0,7.93-5.06,13.87-13.21,13.87C134.67,104.13,129.38,98.19,129.38,90.26Z"/></g></g></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 286.14 116.43"><defs><style>.cls-1{fill:#5c5962;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M47.2,116.43H0q0-2.3.16-16.32T.33,59.33q0-10.33,0-26.85T0,0H47.2V7.72H11.72q-.17,16.1-.2,28.74t0,22.21q0,20.28.16,32t.16,18H47.2Z"/><path class="cls-1" d="M116.38,116.43H69.18q0-2.3.16-16.32t.16-40.78q0-10.33,0-26.85T69.18,0h47.2V7.72H80.9q-.16,16.1-.21,28.74t0,22.21q0,20.28.16,32t.17,18h35.4Z"/><path class="cls-1" d="M217,116.43h-47.2v-7.72h35.4q0-6.93.16-19.95t.16-30.09q0-8.62,0-23.09t-.2-27.86H169.77V0H217q-.25,15.9-.29,32.7t0,26.63q0,18.32.16,36.56T217,116.43Z"/><path class="cls-1" d="M286.14,116.43h-47.2v-7.72h35.4q0-6.93.17-19.95t.16-30.09q0-8.62,0-23.09t-.21-27.86H238.94V0h47.2q-.24,15.9-.28,32.7t0,26.63q0,18.32.16,36.56T286.14,116.43Z"/><path class="cls-1" d="M129.22,90.25c0-8.15,5.5-13.87,13.21-13.87s13,5.72,13,13.87c0,7.93-5.07,13.88-13.22,13.88C134.5,104.13,129.22,98.18,129.22,90.25Z"/></g></g></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 286.14 116.43"><defs><style>.cls-1{fill:#e1e8e3;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="bonsai"><g id="txt"><g id="wikilinks"><path class="cls-1" d="M47.2,116.43H0q0-2.3.16-16.32T.33,59.33q0-10.33,0-26.85T0,0H47.2V7.72H11.72q-.17,16.1-.2,28.74t0,22.21q0,20.28.16,32t.16,18H47.2Z"/><path class="cls-1" d="M116.38,116.43H69.18q0-2.3.16-16.32t.16-40.78q0-10.33,0-26.85T69.18,0h47.2V7.72H80.9q-.16,16.1-.21,28.74t0,22.21q0,20.28.16,32t.17,18h35.4Z"/><path class="cls-1" d="M217,116.43h-47.2v-7.72h35.4q0-6.93.16-19.95t.16-30.09q0-8.62,0-23.09t-.2-27.86H169.77V0H217q-.25,15.9-.29,32.7t0,26.63q0,18.32.16,36.56T217,116.43Z"/><path class="cls-1" d="M286.14,116.43h-47.2v-7.72h35.4q0-6.93.17-19.95t.16-30.09q0-8.62,0-23.09t-.21-27.86H238.94V0h47.2q-.24,15.9-.28,32.7t0,26.63q0,18.32.16,36.56T286.14,116.43Z"/></g><path id="dot" class="cls-1" d="M129.22,90.25c0-8.15,5.5-13.87,13.21-13.87s13,5.72,13,13.87c0,7.93-5.07,13.88-13.22,13.88C134.5,104.13,129.22,98.18,129.22,90.25Z"/></g></g></g></g></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 583.03 374.23"><defs><style>.cls-1{fill:#54535b;}.cls-2{fill:none;stroke:#54535b;stroke-miterlimit:10;stroke-width:10px;}.cls-3{fill:#31af31;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M155.05,219.83a41.35,41.35,0,0,0,1,6.4,47.68,47.68,0,0,0,2.16,6.47,56.53,56.53,0,0,0,6.91,12.22,71.84,71.84,0,0,0,9.63,10.67l2.76,2.38c.94.78,1.94,1.49,2.9,2.25,2,1.48,4,2.89,6.09,4.21a105.38,105.38,0,0,0,13.25,7.05,117.12,117.12,0,0,0,14.31,5.34c4.92,1.46,10,2.67,15.08,3.66,2.57.42,5.14.93,7.74,1.21l3.9.5,3.93.36c2.6.27,5.27.34,7.91.52l4.18.25c.72.07,1.43.06,2.15.18l2.15.34a51.45,51.45,0,0,1,16.25,5.64,53.43,53.43,0,0,1,13.41,10.41A50.61,50.61,0,0,1,300,314a43.63,43.63,0,0,1,3.66,16.26,53.33,53.33,0,0,1-1.87,16.33,60.27,60.27,0,0,1-6.42,14.95,62.45,62.45,0,0,1-9.93,12.73l-.06-.06a61.81,61.81,0,0,0,9.1-13.16,57.91,57.91,0,0,0,5.41-14.92,51.19,51.19,0,0,0,.79-15.65,40.32,40.32,0,0,0-4.33-14.75,46.28,46.28,0,0,0-21.84-20.57,44.53,44.53,0,0,0-14.37-3.87l-1.84-.16c-.61-.07-1.25,0-1.87,0-1.28,0-2.43,0-3.89.06-2.72,0-5.43.19-8.19.13-5.49.07-11-.24-16.54-.61a165.09,165.09,0,0,1-16.59-2.24,131,131,0,0,1-16.4-4.37,101,101,0,0,1-15.74-7,90.35,90.35,0,0,1-14.43-9.87,77.76,77.76,0,0,1-12.19-13c-.91-1.19-1.7-2.48-2.55-3.71s-1.56-2.59-2.33-3.88-1.41-2.69-2.05-4.06-1.27-2.77-1.76-4.23l-.78-2.17c-.24-.73-.44-1.48-.66-2.22-.47-1.46-.76-3-1.11-4.53a46.53,46.53,0,0,1-.78-9.59Z"/><line class="cls-2" x1="23.49" y1="200.56" x2="54.67" y2="145.12"/><line class="cls-2" x1="54.67" y1="145.12" x2="84.84" y2="200.56"/><line class="cls-2" x1="84.84" y1="200.56" x2="116.3" y2="145.12"/><line class="cls-2" x1="116.3" y1="145.12" x2="146.19" y2="200.56"/><line class="cls-2" x1="146.19" y1="200.56" x2="177.93" y2="145.12"/><line class="cls-2" x1="177.93" y1="145.12" x2="209.52" y2="200.56"/><line class="cls-2" x1="309.46" y1="196.33" x2="340.64" y2="140.89"/><line class="cls-2" x1="340.64" y1="140.89" x2="370.81" y2="196.33"/><line class="cls-2" x1="370.81" y1="196.33" x2="402.27" y2="140.89"/><line class="cls-2" x1="402.27" y1="140.89" x2="432.16" y2="196.33"/><line class="cls-2" x1="432.16" y1="196.33" x2="463.9" y2="140.89"/><line class="cls-2" x1="463.9" y1="140.89" x2="495.49" y2="196.33"/><line class="cls-2" x1="495.49" y1="196.33" x2="526.35" y2="140.89"/><line class="cls-2" x1="526.35" y1="140.89" x2="559.54" y2="196.33"/><line class="cls-2" x1="112.41" y1="78.94" x2="143.58" y2="23.49"/><line class="cls-2" x1="143.58" y1="23.49" x2="173.76" y2="78.94"/><line class="cls-2" x1="173.76" y1="78.94" x2="205.22" y2="23.49"/><line class="cls-2" x1="205.22" y1="23.49" x2="235.11" y2="78.94"/><line class="cls-2" x1="235.11" y1="78.94" x2="266.85" y2="23.49"/><line class="cls-2" x1="266.85" y1="23.49" x2="298.44" y2="78.94"/><line class="cls-2" x1="298.44" y1="78.94" x2="329.3" y2="23.49"/><line class="cls-2" x1="329.3" y1="23.49" x2="362.49" y2="78.94"/><circle class="cls-1" cx="146.19" cy="200.56" r="23.49"/><circle class="cls-1" cx="209.52" cy="200.56" r="23.49"/><circle class="cls-1" cx="116.3" cy="145.12" r="23.49"/><circle class="cls-1" cx="177.93" cy="145.12" r="23.49"/><circle class="cls-1" cx="84.84" cy="200.56" r="23.49"/><circle class="cls-1" cx="54.67" cy="145.12" r="23.49"/><circle class="cls-1" cx="23.49" cy="200.56" r="23.49"/><circle class="cls-1" cx="432.16" cy="196.33" r="23.49"/><circle class="cls-1" cx="495.49" cy="196.33" r="23.49"/><circle class="cls-1" cx="402.27" cy="140.89" r="23.49"/><circle class="cls-1" cx="463.9" cy="140.89" r="23.49"/><circle class="cls-1" cx="370.81" cy="196.33" r="23.49"/><circle class="cls-1" cx="340.64" cy="140.89" r="23.49"/><circle class="cls-1" cx="309.46" cy="196.33" r="23.49"/><circle class="cls-1" cx="559.54" cy="196.33" r="23.49"/><circle class="cls-1" cx="526.35" cy="140.89" r="23.49"/><circle class="cls-1" cx="235.11" cy="78.94" r="23.49"/><circle class="cls-1" cx="298.44" cy="78.94" r="23.49"/><circle class="cls-1" cx="205.22" cy="23.49" r="23.49"/><circle class="cls-1" cx="266.85" cy="23.49" r="23.49"/><circle class="cls-1" cx="173.76" cy="78.94" r="23.49"/><circle class="cls-1" cx="143.58" cy="23.49" r="23.49"/><circle class="cls-1" cx="112.41" cy="78.94" r="23.49"/><circle class="cls-1" cx="362.49" cy="78.94" r="23.49"/><circle class="cls-1" cx="329.3" cy="23.49" r="23.49"/><circle class="cls-3" cx="146.11" cy="200.71" r="14.91"/><circle class="cls-3" cx="209.44" cy="200.71" r="14.91"/><circle class="cls-3" cx="116.31" cy="145.1" r="14.91"/><circle class="cls-3" cx="177.93" cy="145.12" r="14.91"/><circle class="cls-3" cx="84.92" cy="200.71" r="14.91"/><circle class="cls-3" cx="54.67" cy="145.12" r="14.91"/><circle class="cls-3" cx="23.5" cy="200.71" r="14.91"/><circle class="cls-3" cx="432.08" cy="196.48" r="14.91"/><circle class="cls-3" cx="495.41" cy="196.48" r="14.91"/><circle class="cls-3" cx="402.28" cy="140.87" r="14.91"/><circle class="cls-3" cx="463.9" cy="140.89" r="14.91"/><circle class="cls-3" cx="370.89" cy="196.48" r="14.91"/><circle class="cls-3" cx="340.64" cy="140.89" r="14.91"/><circle class="cls-3" cx="309.47" cy="196.48" r="14.91"/><circle class="cls-3" cx="559.54" cy="196.48" r="14.91"/><circle class="cls-3" cx="526.35" cy="140.89" r="14.91"/><circle class="cls-3" cx="235.03" cy="79.08" r="14.91"/><circle class="cls-3" cx="298.36" cy="79.08" r="14.91"/><circle class="cls-3" cx="205.23" cy="23.48" r="14.91"/><circle class="cls-3" cx="266.85" cy="23.49" r="14.91"/><circle class="cls-3" cx="173.84" cy="79.08" r="14.91"/><circle class="cls-3" cx="143.58" cy="23.49" r="14.91"/><circle class="cls-3" cx="112.42" cy="79.08" r="14.91"/><circle class="cls-3" cx="362.49" cy="79.08" r="14.91"/><circle class="cls-3" cx="329.3" cy="23.49" r="14.91"/></g></g></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 583.03 374.23"><defs><style>.cls-1{fill:#8c6239;}.cls-2{fill:none;stroke:#8c6239;stroke-miterlimit:10;stroke-width:10px;}.cls-3{fill:#31af31;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M155.05,219.83a41.35,41.35,0,0,0,1,6.4,47.68,47.68,0,0,0,2.16,6.47,56.53,56.53,0,0,0,6.91,12.22,71.84,71.84,0,0,0,9.63,10.67l2.76,2.38c.94.78,1.94,1.49,2.9,2.25,2,1.48,4,2.89,6.09,4.21a105.38,105.38,0,0,0,13.25,7.05,117.12,117.12,0,0,0,14.31,5.34c4.92,1.46,10,2.67,15.08,3.66,2.57.42,5.14.93,7.74,1.21l3.9.5,3.93.36c2.6.27,5.27.34,7.91.52l4.18.25c.72.07,1.43.06,2.15.18l2.15.34a51.45,51.45,0,0,1,16.25,5.64,53.43,53.43,0,0,1,13.41,10.41A50.61,50.61,0,0,1,300,314a43.63,43.63,0,0,1,3.66,16.26,53.33,53.33,0,0,1-1.87,16.33,60.27,60.27,0,0,1-6.42,14.95,62.45,62.45,0,0,1-9.93,12.73l-.06-.06a61.81,61.81,0,0,0,9.1-13.16,57.91,57.91,0,0,0,5.41-14.92,51.19,51.19,0,0,0,.79-15.65,40.32,40.32,0,0,0-4.33-14.75,46.28,46.28,0,0,0-21.84-20.57,44.53,44.53,0,0,0-14.37-3.87l-1.84-.16c-.61-.07-1.25,0-1.87,0-1.28,0-2.43,0-3.89.06-2.72,0-5.43.19-8.19.13-5.49.07-11-.24-16.54-.61a165.09,165.09,0,0,1-16.59-2.24,131,131,0,0,1-16.4-4.37,101,101,0,0,1-15.74-7,90.35,90.35,0,0,1-14.43-9.87,77.76,77.76,0,0,1-12.19-13c-.91-1.19-1.7-2.48-2.55-3.71s-1.56-2.59-2.33-3.88-1.41-2.69-2.05-4.06-1.27-2.77-1.76-4.23l-.78-2.17c-.24-.73-.44-1.48-.66-2.22-.47-1.46-.76-3-1.11-4.53a46.53,46.53,0,0,1-.78-9.59Z"/><line class="cls-2" x1="112.41" y1="78.94" x2="143.58" y2="23.49"/><line class="cls-2" x1="143.58" y1="23.49" x2="173.76" y2="78.94"/><line class="cls-2" x1="173.76" y1="78.94" x2="205.22" y2="23.49"/><line class="cls-2" x1="205.22" y1="23.49" x2="235.11" y2="78.94"/><line class="cls-2" x1="235.11" y1="78.94" x2="266.85" y2="23.49"/><line class="cls-2" x1="266.85" y1="23.49" x2="298.44" y2="78.94"/><line class="cls-2" x1="298.44" y1="78.94" x2="329.3" y2="23.49"/><line class="cls-2" x1="329.3" y1="23.49" x2="362.49" y2="78.94"/><line class="cls-2" x1="309.46" y1="196.33" x2="340.64" y2="140.89"/><line class="cls-2" x1="340.64" y1="140.89" x2="370.81" y2="196.33"/><line class="cls-2" x1="370.81" y1="196.33" x2="402.27" y2="140.89"/><line class="cls-2" x1="402.27" y1="140.89" x2="432.16" y2="196.33"/><line class="cls-2" x1="432.16" y1="196.33" x2="463.9" y2="140.89"/><line class="cls-2" x1="463.9" y1="140.89" x2="495.49" y2="196.33"/><line class="cls-2" x1="495.49" y1="196.33" x2="526.35" y2="140.89"/><line class="cls-2" x1="526.35" y1="140.89" x2="559.54" y2="196.33"/><line class="cls-2" x1="54.67" y1="145.12" x2="84.84" y2="200.56"/><line class="cls-2" x1="146.19" y1="200.56" x2="176.63" y2="145.12"/><line class="cls-2" x1="176.63" y1="145.12" x2="209.2" y2="200.56"/><line class="cls-2" x1="146.19" y1="200.56" x2="116.3" y2="145.12"/><line class="cls-2" x1="84.84" y1="200.56" x2="116.3" y2="145.12"/><line class="cls-2" x1="23.49" y1="200.56" x2="54.67" y2="145.12"/><circle class="cls-3" cx="146.19" cy="200.56" r="23.49"/><circle class="cls-3" cx="209.52" cy="200.56" r="23.49" transform="translate(-58.76 90.34) rotate(-21.41)"/><circle class="cls-3" cx="116.3" cy="145.12" r="23.49"/><circle class="cls-3" cx="177.93" cy="145.12" r="23.49"/><circle class="cls-3" cx="84.84" cy="200.56" r="23.49"/><circle class="cls-3" cx="54.67" cy="145.12" r="23.49"/><circle class="cls-3" cx="23.49" cy="200.56" r="23.49"/><circle class="cls-3" cx="235.11" cy="78.94" r="23.49"/><circle class="cls-3" cx="298.44" cy="78.94" r="23.49"/><circle class="cls-3" cx="205.22" cy="23.49" r="23.49"/><circle class="cls-3" cx="266.85" cy="23.49" r="23.49"/><circle class="cls-3" cx="173.76" cy="78.94" r="23.49"/><circle class="cls-3" cx="143.58" cy="23.49" r="23.49"/><circle class="cls-3" cx="112.41" cy="78.94" r="23.49"/><circle class="cls-3" cx="362.49" cy="78.94" r="23.49"/><circle class="cls-3" cx="329.3" cy="23.49" r="23.49"/><circle class="cls-3" cx="432.16" cy="196.33" r="23.49"/><circle class="cls-3" cx="495.49" cy="196.33" r="23.49"/><circle class="cls-3" cx="402.27" cy="140.89" r="23.49"/><circle class="cls-3" cx="463.9" cy="140.89" r="23.49"/><circle class="cls-3" cx="370.81" cy="196.33" r="23.49"/><circle class="cls-3" cx="340.64" cy="140.89" r="23.49"/><circle class="cls-3" cx="309.46" cy="196.33" r="23.49"/><circle class="cls-3" cx="559.54" cy="196.33" r="23.49"/><circle class="cls-3" cx="526.35" cy="140.89" r="23.49"/></g></g></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 583.03 374.23"><defs><style>.cls-1{fill:#254756;}.cls-2,.cls-4{fill:none;}.cls-2{stroke:#254756;stroke-miterlimit:10;stroke-width:10px;}.cls-3{fill:#f3f0cf;}</style></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><g id="bonsai"><g id="tree"><g id="links"><g id="link-curly"><path class="cls-1" d="M155.05,219.83a41.35,41.35,0,0,0,1,6.4,47.68,47.68,0,0,0,2.16,6.47,56.53,56.53,0,0,0,6.91,12.22,71.84,71.84,0,0,0,9.63,10.67l2.76,2.38c.94.78,1.94,1.49,2.9,2.25,2,1.48,4,2.89,6.09,4.21a105.38,105.38,0,0,0,13.25,7.05,117.12,117.12,0,0,0,14.31,5.34c4.92,1.46,10,2.67,15.08,3.66,2.57.42,5.14.93,7.74,1.21l3.9.5,3.93.36c2.6.27,5.27.34,7.91.52l4.18.25c.72.07,1.43.06,2.15.18l2.15.34a51.45,51.45,0,0,1,16.25,5.64,53.43,53.43,0,0,1,13.41,10.41A50.61,50.61,0,0,1,300,314a43.63,43.63,0,0,1,3.66,16.26,53.33,53.33,0,0,1-1.87,16.33,60.27,60.27,0,0,1-6.42,14.95,62.45,62.45,0,0,1-9.93,12.73l-.06-.06a61.81,61.81,0,0,0,9.1-13.16,57.91,57.91,0,0,0,5.41-14.92,51.19,51.19,0,0,0,.79-15.65,40.32,40.32,0,0,0-4.33-14.75,46.28,46.28,0,0,0-21.84-20.57,44.53,44.53,0,0,0-14.37-3.87l-1.84-.16c-.61-.07-1.25,0-1.87,0-1.28,0-2.43,0-3.89.06-2.72,0-5.43.19-8.19.13-5.49.07-11-.24-16.54-.61a165.09,165.09,0,0,1-16.59-2.24,131,131,0,0,1-16.4-4.37,101,101,0,0,1-15.74-7,90.35,90.35,0,0,1-14.43-9.87,77.76,77.76,0,0,1-12.19-13c-.91-1.19-1.7-2.48-2.55-3.71s-1.56-2.59-2.33-3.88-1.41-2.69-2.05-4.06-1.27-2.77-1.76-4.23l-.78-2.17c-.24-.73-.44-1.48-.66-2.22-.47-1.46-.76-3-1.11-4.53a46.53,46.53,0,0,1-.78-9.59Z"/></g><g id="link-straight"><line class="cls-2" x1="120.2" y1="65.08" x2="135.79" y2="37.35"/><line class="cls-2" x1="151.13" y1="37.35" x2="166.22" y2="65.08"/><line class="cls-2" x1="181.62" y1="65.08" x2="197.35" y2="37.35"/><line class="cls-2" x1="212.69" y1="37.35" x2="227.64" y2="65.08"/><line class="cls-2" x1="243.04" y1="65.08" x2="258.91" y2="37.35"/><line class="cls-2" x1="274.74" y1="37.35" x2="290.54" y2="65.08"/><line class="cls-2" x1="306.15" y1="65.08" x2="321.58" y2="37.35"/><line class="cls-2" x1="337.59" y1="37.35" x2="354.19" y2="65.08"/><line class="cls-2" x1="317.26" y1="182.47" x2="332.84" y2="154.75"/><line class="cls-2" x1="348.18" y1="154.75" x2="363.27" y2="182.47"/><line class="cls-2" x1="378.68" y1="182.47" x2="394.4" y2="154.75"/><line class="cls-2" x1="409.74" y1="154.75" x2="424.69" y2="182.47"/><line class="cls-2" x1="440.1" y1="182.47" x2="455.96" y2="154.75"/><line class="cls-2" x1="471.8" y1="154.75" x2="487.59" y2="182.47"/><line class="cls-2" x1="503.2" y1="182.47" x2="518.63" y2="154.75"/><line class="cls-2" x1="534.65" y1="154.75" x2="551.24" y2="182.47"/><line class="cls-2" x1="62.21" y1="158.98" x2="77.3" y2="186.7"/><line class="cls-2" x1="153.8" y1="186.7" x2="169.02" y2="158.98"/><line class="cls-2" x1="184.77" y1="158.98" x2="201.05" y2="186.7"/><line class="cls-2" x1="138.72" y1="186.7" x2="123.77" y2="158.98"/><line class="cls-2" x1="92.71" y1="186.7" x2="108.44" y2="158.98"/><line class="cls-2" x1="31.29" y1="186.7" x2="46.87" y2="158.98"/></g></g><g id="nodes"><g id="node-fill"><circle class="cls-3" cx="146.19" cy="200.56" r="23.49"/><circle class="cls-3" cx="209.52" cy="200.56" r="23.49" transform="translate(-58.76 90.34) rotate(-21.41)"/><circle class="cls-3" cx="116.3" cy="145.12" r="23.49"/><circle class="cls-3" cx="177.93" cy="145.12" r="23.49"/><circle class="cls-3" cx="84.84" cy="200.56" r="23.49"/><circle class="cls-3" cx="54.67" cy="145.12" r="23.49"/><circle class="cls-3" cx="23.49" cy="200.56" r="23.49"/><circle class="cls-3" cx="235.11" cy="78.94" r="23.49"/><circle class="cls-3" cx="298.44" cy="78.94" r="23.49"/><circle class="cls-3" cx="205.22" cy="23.49" r="23.49"/><circle class="cls-3" cx="266.85" cy="23.49" r="23.49"/><circle class="cls-3" cx="173.76" cy="78.94" r="23.49"/><circle class="cls-3" cx="143.58" cy="23.49" r="23.49"/><circle class="cls-3" cx="112.41" cy="78.94" r="23.49"/><circle class="cls-3" cx="362.49" cy="78.94" r="23.49"/><circle class="cls-3" cx="329.3" cy="23.49" r="23.49"/><circle class="cls-3" cx="432.16" cy="196.33" r="23.49"/><circle class="cls-3" cx="495.49" cy="196.33" r="23.49"/><circle class="cls-3" cx="402.27" cy="140.89" r="23.49"/><circle class="cls-3" cx="463.9" cy="140.89" r="23.49"/><circle class="cls-3" cx="370.81" cy="196.33" r="23.49"/><circle class="cls-3" cx="340.64" cy="140.89" r="23.49"/><circle class="cls-3" cx="309.46" cy="196.33" r="23.49"/><circle class="cls-3" cx="559.54" cy="196.33" r="23.49"/><circle class="cls-3" cx="526.35" cy="140.89" r="23.49"/></g><g id="node-stroke"><path class="cls-4" d="M438.43,173.7a23.49,23.49,0,1,0,16.37,28.9A23.5,23.5,0,0,0,438.43,173.7Zm8,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,446.45,200.46Z"/><path class="cls-4" d="M501.76,173.7a23.49,23.49,0,1,0,16.36,28.9A23.49,23.49,0,0,0,501.76,173.7Zm8,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,509.78,200.46Z"/><path class="cls-4" d="M424.9,147.16A23.49,23.49,0,1,0,396,163.53,23.47,23.47,0,0,0,424.9,147.16Zm-8.25-2.31a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,416.65,144.85Z"/><path class="cls-4" d="M486.54,147.16a23.49,23.49,0,1,0-28.91,16.37A23.49,23.49,0,0,0,486.54,147.16Zm-8.27-2.29a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,478.27,144.87Z"/><path class="cls-4" d="M377.08,173.7a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,377.08,173.7Zm8.18,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,385.26,200.46Z"/><path class="cls-4" d="M363.27,147.16a23.49,23.49,0,1,0-28.9,16.37A23.48,23.48,0,0,0,363.27,147.16ZM355,144.87a14.91,14.91,0,1,1-10.4-18.35A14.91,14.91,0,0,1,355,144.87Z"/><path class="cls-4" d="M315.73,173.7a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,315.73,173.7Zm8.11,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,323.84,200.46Z"/><path class="cls-4" d="M565.8,173.7a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,565.8,173.7Zm8.11,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,573.91,200.46Z"/><path class="cls-4" d="M549,147.16a23.49,23.49,0,1,0-28.9,16.37A23.47,23.47,0,0,0,549,147.16Zm-8.26-2.29a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,540.72,144.87Z"/><path class="cls-4" d="M241.36,56.3a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,241.36,56.3Zm8,26.76A14.91,14.91,0,1,1,239,64.71,14.91,14.91,0,0,1,249.38,83.06Z"/><path class="cls-4" d="M304.69,56.3a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,304.69,56.3Zm8,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,312.71,83.06Z"/><path class="cls-4" d="M227.84,29.76a23.49,23.49,0,1,0-28.91,16.37A23.49,23.49,0,0,0,227.84,29.76Zm-8.26-2.31A14.91,14.91,0,1,1,209.19,9.1,14.92,14.92,0,0,1,219.58,27.45Z"/><path class="cls-4" d="M289.47,29.76a23.49,23.49,0,1,0-28.91,16.37A23.49,23.49,0,0,0,289.47,29.76Zm-8.27-2.29A14.91,14.91,0,1,1,270.81,9.12,14.91,14.91,0,0,1,281.2,27.47Z"/><path class="cls-4" d="M180,56.3a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,180,56.3Zm8.18,26.76A14.91,14.91,0,1,1,177.8,64.71,14.91,14.91,0,0,1,188.19,83.06Z"/><path class="cls-4" d="M166.2,29.76a23.49,23.49,0,1,0-28.9,16.37A23.47,23.47,0,0,0,166.2,29.76Zm-8.26-2.29A14.91,14.91,0,1,1,147.55,9.12,14.91,14.91,0,0,1,157.94,27.47Z"/><path class="cls-4" d="M118.66,56.3A23.49,23.49,0,1,0,135,85.2,23.49,23.49,0,0,0,118.66,56.3Zm8.11,26.76a14.91,14.91,0,1,1-10.39-18.35A14.9,14.9,0,0,1,126.77,83.06Z"/><path class="cls-4" d="M368.74,56.3a23.49,23.49,0,1,0,16.37,28.9A23.49,23.49,0,0,0,368.74,56.3Zm8.1,26.76a14.91,14.91,0,1,1-10.39-18.35A14.91,14.91,0,0,1,376.84,83.06Z"/><path class="cls-4" d="M351.92,29.76A23.49,23.49,0,1,0,323,46.13,23.49,23.49,0,0,0,351.92,29.76Zm-8.27-2.29A14.91,14.91,0,1,1,333.26,9.12,14.91,14.91,0,0,1,343.65,27.47Z"/><path class="cls-4" d="M152.51,177.93a23.49,23.49,0,1,0,16.37,28.9A23.47,23.47,0,0,0,152.51,177.93Zm8,26.75a14.91,14.91,0,1,1-10.4-18.34A14.92,14.92,0,0,1,160.54,204.68Z"/><path class="cls-4" d="M215.84,177.93a23.49,23.49,0,1,0,16.37,28.9A23.47,23.47,0,0,0,215.84,177.93Zm8,26.75a14.91,14.91,0,1,1-10.39-18.34A14.91,14.91,0,0,1,223.86,204.68Z"/><path class="cls-4" d="M139,151.39a23.49,23.49,0,1,0-28.9,16.37A23.49,23.49,0,0,0,139,151.39Zm-8.25-2.31a14.92,14.92,0,1,1-10.4-18.35A14.91,14.91,0,0,1,130.74,149.08Z"/><path class="cls-4" d="M200.62,151.39a23.49,23.49,0,1,0-28.9,16.37A23.49,23.49,0,0,0,200.62,151.39Zm-8.26-2.29A14.91,14.91,0,1,1,182,130.75,14.92,14.92,0,0,1,192.36,149.1Z"/><path class="cls-4" d="M91.17,177.93a23.49,23.49,0,1,0,16.36,28.9A23.48,23.48,0,0,0,91.17,177.93Zm8.18,26.75A14.91,14.91,0,1,1,89,186.34,14.92,14.92,0,0,1,99.35,204.68Z"/><path class="cls-4" d="M77.36,151.39a23.49,23.49,0,1,0-28.9,16.37A23.49,23.49,0,0,0,77.36,151.39Zm-8.27-2.29A14.91,14.91,0,1,1,58.7,130.75,14.91,14.91,0,0,1,69.09,149.1Z"/><path class="cls-4" d="M29.82,177.93a23.49,23.49,0,1,0,16.37,28.9A23.48,23.48,0,0,0,29.82,177.93Zm8.11,26.75a14.91,14.91,0,1,1-10.39-18.34A14.92,14.92,0,0,1,37.93,204.68Z"/></g></g></g></g></g></g></svg>
|
Binary file
|
data/assets/js/entry.js
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
// this file is a monstrosity!
|
5
|
+
export default class Entry {
|
6
|
+
constructor() {
|
7
|
+
// head
|
8
|
+
// this.entryHeadStatus set in initEntryStatus();
|
9
|
+
this.entryHeadCheckbox = document.getElementById('entry-head-checkbox');
|
10
|
+
// head links (box)
|
11
|
+
// this.entryHeadLinksStatus set in initEntryStatus();
|
12
|
+
this.entryHeadLinksCheckbox = document.getElementById('entry-head-links-checkbox');
|
13
|
+
|
14
|
+
// foot
|
15
|
+
// this.entryFootLinksStatus set in initEntryStatus();
|
16
|
+
this.entryFootLinksCheckbox = document.getElementById('entry-foot-links-checkbox');
|
17
|
+
// this.entryFootPostsStatus set in initEntryStatus();
|
18
|
+
this.entryFootPostsCheckbox = document.getElementById('entry-foot-posts-checkbox');
|
19
|
+
|
20
|
+
this.init();
|
21
|
+
}
|
22
|
+
|
23
|
+
init() {
|
24
|
+
this.initEntryStatus();
|
25
|
+
this.bindEvents();
|
26
|
+
}
|
27
|
+
|
28
|
+
bindEvents() {
|
29
|
+
// head
|
30
|
+
this.entryHeadCheckbox.addEventListener('click', () => {
|
31
|
+
this.toggleEntryHeadCollapse();
|
32
|
+
});
|
33
|
+
// head links (box)
|
34
|
+
this.entryHeadLinksCheckbox.addEventListener('click', () => {
|
35
|
+
this.toggleEntryHeadLinksCollapse();
|
36
|
+
});
|
37
|
+
// foot
|
38
|
+
this.entryFootLinksCheckbox.addEventListener('click', () => {
|
39
|
+
this.toggleEntryFootLinksCollapse();
|
40
|
+
});
|
41
|
+
this.entryFootPostsCheckbox.addEventListener('click', () => {
|
42
|
+
this.toggleEntryFootPostsCollapse();
|
43
|
+
});
|
44
|
+
}
|
45
|
+
|
46
|
+
initEntryStatus() {
|
47
|
+
// head
|
48
|
+
this.entryHeadStatus = localStorage.getItem('entry-head-status');
|
49
|
+
if (this.entryHeadStatus !== "open" && this.entryHeadStatus !== "closed") {
|
50
|
+
this.entryHeadStatus = '{{ site.bonsai.entries.toggles.breadcrumbs }}';
|
51
|
+
}
|
52
|
+
this.entryHeadCheckbox.checked = (this.entryHeadStatus === "closed");
|
53
|
+
this.toggleEntryHeadCollapse();
|
54
|
+
|
55
|
+
// head links (box)
|
56
|
+
this.entryHeadLinksStatus = localStorage.getItem('entry-head-links-status');
|
57
|
+
if (this.entryHeadLinksStatus !== "open" && this.entryHeadLinksStatus !== "closed") {
|
58
|
+
this.entryHeadLinksStatus = '{{ site.bonsai.entries.toggles.attr_box }}';
|
59
|
+
}
|
60
|
+
this.entryHeadLinksCheckbox.checked = (this.entryHeadLinksStatus === "closed");
|
61
|
+
this.toggleEntryHeadLinksCollapse();
|
62
|
+
|
63
|
+
// foot
|
64
|
+
this.entryFootLinksStatus = localStorage.getItem('entry-foot-links-status');
|
65
|
+
if (this.entryFootLinksStatus !== "open" && this.entryFootLinksStatus !== "closed") {
|
66
|
+
this.entryFootLinksStatus = '{{ site.bonsai.entries.toggles.foot_links }}';
|
67
|
+
}
|
68
|
+
this.entryFootLinksCheckbox.checked = (this.entryFootLinksStatus === "closed");
|
69
|
+
this.toggleEntryFootLinksCollapse();
|
70
|
+
|
71
|
+
this.entryFootPostsStatus = localStorage.getItem('entry-foot-posts-status');
|
72
|
+
if (this.entryFootPostsStatus !== "open" && this.entryFootPostsStatus !== "closed") {
|
73
|
+
this.entryFootPostsStatus = '{{ site.bonsai.entries.toggles.foot_tagged }}';
|
74
|
+
}
|
75
|
+
this.entryFootPostsCheckbox.checked = (this.entryFootPostsStatus === "closed");
|
76
|
+
this.toggleEntryFootPostsCollapse();
|
77
|
+
}
|
78
|
+
|
79
|
+
toggleEntryHeadCollapse () {
|
80
|
+
// from: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_collapsible
|
81
|
+
var collapsibleEl = document.getElementById('entry-head-nav');
|
82
|
+
if (this.entryHeadCheckbox.checked) {
|
83
|
+
collapsibleEl.style.display = "none";
|
84
|
+
this.entryHeadStatus = "closed";
|
85
|
+
} else {
|
86
|
+
collapsibleEl.style.display = "flex";
|
87
|
+
this.entryHeadStatus = "open";
|
88
|
+
}
|
89
|
+
localStorage.setItem('entry-head-status', this.entryHeadStatus);
|
90
|
+
}
|
91
|
+
|
92
|
+
toggleEntryHeadLinksCollapse () {
|
93
|
+
// from: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_collapsible
|
94
|
+
var collapsibleEl = document.getElementById('attr-box-link-nav');
|
95
|
+
if (this.entryHeadLinksCheckbox.checked) {
|
96
|
+
collapsibleEl.style.display = "none";
|
97
|
+
this.entryHeadLinksStatus = "closed";
|
98
|
+
} else {
|
99
|
+
collapsibleEl.style.display = "flex";
|
100
|
+
this.entryHeadLinksStatus = "open";
|
101
|
+
}
|
102
|
+
localStorage.setItem('entry-head-links-status', this.entryHeadLinksStatus);
|
103
|
+
}
|
104
|
+
|
105
|
+
toggleEntryFootLinksCollapse () {
|
106
|
+
// from: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_collapsible
|
107
|
+
var collapsibleEl = document.getElementById('entry-foot-links-nav');
|
108
|
+
if (this.entryFootLinksCheckbox.checked) {
|
109
|
+
collapsibleEl.style.display = "none";
|
110
|
+
this.entryFootLinksStatus = "closed";
|
111
|
+
} else {
|
112
|
+
collapsibleEl.style.display = "flex";
|
113
|
+
this.entryFootLinksStatus = "open";
|
114
|
+
}
|
115
|
+
localStorage.setItem('entry-foot-links-status', this.entryFootLinksStatus);
|
116
|
+
}
|
117
|
+
|
118
|
+
toggleEntryFootPostsCollapse () {
|
119
|
+
// from: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_collapsible
|
120
|
+
var collapsibleEl = document.getElementById('entry-foot-posts-nav');
|
121
|
+
if (this.entryFootPostsCheckbox.checked) {
|
122
|
+
collapsibleEl.style.display = "none";
|
123
|
+
this.entryFootPostsStatus = "closed";
|
124
|
+
} else {
|
125
|
+
collapsibleEl.style.display = "flex";
|
126
|
+
this.entryFootPostsStatus = "open";
|
127
|
+
}
|
128
|
+
localStorage.setItem('entry-foot-posts-status', this.entryFootPostsStatus);
|
129
|
+
}
|
130
|
+
}
|
data/assets/js/graph.js
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
import JekyllGraph from './jekyll-graph.js';
|
4
|
+
|
5
|
+
export default class GraphNav extends JekyllGraph {
|
6
|
+
|
7
|
+
constructor() {
|
8
|
+
super(); // 'this.graph' + 'this.graphDiv' set in JekyllGraph
|
9
|
+
this.graphKindCheckBox = document.getElementById('graph-kind-checkbox');
|
10
|
+
this.graphKindEmojiSpan = document.getElementById('graph-kind-emoji-span');
|
11
|
+
this.init(); // this.graphKind set in initgraphKind();
|
12
|
+
}
|
13
|
+
|
14
|
+
init() {
|
15
|
+
this.initGraphKind();
|
16
|
+
this.bindEvents();
|
17
|
+
this.draw();
|
18
|
+
}
|
19
|
+
|
20
|
+
bindEvents() {
|
21
|
+
this.graphKindCheckBox.addEventListener('click', () => {
|
22
|
+
this.updateGraphkind();
|
23
|
+
this.draw();
|
24
|
+
});
|
25
|
+
}
|
26
|
+
|
27
|
+
// draw
|
28
|
+
|
29
|
+
draw() {
|
30
|
+
// redraw new chart
|
31
|
+
if (this.graphKindCheckBox.checked) {
|
32
|
+
this.drawTree();
|
33
|
+
} else {
|
34
|
+
this.drawWeb();
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
redraw() {
|
39
|
+
this.updateGraphkind();
|
40
|
+
this.draw();
|
41
|
+
}
|
42
|
+
|
43
|
+
// type
|
44
|
+
|
45
|
+
initGraphKind() {
|
46
|
+
this.graphKind = localStorage.getItem('graph-kind');
|
47
|
+
if (this.graphKind !== "tree" && this.graphKind !== "web") {
|
48
|
+
this.graphKind = '{{ site.bonsai.nav.graph.kind }}';
|
49
|
+
}
|
50
|
+
this.graphKindCheckBox.checked = (this.graphKind === "tree");
|
51
|
+
this.updateGraphkind();
|
52
|
+
}
|
53
|
+
|
54
|
+
updateGraphkind() {
|
55
|
+
if (this.graphKindCheckBox.checked) {
|
56
|
+
this.graphKindEmojiSpan.innerText = "{{ site.data.emoji.web }}";
|
57
|
+
this.graphKind = "tree";
|
58
|
+
} else {
|
59
|
+
this.graphKindEmojiSpan.innerText = "{{ site.data.emoji.tree }}";
|
60
|
+
this.graphKind = "web";
|
61
|
+
}
|
62
|
+
localStorage.setItem('graph-kind', this.graphKind);
|
63
|
+
}
|
64
|
+
}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
import Entry from './entry.js';
|
4
|
+
import SiteNav from './site-nav.js';
|
5
|
+
|
6
|
+
// go
|
7
|
+
// from: https://stackoverflow.com/questions/9899372/pure-javascript-equivalent-of-jquerys-ready-how-to-call-a-function-when-t
|
8
|
+
(() => {
|
9
|
+
initLinks();
|
10
|
+
|
11
|
+
if (!isSafari() && !isMobile()) {
|
12
|
+
applyPencilFilter();
|
13
|
+
}
|
14
|
+
|
15
|
+
new SiteNav();
|
16
|
+
if (document.getElementById('entry')) {
|
17
|
+
new Entry();
|
18
|
+
}
|
19
|
+
})();
|
20
|
+
|
21
|
+
// helpers
|
22
|
+
|
23
|
+
function initLinks() {
|
24
|
+
// web
|
25
|
+
// open external links in new window; wiki-links in current window.
|
26
|
+
document.querySelectorAll('a.web-link').forEach(setupLinkOpen);
|
27
|
+
// wiki
|
28
|
+
// init hp-tooltip.html listeners.
|
29
|
+
document.querySelectorAll('{{ include.wrapperQuerySelector }} a.wiki-link').forEach(setupListeners);
|
30
|
+
// add microdata to wiki links
|
31
|
+
document.querySelectorAll('a.wiki-link').forEach((wikiLink) => wikiLink.classList.add('u-url'));
|
32
|
+
}
|
33
|
+
|
34
|
+
function setupLinkOpen (link) {
|
35
|
+
link.setAttribute("target", "_blank");
|
36
|
+
link.setAttribute("rel", "noopener"); // for security: https://css-tricks.com/use-target_blank/#correct-html
|
37
|
+
}
|
38
|
+
|
39
|
+
function applyPencilFilter() {
|
40
|
+
// apply pencil-filter to all svg images
|
41
|
+
let imgElements = document.getElementsByClassName('embed-image-wrapper');
|
42
|
+
Array.prototype.forEach.call(imgElements, (img) => {
|
43
|
+
if (img.firstElementChild.tagName === "svg") {
|
44
|
+
if ('{{ site.bonsai.svg.filter }}') {
|
45
|
+
// attach filter to svg element's parent because of safari/mobile bug
|
46
|
+
// bug from: https://github.com/Fyrd/caniuse/issues/3803
|
47
|
+
// workaround from: https://newbedev.com/why-is-filter-drop-shadow-causing-my-svg-to-disappear-in-safari
|
48
|
+
img.style.filter = "url(#PencilTexture)";
|
49
|
+
}
|
50
|
+
}
|
51
|
+
});
|
52
|
+
}
|
53
|
+
|
54
|
+
function isMobile() {
|
55
|
+
// from: https://stackoverflow.com/questions/58141018/mobile-device-detection
|
56
|
+
var check = false;
|
57
|
+
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
|
58
|
+
return check;
|
59
|
+
};
|
60
|
+
|
61
|
+
function isSafari() {
|
62
|
+
// Safari 3.0+ "[object HTMLElementConstructor]"
|
63
|
+
return /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification));
|
64
|
+
};
|
data/assets/js/search.js
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
window.store = {
|
5
|
+
{% for doc in site.documents %}
|
6
|
+
{% unless site.bonsai.nav.search.exclude contains doc.type %}
|
7
|
+
"{{ doc.url | slugify }}": {
|
8
|
+
"title": "{{ doc.title | xml_escape }}",
|
9
|
+
"content": {{ doc.content | strip_html | strip_newlines | jsonify }},
|
10
|
+
"status": "{{ doc.status | xml_escape }}",
|
11
|
+
"tags": "{{ doc.tags | xml_escape }}",
|
12
|
+
"emoji": "{{ doc.emoji | xml_escape }}",
|
13
|
+
"url": "{{ doc.url | xml_escape }}",
|
14
|
+
}
|
15
|
+
{% unless forloop.last %},{% endunless %}
|
16
|
+
{% endunless %}
|
17
|
+
{% endfor %}
|
18
|
+
};
|
19
|
+
export default class Search {
|
20
|
+
|
21
|
+
constructor() {
|
22
|
+
this.searchBtn = document.getElementById('search-btn');
|
23
|
+
this.search = document.getElementById('search');
|
24
|
+
this.searchInput = document.getElementById('search-input');
|
25
|
+
this.searchResults = document.getElementById('search-results');
|
26
|
+
this.navContent = document.getElementById('site-nav-content');
|
27
|
+
this.init();
|
28
|
+
}
|
29
|
+
|
30
|
+
init() {
|
31
|
+
this.searchInput.classList.add('hide');
|
32
|
+
this.searchResults.classList.add('hide');
|
33
|
+
this.initIndex();
|
34
|
+
this.bindEvents();
|
35
|
+
}
|
36
|
+
|
37
|
+
bindEvents() {
|
38
|
+
// keys
|
39
|
+
/// cmd/ctrl + k
|
40
|
+
document.addEventListener('keydown', (event) => {
|
41
|
+
const macKeys = (event.metaKey && (event.key === 'k'));
|
42
|
+
const winKeys = (event.ctrlKey && (event.key === 'k'));
|
43
|
+
if (macKeys || winKeys) {
|
44
|
+
event.preventDefault();
|
45
|
+
this.toggleSearch();
|
46
|
+
}
|
47
|
+
});
|
48
|
+
// enter
|
49
|
+
document.addEventListener('keydown', (event) => {
|
50
|
+
if (event.key === 'Enter') {
|
51
|
+
this.doSearch();
|
52
|
+
}
|
53
|
+
});
|
54
|
+
/// esc
|
55
|
+
document.addEventListener('keydown', (event) => {
|
56
|
+
if (event.key === 'Escape') {
|
57
|
+
this.hideSearch();
|
58
|
+
}
|
59
|
+
});
|
60
|
+
// btn
|
61
|
+
this.searchBtn.addEventListener('click', () => {
|
62
|
+
this.toggleSearch();
|
63
|
+
});
|
64
|
+
// unfocus
|
65
|
+
this.searchInput.addEventListener('focusout', (event) => {
|
66
|
+
// click on a search result:
|
67
|
+
// if (event.relatedTarget.nodeName !== 'A')
|
68
|
+
if (!event.relatedTarget) {
|
69
|
+
this.hideSearch();
|
70
|
+
}
|
71
|
+
});
|
72
|
+
}
|
73
|
+
|
74
|
+
initIndex() {
|
75
|
+
// lunr: https://lunrjs.com/
|
76
|
+
// from: https://learn.cloudcannon.com/jekyll/jekyll-search-using-lunr-js/
|
77
|
+
// Initalize lunr with the fields it will be searching on. I've given title
|
78
|
+
// a boost of 10 to indicate matches on this field are more important.
|
79
|
+
this.idx = lunr(function () {
|
80
|
+
this.field('id');
|
81
|
+
this.field('title', { boost: 10 });
|
82
|
+
this.field('status');
|
83
|
+
// this.field('tags');
|
84
|
+
this.field('emoji');
|
85
|
+
this.field('content');
|
86
|
+
|
87
|
+
for (var key in window.store) { // Add the data to lunr
|
88
|
+
this.add({
|
89
|
+
'id': key,
|
90
|
+
'title': window.store[key].title,
|
91
|
+
'status': window.store[key].status,
|
92
|
+
// 'tags': window.store[key].tags,
|
93
|
+
'emoji': window.store[key].emoji,
|
94
|
+
'content': window.store[key].content
|
95
|
+
});
|
96
|
+
}
|
97
|
+
});
|
98
|
+
}
|
99
|
+
|
100
|
+
toggleSearch() {
|
101
|
+
if (this.searchInput.classList.contains('hide')) {
|
102
|
+
this.showSearch();
|
103
|
+
} else {
|
104
|
+
this.hideSearch();
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
showSearch() {
|
109
|
+
this.searchInput.classList.remove('hide');
|
110
|
+
this.searchInput.focus();
|
111
|
+
this.navContent.style.filter = "blur(4px)";
|
112
|
+
}
|
113
|
+
|
114
|
+
hideSearch() {
|
115
|
+
this.searchInput.classList.add('hide');
|
116
|
+
this.searchResults.classList.add('hide');
|
117
|
+
this.navContent.style.filter = "";
|
118
|
+
}
|
119
|
+
|
120
|
+
doSearch() {
|
121
|
+
// from: https://learn.cloudcannon.com/jekyll/jekyll-search-using-lunr-js/
|
122
|
+
var results = this.idx.search(this.searchInput.value);
|
123
|
+
this.displayResults(results, window.store);
|
124
|
+
}
|
125
|
+
|
126
|
+
displayResults(results, store) {
|
127
|
+
if (results.length) {
|
128
|
+
var appendString = '<ul>';
|
129
|
+
|
130
|
+
for (var i = 0; i < results.length; i++) {
|
131
|
+
var item = store[results[i].ref];
|
132
|
+
appendString += '<li>'
|
133
|
+
appendString += '<a href="' + '{{ site.baseurl }}' + item.url + '">';
|
134
|
+
if (item.status) {
|
135
|
+
appendString += '<h6> ' + item.status + ' ' + item.title + '</h6>';
|
136
|
+
} else if (item.emoji) {
|
137
|
+
appendString += '<h6> ' + item.emoji + ' ' + item.title + '</h6>';
|
138
|
+
} else {
|
139
|
+
appendString += '<h6> ' + item.title + '</h6>';
|
140
|
+
}
|
141
|
+
appendString += '<p>' + item.content.substring(0, 150) + '...</p>';
|
142
|
+
appendString += '</a>';
|
143
|
+
appendString += '</li>';
|
144
|
+
}
|
145
|
+
} else {
|
146
|
+
var appendString = '<ul><li>No results found</li></ul>';
|
147
|
+
}
|
148
|
+
this.searchResults.innerHTML = appendString + '</ul>';
|
149
|
+
this.searchResults.classList.remove('hide');
|
150
|
+
}
|
151
|
+
|
152
|
+
// getQueryVariable(variable) {
|
153
|
+
// // from: https://learn.cloudcannon.com/jekyll/jekyll-search-using-lunr-js/
|
154
|
+
// var query = window.location.search.substring(1);
|
155
|
+
// var vars = query.split('&');
|
156
|
+
|
157
|
+
// for (var i = 0; i < vars.length; i++) {
|
158
|
+
// var pair = vars[i].split('=');
|
159
|
+
|
160
|
+
// if (pair[0] === variable) {
|
161
|
+
// return decodeURIComponent(pair[1].replace(/\+/g, '%20'));
|
162
|
+
// }
|
163
|
+
// }
|
164
|
+
// }
|
165
|
+
}
|
@@ -0,0 +1,132 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
import GraphNav from './graph.js';
|
5
|
+
import Search from './search.js';
|
6
|
+
import ThemeColors from './theme-colors.js';
|
7
|
+
import VisitedNav from './visited-nav.js';
|
8
|
+
|
9
|
+
export default class SiteNav {
|
10
|
+
|
11
|
+
constructor() {
|
12
|
+
// bonsai-burger --> [[.]]
|
13
|
+
this.bonsaiBurger = document.getElementById('bonsai-burger-nav-checkbox');
|
14
|
+
this.sideBar = document.getElementById('side-bar');
|
15
|
+
this.mainView = document.getElementById('main');
|
16
|
+
this.bonsai = document.getElementById('nav-bonsai');
|
17
|
+
|
18
|
+
this.bonsaiBurger.addEventListener('click', () => {
|
19
|
+
this.toggleSiteNav();
|
20
|
+
this.graph.redraw();
|
21
|
+
});
|
22
|
+
|
23
|
+
// themes
|
24
|
+
new ThemeColors();
|
25
|
+
|
26
|
+
// search
|
27
|
+
{% if site.bonsai.nav.search.enabled %}
|
28
|
+
this.search = new Search();
|
29
|
+
{% endif %}
|
30
|
+
|
31
|
+
// graph
|
32
|
+
this.graph = new GraphNav();
|
33
|
+
|
34
|
+
// visited nav
|
35
|
+
{% if site.bonsai.nav.visited.enabled %}
|
36
|
+
// attach elements
|
37
|
+
// this.navType set in initNavType();
|
38
|
+
this.navTypeCheckBox = document.getElementById('nav-type-checkbox');
|
39
|
+
this.navTypeEmojiSpan = document.getElementById('nav-type-emoji-span');
|
40
|
+
this.visited = new VisitedNav();
|
41
|
+
this.initNavType();
|
42
|
+
this.navTypeCheckBox.addEventListener('click', () => {
|
43
|
+
this.updateNavType();
|
44
|
+
});
|
45
|
+
{% endif %}
|
46
|
+
|
47
|
+
// visited data
|
48
|
+
// visitedURLs set in initVisitedData();
|
49
|
+
this.deleteVisitedBtn = document.getElementById('delete-btn');
|
50
|
+
this.initVisitedData();
|
51
|
+
this.deleteVisitedBtn.addEventListener('click', () => {
|
52
|
+
this.deleteVisitedData();
|
53
|
+
});
|
54
|
+
}
|
55
|
+
|
56
|
+
// bonsai-burger
|
57
|
+
|
58
|
+
toggleSiteNav() {
|
59
|
+
if (document.getElementById('bonsai-burger-nav-checkbox').checked) {
|
60
|
+
this.sideBar.classList.add('nav-open');
|
61
|
+
this.mainView.classList.add('hide');
|
62
|
+
this.bonsai.hidden = false;
|
63
|
+
} else {
|
64
|
+
this.sideBar.classList.remove('nav-open');
|
65
|
+
this.mainView.classList.remove('hide');
|
66
|
+
this.bonsai.hidden = true;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
// graph <-> visited toggles
|
71
|
+
|
72
|
+
initNavType() {
|
73
|
+
this.navType = localStorage.getItem('nav-type');
|
74
|
+
if (this.navType !== "graph" && this.navType !== "visited") {
|
75
|
+
this.navType = '{{ site.bonsai.nav.type }}';
|
76
|
+
}
|
77
|
+
this.navTypeCheckBox.checked = (this.navType === "graph");
|
78
|
+
this.updateNavType();
|
79
|
+
}
|
80
|
+
|
81
|
+
updateNavType() {
|
82
|
+
if (this.navTypeCheckBox.checked) {
|
83
|
+
this.navTypeEmojiSpan.innerText = "{{ site.data.emoji.visited }}";
|
84
|
+
this.navType = "graph";
|
85
|
+
this.visited.hide();
|
86
|
+
this.graph.graphDiv.classList.remove("hide");
|
87
|
+
} else {
|
88
|
+
this.navTypeEmojiSpan.innerText = "{{ site.data.emoji.graph }}";
|
89
|
+
this.navType = "visited";
|
90
|
+
this.graph.graphDiv.classList.add("hide");
|
91
|
+
this.visited.show();
|
92
|
+
}
|
93
|
+
localStorage.setItem('nav-type', this.navType);
|
94
|
+
}
|
95
|
+
|
96
|
+
// visited-data
|
97
|
+
|
98
|
+
initVisitedData() {
|
99
|
+
// init
|
100
|
+
this.visitedURLs = JSON.parse(localStorage.getItem('visited'));
|
101
|
+
if (!this.visitedURLs) this.visitedURLs = [];
|
102
|
+
// populate
|
103
|
+
if (this.visitedURLs) {
|
104
|
+
// remove duplicates to current (since json and !SortedSet)
|
105
|
+
// step backward so splicing doesn't change indeces as tabs are removed
|
106
|
+
for (var i = this.visitedURLs.length - 1; i > -1; i--) {
|
107
|
+
let aTab = this.visitedURLs[i];
|
108
|
+
if ((aTab['title'] == window.document.title)
|
109
|
+
&& (aTab['url'] == window.location.pathname)) {
|
110
|
+
this.visitedURLs.splice(i, 1);
|
111
|
+
}
|
112
|
+
}
|
113
|
+
this.visitedURLs.push({ title: window.document.title, url: window.location.pathname });
|
114
|
+
localStorage.setItem('visited', JSON.stringify(this.visitedURLs));
|
115
|
+
}
|
116
|
+
// draw
|
117
|
+
{% if site.bonsai.nav.visited.enabled %}
|
118
|
+
this.visited.build(this.visitedURLs);
|
119
|
+
{% endif %}
|
120
|
+
}
|
121
|
+
|
122
|
+
deleteVisitedData() {
|
123
|
+
// reset
|
124
|
+
this.visitedURLs = [];
|
125
|
+
// store
|
126
|
+
localStorage.setItem('visited', JSON.stringify([]));
|
127
|
+
// redraw
|
128
|
+
{% if site.bonsai.nav.visited.enabled %}
|
129
|
+
this.visited.rebuild(this.visitedURLs);
|
130
|
+
{% endif %}
|
131
|
+
}
|
132
|
+
}
|