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.
Files changed (139) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +62 -0
  4. data/_config.yml +269 -0
  5. data/_data/emoji.yml +46 -0
  6. data/_data/themes.yml +145 -0
  7. data/_includes/anchor-headings.html +156 -0
  8. data/_includes/branch.html +18 -0
  9. data/_includes/btn_state.html +14 -0
  10. data/_includes/connect.html +46 -0
  11. data/_includes/cookie-consent.html +79 -0
  12. data/_includes/dates.html +22 -0
  13. data/_includes/hp-tooltip.html +106 -0
  14. data/_includes/img/bullet-ancestor.svg +5 -0
  15. data/_includes/img/bullet-branch.svg +7 -0
  16. data/_includes/img/bullet-tree.svg +9 -0
  17. data/_includes/img/bullet-web.svg +9 -0
  18. data/_includes/img/pencil-filter.svg +17 -0
  19. data/_includes/share.html +47 -0
  20. data/_includes/site-nav.html +100 -0
  21. data/_includes/tags.html +49 -0
  22. data/_includes/themes.scss.liquid +80 -0
  23. data/_includes/toc.html +187 -0
  24. data/_layouts/404.html +10 -0
  25. data/_layouts/about.html +14 -0
  26. data/_layouts/archive.html +77 -0
  27. data/_layouts/base.html +68 -0
  28. data/_layouts/book.html +40 -0
  29. data/_layouts/entry.html +269 -0
  30. data/_layouts/home.html +96 -0
  31. data/_layouts/map.html +17 -0
  32. data/_layouts/post.html +37 -0
  33. data/_layouts/privacy.html +15 -0
  34. data/_layouts/recent.html +66 -0
  35. data/_layouts/state.html +70 -0
  36. data/_layouts/table-wrappers.html +7 -0
  37. data/_layouts/vendor/compress.html +10 -0
  38. data/_sass/base/_code.scss +133 -0
  39. data/_sass/base/_layout.scss +55 -0
  40. data/_sass/base/_link.scss +105 -0
  41. data/_sass/base/_main.scss +96 -0
  42. data/_sass/base/_markdown.scss +281 -0
  43. data/_sass/base/_typography.scss +89 -0
  44. data/_sass/base/code_themes/_gruvbox.scss +92 -0
  45. data/_sass/base/code_themes/_monokai.scss +217 -0
  46. data/_sass/base/code_themes/_solarized.scss +84 -0
  47. data/_sass/components/_btn.scss +95 -0
  48. data/_sass/components/_infobox.scss +48 -0
  49. data/_sass/components/_item.scss +28 -0
  50. data/_sass/components/_search.scss +61 -0
  51. data/_sass/components/_tag_pills.scss +24 -0
  52. data/_sass/components/_visited.scss +42 -0
  53. data/_sass/includes/_anchor_headings.scss +36 -0
  54. data/_sass/includes/_connect.scss +8 -0
  55. data/_sass/includes/_cookie_consent.scss +46 -0
  56. data/_sass/includes/_dates.scss +6 -0
  57. data/_sass/includes/_hp_tooltip.scss +41 -0
  58. data/_sass/includes/_share.scss +10 -0
  59. data/_sass/includes/_site_nav.scss +97 -0
  60. data/_sass/includes/_svg.scss +89 -0
  61. data/_sass/includes/_toc.scss +38 -0
  62. data/_sass/layouts/_404.scss +3 -0
  63. data/_sass/layouts/_about.scss +3 -0
  64. data/_sass/layouts/_archive.scss +26 -0
  65. data/_sass/layouts/_book.scss +17 -0
  66. data/_sass/layouts/_entry.scss +152 -0
  67. data/_sass/layouts/_home.scss +75 -0
  68. data/_sass/layouts/_map.scss +3 -0
  69. data/_sass/layouts/_post.scss +17 -0
  70. data/_sass/layouts/_privacy.scss +3 -0
  71. data/_sass/layouts/_recent.scss +77 -0
  72. data/_sass/layouts/_state.scss +98 -0
  73. data/_sass/main.scss +73 -0
  74. data/_sass/util/_functions.scss +9 -0
  75. data/_sass/util/_variables.scss +113 -0
  76. data/_sass/util/mixins/_buttons.scss +27 -0
  77. data/_sass/util/mixins/_layout.scss +84 -0
  78. data/_sass/util/mixins/_typography.scss +84 -0
  79. data/_sass/vendor/normalize.scss/README.md +7 -0
  80. data/_sass/vendor/normalize.scss/normalize.scss +349 -0
  81. data/assets/css/styles.scss +31 -0
  82. data/assets/font/Cutive_Mono/CutiveMono-Regular.ttf +0 -0
  83. data/assets/font/Cutive_Mono/OFL.txt +93 -0
  84. data/assets/font/Old_Standard_TT/OFL.txt +93 -0
  85. data/assets/font/Old_Standard_TT/OldStandardTT-Bold.ttf +0 -0
  86. data/assets/font/Old_Standard_TT/OldStandardTT-Italic.ttf +0 -0
  87. data/assets/font/Old_Standard_TT/OldStandardTT-Regular.ttf +0 -0
  88. data/assets/font/exo2/Exo2-Italic-VariableFont_wght.ttf +0 -0
  89. data/assets/font/exo2/Exo2-VariableFont_wght.ttf +0 -0
  90. data/assets/font/exo2/OFL.txt +93 -0
  91. data/assets/font/exo2/README.txt +81 -0
  92. data/assets/font/exo2/static/Exo2-Black.ttf +0 -0
  93. data/assets/font/exo2/static/Exo2-BlackItalic.ttf +0 -0
  94. data/assets/font/exo2/static/Exo2-Bold.ttf +0 -0
  95. data/assets/font/exo2/static/Exo2-BoldItalic.ttf +0 -0
  96. data/assets/font/exo2/static/Exo2-ExtraBold.ttf +0 -0
  97. data/assets/font/exo2/static/Exo2-ExtraBoldItalic.ttf +0 -0
  98. data/assets/font/exo2/static/Exo2-ExtraLight.ttf +0 -0
  99. data/assets/font/exo2/static/Exo2-ExtraLightItalic.ttf +0 -0
  100. data/assets/font/exo2/static/Exo2-Italic.ttf +0 -0
  101. data/assets/font/exo2/static/Exo2-Light.ttf +0 -0
  102. data/assets/font/exo2/static/Exo2-LightItalic.ttf +0 -0
  103. data/assets/font/exo2/static/Exo2-Medium.ttf +0 -0
  104. data/assets/font/exo2/static/Exo2-MediumItalic.ttf +0 -0
  105. data/assets/font/exo2/static/Exo2-Regular.ttf +0 -0
  106. data/assets/font/exo2/static/Exo2-SemiBold.ttf +0 -0
  107. data/assets/font/exo2/static/Exo2-SemiBoldItalic.ttf +0 -0
  108. data/assets/font/exo2/static/Exo2-Thin.ttf +0 -0
  109. data/assets/font/exo2/static/Exo2-ThinItalic.ttf +0 -0
  110. data/assets/img/bloomz.svg +1 -0
  111. data/assets/img/bonsai-dark.png +0 -0
  112. data/assets/img/bonsai-dark.svg +106 -0
  113. data/assets/img/bonsai-light.png +0 -0
  114. data/assets/img/bonsai-light.svg +81 -0
  115. data/assets/img/bonsai-star.png +0 -0
  116. data/assets/img/bonsai-star.svg +1 -0
  117. data/assets/img/books/the-ancient-art-of-bonsai.png +0 -0
  118. data/assets/img/favicon-dark.png +0 -0
  119. data/assets/img/favicon-light.png +0 -0
  120. data/assets/img/garden.svg +1 -0
  121. data/assets/img/jekyll.png +0 -0
  122. data/assets/img/jekyll.svg +3 -0
  123. data/assets/img/nav-base-dark.svg +1 -0
  124. data/assets/img/nav-base-light.svg +1 -0
  125. data/assets/img/nav-base-star.svg +1 -0
  126. data/assets/img/nav-bonsai-dark.svg +1 -0
  127. data/assets/img/nav-bonsai-light.svg +1 -0
  128. data/assets/img/nav-bonsai-star.svg +1 -0
  129. data/assets/img/wikibonsai-way.png +0 -0
  130. data/assets/js/entry.js +130 -0
  131. data/assets/js/graph.js +64 -0
  132. data/assets/js/scripts.js +64 -0
  133. data/assets/js/search.js +165 -0
  134. data/assets/js/site-nav.js +132 -0
  135. data/assets/js/theme-colors.js +57 -0
  136. data/assets/js/vendor/lunr.js +3475 -0
  137. data/assets/js/vendor/lunr.min.js +6 -0
  138. data/assets/js/visited-nav.js +65 -0
  139. 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
@@ -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
+ }
@@ -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
+ };
@@ -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
+ }