jekyll-wikibonsai 0.0.9 → 0.0.10

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 (134) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +57 -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-net-web.svg +9 -0
  17. data/_includes/img/bullet-tree.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 +156 -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 +81 -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/bonsai-dark.png +0 -0
  111. data/assets/img/bonsai-dark.svg +106 -0
  112. data/assets/img/bonsai-light.png +0 -0
  113. data/assets/img/bonsai-light.svg +81 -0
  114. data/assets/img/bonsai-star.png +0 -0
  115. data/assets/img/bonsai-star.svg +1 -0
  116. data/assets/img/books/the-ancient-art-of-bonsai.png +0 -0
  117. data/assets/img/favicon-dark.png +0 -0
  118. data/assets/img/favicon-light.png +0 -0
  119. data/assets/img/nav-base-dark.svg +1 -0
  120. data/assets/img/nav-base-light.svg +1 -0
  121. data/assets/img/nav-base-star.svg +1 -0
  122. data/assets/img/nav-bonsai-dark.svg +1 -0
  123. data/assets/img/nav-bonsai-light.svg +1 -0
  124. data/assets/img/nav-bonsai-star.svg +1 -0
  125. data/assets/js/entry.js +130 -0
  126. data/assets/js/graph.js +64 -0
  127. data/assets/js/scripts.js +64 -0
  128. data/assets/js/search.js +165 -0
  129. data/assets/js/site-nav.js +132 -0
  130. data/assets/js/theme-colors.js +57 -0
  131. data/assets/js/vendor/lunr.js +3475 -0
  132. data/assets/js/vendor/lunr.min.js +6 -0
  133. data/assets/js/visited-nav.js +65 -0
  134. metadata +135 -2
@@ -0,0 +1,18 @@
1
+ <!-- from: https://jekyllrb.com/tutorials/navigation/#scenario-9-nested-tree-navigation-with-recursion -->
2
+ <ul>
3
+ {% for child in include.children %}
4
+ {% assign doc = site.documents | where: "url", child.url | first %}
5
+ <li>
6
+ <span>{% include img/bullet-branch.svg %}</span>
7
+ {% if doc %}
8
+ <a class="wiki-link" href="{{ doc.url }}">{{ doc.title }}</a>
9
+ {% else %}
10
+ <span class="text--small text--no-point">{{ child.text }}</span>
11
+ {% endif %}
12
+ {% if child.children.size > 0 %}
13
+ {% assign child_nodes = page.nodes | where_exp: "node", "child.children contains node.text" %}
14
+ {% include branch.html children=child_nodes %}
15
+ {% endif %}
16
+ </li>
17
+ {% endfor %}
18
+ </ul>
@@ -0,0 +1,14 @@
1
+ {% comment %}
2
+
3
+ Usage: (where 'status' in 'page.status' is a yml list of strings)
4
+ {% include btn_state.html states=page.status %}
5
+
6
+ Parameters:
7
+ * states (array) - a page's status which maps to a state document.
8
+
9
+ {% endcomment %}
10
+
11
+ {% for stat_tag in include.states %}
12
+ {% assign state = site.states | find_exp: "item", "item.emoji == stat_tag" %}
13
+ <a class="stat-tag" href="{{ state.url | relative_url }}" title={{ state.title }}>{{ state.emoji }}</a>
14
+ {% endfor %}
@@ -0,0 +1,46 @@
1
+ <!-- from: https://jekyllcodex.org/without-plugin/connect-buttons/ -->
2
+ <style>
3
+ #connect-buttons {display: inline-block; vertical-align: middle; }
4
+ #connect-buttons:after {content: ""; display: block; clear: both;}
5
+ #connect-buttons > div {
6
+ position: relative;
7
+ text-align: left;
8
+ height: 36px;
9
+ width: 32px;
10
+ float: left;
11
+ text-align: center;
12
+ }
13
+ #connect-buttons > div > svg {height: 16px; fill: #959396; margin-top: 10px;} /* $grey-dk-000 */
14
+ #connect-buttons > div:hover {cursor: pointer;}
15
+ #connect-buttons > div.facebook:hover > svg {fill: #3B5998;}
16
+ #connect-buttons > div.github:hover > svg {fill: #000000;}
17
+ #connect-buttons > div.twitter:hover > svg {fill: #55ACEE;}
18
+ #connect-buttons > div.linkedin:hover > svg {fill: #0077b5;}
19
+ #connect-buttons > div.pinterest:hover > svg {fill: #CB2027;}
20
+ #connect-buttons > div.rss:hover > svg {fill: #ECB13D;}
21
+ #connect-buttons > div.gplus:hover > svg {fill: #dd4b39;}
22
+ #connect-buttons > div.mail:hover > svg {fill: #5c5962;} /* $grey-dk-100 */
23
+ #connect-buttons > div.instagram:hover > svg {fill: #C73B92;}
24
+ #connect-buttons > div.facebook > svg {height: 18px; margin-top: 9px;}
25
+ #connect-buttons > div.github > svg {height: 18px; margin-top: 9px;}
26
+ #connect-buttons > div.twitter > svg {height: 20px; margin-top: 8px;}
27
+ #connect-buttons > div.linkedin > svg {height: 19px; margin-top: 7px;}
28
+ #connect-buttons > div.pinterest > svg {height: 20px; margin-top: 9px;}
29
+ #connect-buttons > div.rss > svg {height: 16px; margin-top: 10px;}
30
+ #connect-buttons > div.gplus > svg {height: 17px; margin-top: 9px; position: relative; left: 1px;}
31
+ #connect-buttons > div.mail > svg {height: 14px; margin-top: 11px;}
32
+ </style>
33
+
34
+ <div class="connect-bar">
35
+ <span class="connect-icon" title="Connect and Follow">
36
+ {{ site.data.emoji.connect }}
37
+ </span>
38
+ <div id="connect-buttons">
39
+ {% if site.social.connect.url.facebook %}<div class="facebook" title="Connect on Facebook" onclick="window.open('{{ site.social.connect.url.facebook }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1343 12v264h-157q-86 0-116 36t-30 108v189h293l-39 296h-254v759h-306v-759h-255v-296h255v-218q0-186 104-288.5t277-102.5q147 0 228 12z"/></svg></div>{% endif %}
40
+ {% if site.social.connect.url.github %}<div class="github" title="Connect on Github" onclick="window.open('{{ site.social.connect.url.github }}');"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg></div>{% endif %}
41
+ {% if site.social.connect.url.linkedin %}<div class="linkedin" title="Connect on Linkedin" onclick="window.open('{{ site.social.connect.url.linkedin }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M477 625v991h-330v-991h330zm21-306q1 73-50.5 122t-135.5 49h-2q-82 0-132-49t-50-122q0-74 51.5-122.5t134.5-48.5 133 48.5 51 122.5zm1166 729v568h-329v-530q0-105-40.5-164.5t-126.5-59.5q-63 0-105.5 34.5t-63.5 85.5q-11 30-11 81v553h-329q2-399 2-647t-1-296l-1-48h329v144h-2q20-32 41-56t56.5-52 87-43.5 114.5-15.5q171 0 275 113.5t104 332.5z"/></svg></div>{% endif %}
42
+ {% if site.social.connect.url.pinterest %}<div class="pinterest" title="Connect on Pinterest" onclick="window.open('{{ site.social.connect.url.pinterest }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M256 597q0-108 37.5-203.5t103.5-166.5 152-123 185-78 202-26q158 0 294 66.5t221 193.5 85 287q0 96-19 188t-60 177-100 149.5-145 103-189 38.5q-68 0-135-32t-96-88q-10 39-28 112.5t-23.5 95-20.5 71-26 71-32 62.5-46 77.5-62 86.5l-14 5-9-10q-15-157-15-188 0-92 21.5-206.5t66.5-287.5 52-203q-32-65-32-169 0-83 52-156t132-73q61 0 95 40.5t34 102.5q0 66-44 191t-44 187q0 63 45 104.5t109 41.5q55 0 102-25t78.5-68 56-95 38-110.5 20-111 6.5-99.5q0-173-109.5-269.5t-285.5-96.5q-200 0-334 129.5t-134 328.5q0 44 12.5 85t27 65 27 45.5 12.5 30.5q0 28-15 73t-37 45q-2 0-17-3-51-15-90.5-56t-61-94.5-32.5-108-11-106.5z"/></svg></div>{% endif %}
43
+ {% if site.social.connect.url.twitter %}<div class="twitter" title="Connect on Twitter" onclick="window.open('{{ site.social.connect.url.twitter }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1684 408q-67 98-162 167 1 14 1 42 0 130-38 259.5t-115.5 248.5-184.5 210.5-258 146-323 54.5q-271 0-496-145 35 4 78 4 225 0 401-138-105-2-188-64.5t-114-159.5q33 5 61 5 43 0 85-11-112-23-185.5-111.5t-73.5-205.5v-4q68 38 146 41-66-44-105-115t-39-154q0-88 44-163 121 149 294.5 238.5t371.5 99.5q-8-38-8-74 0-134 94.5-228.5t228.5-94.5q140 0 236 102 109-21 205-78-37 115-142 178 93-10 186-50z"/></svg></div>{% endif %}
44
+ {% if site.social.connect.url.rss %}<div class="rss" title="Connect RSS Feed" onclick="window.open('{{ site.social.connect.url.rss }}');"><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795.001 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-3.368c10.58.046 19.152 8.594 19.183 19.188h4.817c-.03-13.231-10.755-23.954-24-24v4.812z"/></svg></div>{% endif %}
45
+ </div>
46
+ </div>
@@ -0,0 +1,79 @@
1
+ <!-- from: https://jekyllcodex.org/without-plugin/cookie-consent/ -->
2
+ <!-- duplicate code with cookie-consent-response.html -->
3
+ <div id="cookie-consent">
4
+ <span>This site uses third party cookies and scripts to improve the functionality of this website.</span>
5
+ <a id="cookie-consent-response-accept" class="btn" title="Ok">
6
+ {{ site.data.emoji.approve }}
7
+ </a>
8
+ <a id="cookie-consent-hmm" class="btn" href="{{ '/privacy' | relative_url }}" title="Hmm...Tell me more...">
9
+ {{ site.data.emoji.consider }}
10
+ </a>
11
+ {% if site.bonsai.debug %}
12
+ <a id="cookie-consent-response-reject" class="btn" title="Nope!">
13
+ {{ site.data.emoji.disapprove }}
14
+ </a>
15
+ {% endif %}
16
+ </div>
17
+ <script>
18
+ function createCookie(name,value,days) {
19
+ var expires = "";
20
+ if (days) {
21
+ var date = new Date();
22
+ date.setTime(date.getTime() + (days*24*60*60*1000));
23
+ expires = "; expires=" + date.toUTCString();
24
+ }
25
+ document.cookie = name + "=" + value + expires + "; path=/";
26
+ }
27
+ function readCookie(name) {
28
+ var nameEQ = name + "=";
29
+ var ca = document.cookie.split(';');
30
+ for(var i=0;i < ca.length;i++) {
31
+ var c = ca[i];
32
+ while (c.charAt(0)==' ') c = c.substring(1,c.length);
33
+ if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
34
+ }
35
+ return null;
36
+ }
37
+ function eraseCookie(name) {
38
+ createCookie(name,"",-1);
39
+ }
40
+ function clearCookies() {
41
+ var cookies = document.cookie.split(";");
42
+ for (var i = 0; i < cookies.length; i++) {
43
+ eraseCookie(cookies[i].split("=")[0]);
44
+ }
45
+ }
46
+ document.getElementById('cookie-consent-response-accept').addEventListener("click",function() {
47
+ clearCookies();
48
+ createCookie('cookie-consent-accepted','true',31);
49
+ document.getElementById('cookie-consent').style.display = 'none';
50
+ location.reload();
51
+ });
52
+
53
+ {% if site.bonsai.debug %}
54
+ document.getElementById('cookie-consent-response-reject').addEventListener("click",function() {
55
+ clearCookies();
56
+ createCookie('cookie-consent-declined','true',10);
57
+ document.getElementById('cookie-consent').style.display = 'none';
58
+ location.reload();
59
+ });
60
+ {% else %}
61
+ /**
62
+ * from: https://jekyllcodex.org/without-plugin/metrics/Z
63
+ * (use multi-line comment because compression causes single line to comment out entire file)
64
+ * */
65
+ var _gaq = _gaq || [];
66
+ _gaq.push(['_setAccount', '{{ site.ga_tracking }}']);
67
+ _gaq.push(['_gat._forceSSL']);
68
+ _gaq.push(['_gat._anonymizeIp']);
69
+ _gaq.push(['_trackPageview']);
70
+
71
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
72
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
73
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
74
+ {% endif %}
75
+
76
+ if ((readCookie('cookie-consent-accepted')!=='true') && (readCookie('cookie-consent-declined')!=='true')) {
77
+ document.getElementById('cookie-consent').style.display = 'flex';
78
+ }
79
+ </script>
@@ -0,0 +1,22 @@
1
+ {% comment %}
2
+
3
+ Usage:
4
+ {% include dates.html updated=page.updated date=page.date %}
5
+
6
+ Parameters:
7
+ * updated (seconds) - unix epoch time of page update.
8
+ * published (datetime) - datetime of page publish.
9
+
10
+ {% endcomment %}
11
+
12
+ <div class="dates text--date">
13
+ <div>
14
+ <a class="stat-tag btn--blue" href="{{ '/recent' | relative_url }}" title="Published">{{ site.data.emoji.published }}</a>
15
+ <time class="dt-published">{{ include.date | date: site.bonsai.date_format }}</time>
16
+ </div>
17
+ <div>
18
+ <a class="stat-tag btn--blue" href="{{ '/recent' | relative_url }}" title="Updated">{{ site.data.emoji.updated }}</a>
19
+ <!-- 'slice' because epoch timestamps currently use milliseconds -->
20
+ <time class="dt-updated">{{ include.updated | slice: 0, 10 | date: site.bonsai.date_format }}</time>
21
+ </div>
22
+ </div>
@@ -0,0 +1,106 @@
1
+ <!-- "hover-preview tooltip"
2
+
3
+ with help from: https://github.com/maximevaillancourt/digital-garden-jekyll-template/blob/master/_includes/link-previews.html
4
+
5
+ for hover-preview to work, every page should define...
6
+ - at a minimum:
7
+ - 'hp-title'
8
+ - 'hp-content'
9
+ - optionally
10
+ - 'hp-header'
11
+ ...in a div that wraps the desired element, so the hover-preview can properly build the content to display
12
+
13
+ -->
14
+
15
+ <style>
16
+ /* leave id for opacity toggle */
17
+ #hp-tooltip {
18
+ opacity: 0;
19
+ transition: opacity 100ms;
20
+ }
21
+ </style>
22
+
23
+ <div id="hp-tooltip" class="hp-tooltip">
24
+ <div id='hp-tooltip-content'></div>
25
+ </div>
26
+ <iframe id="hp-iframe" src=""></iframe>
27
+
28
+ <script>
29
+ var opacityTimeout;
30
+ var contentTimeout;
31
+ var transitionDurationMs = 100;
32
+
33
+ var iframe = document.getElementById('hp-iframe');
34
+ var tooltip = document.getElementById('hp-tooltip');
35
+ var tooltipContent = document.getElementById('hp-tooltip-content');
36
+
37
+ function hideTooltip() {
38
+ opacityTimeout = setTimeout(function() {
39
+ tooltip.style.opacity = 0;
40
+ contentTimeout = setTimeout(function() {
41
+ tooltipContent.innerHTML = '';
42
+ tooltip.style.display = 'none';
43
+ }, transitionDurationMs + 1);
44
+ }, transitionDurationMs)
45
+ }
46
+
47
+ function showTooltip(event) {
48
+ var elem = event.target;
49
+ var elem_props = elem.getClientRects()[elem.getClientRects().length - 1];
50
+ var top = window.pageYOffset || document.documentElement.scrollTop;
51
+
52
+ if (event.target.host === window.location.host) {
53
+ iframe.src = event.target.href;
54
+ iframe.onload = function() {
55
+ let title = iframe.contentWindow.document.querySelector('.hp-title').innerHTML;
56
+ let content = iframe.contentWindow.document.querySelector('.hp-content').innerHTML;
57
+ // populate header breadcrumbs if they exist
58
+ if (iframe.contentWindow.document.querySelector('.hp-header')) {
59
+ let header = iframe.contentWindow.document.querySelector('.hp-header').innerHTML;
60
+ tooltipContent.innerHTML = header + title + content;
61
+ // everything else (doesn't have header breadcrumbs)
62
+ } else {
63
+ tooltipContent.innerHTML = title + content;
64
+ }
65
+ tooltip.style.display = 'block';
66
+ setTimeout(function() {
67
+ tooltip.style.opacity = 1;
68
+ }, 1);
69
+ };
70
+
71
+ tooltip.style.left = elem_props.left - (tooltip.offsetWidth / 2) + (elem_props.width / 2) + "px";
72
+ if ((window.innerHeight - elem_props.top) < (tooltip.offsetHeight)) {
73
+ tooltip.style.top = elem_props.top + top - tooltip.offsetHeight - 10 + "px";
74
+ } else if ((window.innerHeight - elem_props.top) > (tooltip.offsetHeight)) {
75
+ tooltip.style.top = elem_props.top + top + 35 + "px";
76
+ }
77
+
78
+ if ((elem_props.left + (elem_props.width / 2)) < (tooltip.offsetWidth / 2)) {
79
+ tooltip.style.left = "10px";
80
+ } else if ((document.body.clientWidth - elem_props.left - (elem_props.width / 2)) < (tooltip.offsetWidth / 2)) {
81
+ tooltip.style.left = document.body.clientWidth - tooltip.offsetWidth - 20 + "px";
82
+ }
83
+ }
84
+ }
85
+
86
+ function setupListeners(linkElement) {
87
+ linkElement.addEventListener('mouseleave', function(_event) {
88
+ hideTooltip();
89
+ });
90
+
91
+ tooltip.addEventListener('mouseleave', function(_event) {
92
+ hideTooltip();
93
+ });
94
+
95
+ linkElement.addEventListener('mouseenter', function(event) {
96
+ clearTimeout(opacityTimeout);
97
+ clearTimeout(contentTimeout);
98
+ showTooltip(event);
99
+ });
100
+
101
+ tooltip.addEventListener('mouseenter', function(event) {
102
+ clearTimeout(opacityTimeout);
103
+ clearTimeout(contentTimeout);
104
+ });
105
+ }
106
+ </script>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 50 50" overflow="visible" stroke-width="5" stroke-linecap="round">
2
+ <line class="bullet-link" x1="0" y1="5" x2="25" y2="25" stroke="#8C6239" />
3
+ <line class="bullet-link" x1="0" y1="45" x2="25" y2="25" stroke="#8C6239" />
4
+ <circle class="bullet-node" cx="25" cy="25" r="10" fill="#31AF31" />
5
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 50 50" overflow="visible" stroke-width="5" stroke-linecap="round">
2
+ <line class="bullet-link" x1="5" y1="33" x2="5" y2="5" stroke="#8C6239"/>
3
+ <line class="bullet-link" x1="5" y1="33" x2="33" y2="33" stroke="#8C6239"/>
4
+ <circle class="bullet-node" cx="5" cy="5" r="6" fill="#31AF31"/>
5
+ <circle class="bullet-node" cx="5" cy="33" r="6" fill="#31AF31"/>
6
+ <circle class="bullet-node" cx="33" cy="33" r="6" fill="#31AF31"/>
7
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg class="graph-icon" xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 50 50" overflow="visible" stroke-width="5" stroke-linecap="round">
2
+ <line class="bullet-link" x1="25" y1="33" x2="2" y2="50" stroke="#8C6239" />
3
+ <line class="bullet-link" x1="25" y1="33" x2="25" y2="5" stroke="#8C6239" />
4
+ <line class="bullet-link" x1="25" y1="33" x2="47" y2="50" stroke="#8C6239" />
5
+ <circle class="bullet-node" cx="25" cy="33" r="10" fill="#31AF31"/>
6
+ <circle class="bullet-node" cx="2" cy="50" r="6" fill="#31AF31" />
7
+ <circle class="bullet-node" cx="25" cy="5" r="6" fill="#31AF31" />
8
+ <circle class="bullet-node" cx="47" cy="50" r="6" fill="#31AF31" />
9
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg class="graph-icon" xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 50 50" overflow="visible" stroke-width="5" stroke-linecap="round">
2
+ <line class="bullet-link" x1="20" y1="25" x2="5" y2="50" stroke="#8C6239" />
3
+ <line class="bullet-link" x1="25" y1="25" x2="25" y2="50" stroke="#8C6239" />
4
+ <line class="bullet-link" x1="30" y1="25" x2="45" y2="50" stroke="#8C6239" />
5
+ <circle class="bullet-node" cx="25" cy="20" r="10" fill="#31AF31" />
6
+ <circle class="bullet-node" cx="5" cy="50" r="6" fill="#31AF31" />
7
+ <circle class="bullet-node" cx="25" cy="50" r="6" fill="#31AF31" />
8
+ <circle class="bullet-node" cx="45" cy="50" r="6" fill="#31AF31" />
9
+ </svg>
@@ -0,0 +1,17 @@
1
+ <!-- due to a chromium bug regarding svg-reuse...: https://bugs.chromium.org/p/chromium/issues/detail?id=109212 -->
2
+ <!-- ...using this hacky off-screen-style from: https://stackoverflow.com/questions/67961573/how-to-hide-reusable-svg-with-filter-that-has-filterunits-userspaceonuse#comment120130719_67961573 -->
3
+ <svg xmlns="http://www.w3.org/2000/svg" height="0" width="0" style="absolute + top:-1000vw;">
4
+ <!-- from: https://css-tricks.com/creating-a-pencil-effect-in-svg/ -->
5
+ <filter id="PencilTexture" x="0%" y="0%" width="100%" height="100%" filterUnits="objectBoundingBox">
6
+ <feTurbulence type="fractalNoise" baseFrequency="0.5" numOctaves="5" stitchTiles="stitch" result="f1">
7
+ </feTurbulence>
8
+ <feColorMatrix type="matrix" values="0 0 0 0 0, 0 0 0 0 0, 0 0 0 0 0, 0 0 0 -1.5 1.5" result="f2">
9
+ </feColorMatrix>
10
+ <feComposite operator="in" in2="f2b" in="SourceGraphic" result="f3">
11
+ </feComposite>
12
+ <feTurbulence type="fractalNoise" baseFrequency="1.2" numOctaves="3" result="noise">
13
+ </feTurbulence>
14
+ <feDisplacementMap xChannelSelector="R" yChannelSelector="G" scale="2.5" in="f3" result="f4">
15
+ </feDisplacementMap>
16
+ </filter>
17
+ </svg>
@@ -0,0 +1,47 @@
1
+ <!-- from: https://jekyllcodex.org/without-plugin/share-buttons/ -->
2
+ {% if include.pageurl != nil and include.pageurl != '' %}
3
+ {% assign pageurl = include.pageurl %}
4
+ {% else %}
5
+ {% assign pageurl = page.url | relative_url %}
6
+ {% endif %}
7
+
8
+ <style>
9
+ #share-buttons {display: inline-block; vertical-align: middle; }
10
+ #share-buttons:after {content: ""; display: block; clear: both;}
11
+ #share-buttons > div {
12
+ position: relative;
13
+ text-align: left;
14
+ height: 36px;
15
+ width: 32px;
16
+ float: left;
17
+ text-align: center;
18
+ }
19
+ #share-buttons > div > svg {height: 16px; fill: #959396; margin-top: 10px;} /* $grey-dk-000 */
20
+ #share-buttons > div:hover {cursor: pointer;}
21
+ #share-buttons > div.facebook:hover > svg {fill: #3B5998;}
22
+ #share-buttons > div.twitter:hover > svg {fill: #55ACEE;}
23
+ #share-buttons > div.linkedin:hover > svg {fill: #0077b5;}
24
+ #share-buttons > div.pinterest:hover > svg {fill: #CB2027;}
25
+ #share-buttons > div.gplus:hover > svg {fill: #dd4b39;}
26
+ #share-buttons > div.mail:hover > svg {fill: #5c5962;} /* $grey-dk-100 */
27
+ #share-buttons > div.instagram:hover > svg {fill: #C73B92;}
28
+ #share-buttons > div.facebook > svg {height: 18px; margin-top: 9px;}
29
+ #share-buttons > div.twitter > svg {height: 20px; margin-top: 8px;}
30
+ #share-buttons > div.linkedin > svg {height: 19px; margin-top: 7px;}
31
+ #share-buttons > div.pinterest > svg {height: 20px; margin-top: 9px;}
32
+ #share-buttons > div.gplus > svg {height: 17px; margin-top: 9px; position: relative; left: 1px;}
33
+ #share-buttons > div.mail > svg {height: 14px; margin-top: 11px;}
34
+ </style>
35
+
36
+ <div class="share-bar">
37
+ <span class="share-icon" title="Share This">
38
+ {{ site.data.emoji.share }}
39
+ </span>
40
+ <div id="share-buttons">
41
+ {% if site.social.share.type contains 'email' %}<div class="mail" title="Share this through Email" onclick="window.open('mailto:?&body={{ site.url }}{{ site.baseurl }}{{ pageurl }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1792 710v794q0 66-47 113t-113 47h-1472q-66 0-113-47t-47-113v-794q44 49 101 87 362 246 497 345 57 42 92.5 65.5t94.5 48 110 24.5h2q51 0 110-24.5t94.5-48 92.5-65.5q170-123 498-345 57-39 100-87zm0-294q0 79-49 151t-122 123q-376 261-468 325-10 7-42.5 30.5t-54 38-52 32.5-57.5 27-50 9h-2q-23 0-50-9t-57.5-27-52-32.5-54-38-42.5-30.5q-91-64-262-182.5t-205-142.5q-62-42-117-115.5t-55-136.5q0-78 41.5-130t118.5-52h1472q65 0 112.5 47t47.5 113z"/></svg></div>{% endif %}
42
+ {% if site.social.share.type contains 'facebook' %}<div class="facebook" title="Share this on Facebook" onclick="window.open('http://www.facebook.com/share.php?u={{ site.url }}{{ site.baseurl }}{{ pageurl }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1343 12v264h-157q-86 0-116 36t-30 108v189h293l-39 296h-254v759h-306v-759h-255v-296h255v-218q0-186 104-288.5t277-102.5q147 0 228 12z"/></svg></div>{% endif %}
43
+ {% if site.social.share.type contains 'linkedin' %}<div class="linkedin" title="Share this on Linkedin" onclick="window.open('https://www.linkedin.com/shareArticle?mini=true&url={{ site.url }}{{ site.baseurl }}{{ pageurl }}&title=&summary=&source=');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M477 625v991h-330v-991h330zm21-306q1 73-50.5 122t-135.5 49h-2q-82 0-132-49t-50-122q0-74 51.5-122.5t134.5-48.5 133 48.5 51 122.5zm1166 729v568h-329v-530q0-105-40.5-164.5t-126.5-59.5q-63 0-105.5 34.5t-63.5 85.5q-11 30-11 81v553h-329q2-399 2-647t-1-296l-1-48h329v144h-2q20-32 41-56t56.5-52 87-43.5 114.5-15.5q171 0 275 113.5t104 332.5z"/></svg></div>{% endif %}
44
+ {% if site.social.share.type contains 'pinterest' %}<div class="pinterest" title="Share this on Pinterest" onclick="window.open('https://pinterest.com/pin/create/button/?url=&media={{ site.url }}{{ site.baseurl }}{{ page.image }}&description=');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M256 597q0-108 37.5-203.5t103.5-166.5 152-123 185-78 202-26q158 0 294 66.5t221 193.5 85 287q0 96-19 188t-60 177-100 149.5-145 103-189 38.5q-68 0-135-32t-96-88q-10 39-28 112.5t-23.5 95-20.5 71-26 71-32 62.5-46 77.5-62 86.5l-14 5-9-10q-15-157-15-188 0-92 21.5-206.5t66.5-287.5 52-203q-32-65-32-169 0-83 52-156t132-73q61 0 95 40.5t34 102.5q0 66-44 191t-44 187q0 63 45 104.5t109 41.5q55 0 102-25t78.5-68 56-95 38-110.5 20-111 6.5-99.5q0-173-109.5-269.5t-285.5-96.5q-200 0-334 129.5t-134 328.5q0 44 12.5 85t27 65 27 45.5 12.5 30.5q0 28-15 73t-37 45q-2 0-17-3-51-15-90.5-56t-61-94.5-32.5-108-11-106.5z"/></svg></div>{% endif %}
45
+ {% if site.social.share.type contains 'twitter' %}<div class="twitter" title="Share this on Twitter" onclick="window.open('http://twitter.com/intent/tweet?url={{ site.url }}{{ site.baseurl }}{{ pageurl }}');"><svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1684 408q-67 98-162 167 1 14 1 42 0 130-38 259.5t-115.5 248.5-184.5 210.5-258 146-323 54.5q-271 0-496-145 35 4 78 4 225 0 401-138-105-2-188-64.5t-114-159.5q33 5 61 5 43 0 85-11-112-23-185.5-111.5t-73.5-205.5v-4q68 38 146 41-66-44-105-115t-39-154q0-88 44-163 121 149 294.5 238.5t371.5 99.5q-8-38-8-74 0-134 94.5-228.5t228.5-94.5q140 0 236 102 109-21 205-78-37 115-142 178 93-10 186-50z"/></svg></div>{% endif %}
46
+ </div>
47
+ </div>
@@ -0,0 +1,100 @@
1
+ <nav id="site-nav" class="site-nav" role="navigation">
2
+ <header>
3
+ <span>
4
+ <a id="home-btn" class="btn btn--green" href="{{ '/' | relative_url }}" title="Go Home">
5
+ {{ site.data.emoji.home }}
6
+ </a>
7
+ </span>
8
+ <span class="dropdown">
9
+ <button class="dropdown__btn">
10
+ <span title="Page Navigation">
11
+ {{ site.data.emoji.pages }}
12
+ </span>
13
+ </button>
14
+ <div class="dropdown__content">
15
+ {% assign recent_page = site.pages | where: "name", "recent.md" %}
16
+ {% if recent_page.first %}
17
+ <a class="btn btn--blue drop-1" href="{{ '/recent' | relative_url }}" title="Go To Recent Changes">
18
+ {{ site.data.emoji.recent }}
19
+ </a>
20
+ {% endif %}
21
+ {% if site.states %}
22
+ {% assign root_state = site.states | find_exp: "item", "item.path == site.bonsai.states.root_path" %}
23
+ <a class="btn btn--brown drop-2" href="{{ root_state.url | relative_url }}" title="Go To States">
24
+ {{ site.data.emoji.stat_tags }}
25
+ </a>
26
+ {% endif %}
27
+ {% assign archive_page = site.pages | where: "name", "archive.md" %}
28
+ {% if archive_page.first %}
29
+ <a class="btn btn--purple drop-3" href="{{ '/archive' | relative_url }}" title="Go To Archive">
30
+ {{ site.data.emoji.archive }}
31
+ </a>
32
+ {% endif %}
33
+ {% assign map_page = site.pages | where: "name", "map.md" %}
34
+ {% if map_page.first %}
35
+ <a class="btn btn--green drop-3" href="{{ '/map' | relative_url }}" title="Go To Archive">
36
+ {{ site.data.emoji.bonsai }}
37
+ </a>
38
+ {% endif %}
39
+ </div>
40
+ </span>
41
+ <span class="dropdown">
42
+ <button class="dropdown__btn">
43
+ <span title="Theme Color Toggles">
44
+ {{ site.data.emoji.colors }}
45
+ </span>
46
+ </button>
47
+ <div class="dropdown__content">
48
+ {% for theme in site.data.themes %}
49
+ <a data-theme-id="{{ theme.id }}" class="btn btn--yellow drop-{{ forloop.index }}" title="{{ theme.id }}">
50
+ {{ theme.emoji }}
51
+ </a>
52
+ {% endfor %}
53
+ </div>
54
+ </span>
55
+ <span class="dropdown">
56
+ <button class="dropdown__btn">
57
+ <span title="Site-Nav Toggles">
58
+ {{ site.data.emoji.site_nav }}
59
+ </span>
60
+ </button>
61
+ <div class="dropdown__content">
62
+ {% if site.bonsai.nav.visited.enabled %}
63
+ <label class="btn btn--orange">
64
+ <input id="nav-type-checkbox" type="checkbox" checked="checked">
65
+ <span id="nav-type-emoji-span" title="Toggle Nav Type"></span>
66
+ </label>
67
+ {% endif %}
68
+ <label class="btn btn--green">
69
+ <input id="graph-type-checkbox" type="checkbox" checked="checked">
70
+ <span id="graph-type-emoji-span" title="Toggle Graph Type"></span>
71
+ </label>
72
+ <a id="delete-btn" class="btn btn--red drop-3" title="Delete Visited History">
73
+ {{ site.data.emoji.delete }}
74
+ </a>
75
+ </div>
76
+ </span>
77
+ {% if site.bonsai.nav.search.enabled %}
78
+ <a id="search-btn" class="btn btn--brown" href="#" title="Search (cmd/ctrl+k)">
79
+ {{ site.data.emoji.search }}
80
+ </a>
81
+ {% endif %}
82
+ </header>
83
+
84
+ {% if site.bonsai.nav.search.enabled %}
85
+ <div id="search">
86
+ <input id="search-input" class="search__input hide"></input>
87
+ <div id="search-results" class="search__results"></div>
88
+ </div>
89
+ {% endif %}
90
+ <div id="site-nav-content">
91
+ <div id="jekyll-graph"></div>
92
+ {% if site.bonsai.nav.visited.enabled %}
93
+ <nav id="visited-nav" class="visited-nav"></nav>
94
+ {% endif %}
95
+ </div>
96
+
97
+ <footer>
98
+ <span class="text--small">ðŸŠī Grown with 💚 from a <a class="web-link" href="https://jekyll-wikibonsai.netlify.app">jekyll-wikibonsai</a></span>
99
+ </footer>
100
+ </nav>
@@ -0,0 +1,49 @@
1
+ {% comment %}
2
+
3
+ Usage:
4
+ {% assign tag_attr = page.attributes | link_type: "tags" %}
5
+ {% include tags.html tags_attrs=tag_attr tags_fms=page.tags %}
6
+
7
+ Parameters:
8
+ * tags_attrs (array) - array of attributes that are hashes with keys
9
+ 'type' and 'urls'
10
+ (which correspond to `jekyll-wikilinks`
11
+ attributes and attributed metadata)
12
+ * tags_fms (array) - array of strings that are tag names
13
+ (which correspond to entry filenames)
14
+
15
+ Note:
16
+ To be used with germ-type documents.
17
+ (e.g. markdown documents that use tags metadata to map to entries)
18
+
19
+ {% endcomment %}
20
+
21
+
22
+ <!-- 'tags' attribute -->
23
+ {% for tag_attr in tags_attrs %}
24
+ {% for url in tag_attr.urls %}
25
+ {% assign entry = site.entries | where: "url", url | first %}
26
+ <button class="tag-pill {% if entry %}{% else %}disabled{% endif %}">
27
+ {% if entry %}
28
+ {% include btn_state.html states=entry.status %}
29
+ <a class="sem-tag" href="{{ entry.url | relative_url }}">{{ entry.title }}</a>
30
+ {% else %}
31
+ <span class="text--small">{{ site.data.emoji.missing }} {{ sem_tag }}</span>
32
+ {% endif %}
33
+ </button>
34
+ {% endfor %}
35
+ {% endfor %}
36
+ <!-- 'tags' frontmatter -->
37
+ {% for sem_tag in tags_fms %}
38
+ <!-- prefix with '/' to prevent matching subhierarchies -->
39
+ {% assign sem_tag_path = "/" | append: sem_tag | append: ".md" %}
40
+ {% assign entry = site.entries | find_exp: "item", "item.path contains sem_tag_path" %}
41
+ <button class="tag-pill {% if entry %}{% else %}disabled{% endif %}">
42
+ {% if entry %}
43
+ {% include btn_state.html states=entry.status %}
44
+ <a class="sem-tag" href="{{ entry.url | relative_url }}">{{ entry.title }}</a>
45
+ {% else %}
46
+ <span class="text--small">{{ site.data.emoji.missing }} {{ sem_tag }}</span>
47
+ {% endif %}
48
+ </button>
49
+ {% endfor %}
@@ -0,0 +1,80 @@
1
+ {% comment %}
2
+
3
+ Usage:
4
+ {% include themes.scss.liquid id=theme.id colors=theme.colors svg=theme.svg graph=theme.graph %}
5
+
6
+ Parameters:
7
+ * colors (object) - collection of color values for css theming
8
+ * svg (object) - collection of color values for svg images
9
+ * graph (object) - collection of graph/size values for d3 graph
10
+
11
+ {% endcomment %}
12
+
13
+ // theme colors
14
+ [data-theme='{{ include.id }}'] {
15
+ // logo images //
16
+
17
+ --favicon-src: {{ include.src.favicon }};
18
+ --logo-src: {{ include.src.logo }};
19
+ --nav-burger-base: {{ include.src.nav_burger.base }};
20
+ --nav-burger-bonsai: {{ include.src.nav_burger.bonsai }};
21
+
22
+ // theme colors //
23
+
24
+ // singles
25
+ --selection-color: {{ include.colors.selection }};
26
+ --body-background-color: {{ include.colors.background }};
27
+ --box-shadow-color: {{ include.colors.shadow }};
28
+ --body-text-color: {{ include.colors.text }};
29
+ --small-heading-color: {{ include.colors.text_grey }};
30
+ --accent-dark-color: {{ include.colors.accent_dark }};
31
+ --accent-light-color: {{ include.colors.accent_light }};
32
+
33
+ // link colors
34
+ --link-color: {{ include.colors.link.web.valid }};
35
+ --link-underline-color: {{ include.colors.link.web.underline }};
36
+ --wiki-link-color: {{ include.colors.link.wiki.valid }};
37
+ --wiki-link-underline-color: {{ include.colors.link.wiki.underline }};
38
+ --invalid-wiki-link-color: {{ include.colors.link.wiki.invalid }};
39
+
40
+ // svg colors //
41
+
42
+ // bullets
43
+ --bullet-link: {{ include.graph.link.color }};
44
+ --bullet-node: {{ include.graph.node.visited.color }};
45
+
46
+ // pencil
47
+
48
+ // fill
49
+ --pencil-fill-default: {{ include.svg.pencil.default }};
50
+ --pencil-fill-blue: {{ include.svg.pencil.blue }};
51
+ --pencil-fill-green: {{ include.svg.pencil.green }};
52
+ --pencil-fill-red: {{ include.svg.pencil.red }};
53
+ --pencil-fill-yellow: {{ include.svg.pencil.yellow }};
54
+ // stroke
55
+ --pencil-stroke-default: {{ include.svg.pencil.default }};
56
+ --pencil-stroke-blue: {{ include.svg.pencil.blue }};
57
+ --pencil-stroke-green: {{ include.svg.pencil.green }};
58
+ --pencil-stroke-red: {{ include.svg.pencil.red }};
59
+ --pencil-stroke-yellow: {{ include.svg.pencil.yellow }};
60
+
61
+ // graph colors //
62
+
63
+ // nodes
64
+ // glow
65
+ --graph-node-current-glow: {{ include.graph.node.current }};
66
+ --graph-node-tagged-glow: {{ include.graph.node.tagged }};
67
+ --graph-node-visited-glow: {{ include.graph.node.visited.glow }};
68
+ // color
69
+ --graph-node-stroke-color: {{ include.graph.node.stroke }};
70
+ --graph-node-missing-color: {{ include.graph.node.missing }};
71
+ --graph-node-unvisited-color: {{ include.graph.node.unvisited }};
72
+ --graph-node-visited-color: {{ include.graph.node.visited.color }};
73
+
74
+ // links
75
+ --graph-link-color: {{ include.graph.link.color }};
76
+ --graph-particles-color: {{ include.graph.particles.color }};
77
+
78
+ // label text
79
+ --graph-text-color: {{ include.graph.text.color }};
80
+ }