jekyll-bonsai 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +676 -0
  3. data/README.md +2 -6
  4. data/_config.yml +173 -76
  5. data/_data/emoji.yml +45 -0
  6. data/_data/themes.yml +145 -0
  7. data/_includes/anchor-headings.html +5 -1
  8. data/_includes/btn_state.html +14 -0
  9. data/_includes/connect.html +11 -9
  10. data/_includes/cookie-consent.html +79 -0
  11. data/_includes/dates.html +22 -0
  12. data/_includes/hp-tooltip.html +106 -0
  13. data/_includes/img/bullet-net-web.svg +1 -1
  14. data/_includes/img/bullet-tree.svg +1 -1
  15. data/_includes/img/pencil-filter.svg +17 -0
  16. data/_includes/share.html +10 -8
  17. data/_includes/site-nav.html +83 -37
  18. data/_includes/themes.scss.liquid +80 -0
  19. data/_includes/toc.html +187 -0
  20. data/_layouts/404.html +10 -0
  21. data/_layouts/about.html +14 -0
  22. data/_layouts/archive.html +77 -0
  23. data/_layouts/base.html +68 -0
  24. data/_layouts/book.html +49 -0
  25. data/_layouts/entry.html +221 -93
  26. data/_layouts/home.html +96 -0
  27. data/_layouts/post.html +40 -22
  28. data/_layouts/privacy.html +15 -0
  29. data/_layouts/recent.html +65 -0
  30. data/_layouts/state.html +54 -43
  31. data/_sass/base/_code.scss +133 -0
  32. data/_sass/base/_layout.scss +30 -29
  33. data/_sass/base/_link.scss +105 -0
  34. data/_sass/base/_main.scss +19 -126
  35. data/_sass/base/_markdown.scss +281 -0
  36. data/_sass/base/_typography.scss +81 -67
  37. data/_sass/base/code_themes/_gruvbox.scss +92 -0
  38. data/_sass/base/code_themes/_monokai.scss +217 -0
  39. data/_sass/base/code_themes/_solarized.scss +84 -0
  40. data/_sass/components/_btn.scss +95 -0
  41. data/_sass/components/_infobox.scss +48 -0
  42. data/_sass/components/_item.scss +28 -0
  43. data/_sass/components/_search.scss +61 -0
  44. data/_sass/components/_tag_pills.scss +24 -0
  45. data/_sass/components/_visited.scss +42 -0
  46. data/_sass/includes/_anchor_headings.scss +36 -0
  47. data/_sass/includes/_connect.scss +8 -0
  48. data/_sass/includes/_cookie_consent.scss +46 -0
  49. data/_sass/includes/_dates.scss +6 -0
  50. data/_sass/includes/_hp_tooltip.scss +41 -0
  51. data/_sass/includes/_share.scss +10 -0
  52. data/_sass/includes/_site_nav.scss +26 -150
  53. data/_sass/includes/_svg.scss +89 -0
  54. data/_sass/includes/_toc.scss +38 -0
  55. data/_sass/layouts/_404.scss +3 -0
  56. data/_sass/layouts/_about.scss +3 -0
  57. data/_sass/layouts/_archive.scss +26 -0
  58. data/_sass/layouts/_book.scss +17 -0
  59. data/_sass/layouts/_entry.scss +140 -0
  60. data/_sass/layouts/_home.scss +75 -0
  61. data/_sass/layouts/_post.scss +17 -0
  62. data/_sass/layouts/_privacy.scss +3 -0
  63. data/_sass/layouts/_recent.scss +77 -0
  64. data/_sass/layouts/_state.scss +98 -0
  65. data/_sass/main.scss +72 -0
  66. data/_sass/{support → util}/_functions.scss +0 -0
  67. data/_sass/{support → util}/_variables.scss +21 -87
  68. data/_sass/{support → util}/mixins/_buttons.scss +0 -0
  69. data/_sass/util/mixins/_layout.scss +81 -0
  70. data/_sass/{support → util}/mixins/_typography.scss +0 -0
  71. data/assets/css/styles.scss +29 -6
  72. data/assets/img/bonsai-star.png +0 -0
  73. data/assets/img/bonsai-star.svg +1 -0
  74. data/assets/img/nav-base-star.svg +1 -0
  75. data/assets/img/nav-bonsai-star.svg +1 -0
  76. data/assets/js/entry.js +33 -5
  77. data/assets/js/graph.js +21 -509
  78. data/assets/js/scripts.js +41 -57
  79. data/assets/js/search.js +164 -0
  80. data/assets/js/site-nav.js +99 -99
  81. data/assets/js/theme-colors.js +23 -37
  82. data/assets/js/vendor/lunr.js +3475 -0
  83. data/assets/js/vendor/lunr.min.js +6 -0
  84. data/assets/js/visited-nav.js +65 -0
  85. metadata +143 -150
  86. data/_entries/digital-garden.bonsai.md +0 -36
  87. data/_entries/digital-garden.field-logs.md +0 -10
  88. data/_entries/digital-garden.fork.md +0 -10
  89. data/_entries/digital-garden.md +0 -17
  90. data/_entries/digital-garden.path.md +0 -11
  91. data/_entries/digital-garden.plants.md +0 -12
  92. data/_entries/digital-garden.pollinate.md +0 -10
  93. data/_entries/digital-garden.steps.md +0 -10
  94. data/_entries/digital-garden.stream.md +0 -12
  95. data/_entries/digital-garden.sweep.md +0 -12
  96. data/_entries/digital-garden.weather.md +0 -12
  97. data/_entries/features.md +0 -10
  98. data/_entries/features.notes.hover-preview.md +0 -10
  99. data/_entries/features.notes.md +0 -12
  100. data/_entries/features.notes.note-body.md +0 -12
  101. data/_entries/features.notes.note-body.share.md +0 -10
  102. data/_entries/features.notes.note-body.sidenotes.md +0 -52
  103. data/_entries/features.notes.note-foot.links.md +0 -10
  104. data/_entries/features.notes.note-foot.md +0 -11
  105. data/_entries/features.notes.note-foot.posts.md +0 -10
  106. data/_entries/features.notes.note-foot.webmentions.md +0 -10
  107. data/_entries/features.notes.note-head.md +0 -10
  108. data/_entries/features.pages.field-blogs.md +0 -10
  109. data/_entries/features.pages.md +0 -12
  110. data/_entries/features.pages.recent.md +0 -10
  111. data/_entries/features.pages.status-tags.md +0 -10
  112. data/_entries/features.site-nav.graph.links.md +0 -10
  113. data/_entries/features.site-nav.graph.links.namespacing.md +0 -14
  114. data/_entries/features.site-nav.graph.links.wikilinks.md +0 -25
  115. data/_entries/features.site-nav.graph.md +0 -12
  116. data/_entries/features.site-nav.graph.nodes.current-note.md +0 -10
  117. data/_entries/features.site-nav.graph.nodes.md +0 -12
  118. data/_entries/features.site-nav.graph.nodes.mia.missing-note.md +0 -20
  119. data/_entries/features.site-nav.graph.nodes.visited-status.md +0 -10
  120. data/_entries/features.site-nav.graph.toggle-graph.md +0 -13
  121. data/_entries/features.site-nav.graph.type.md +0 -16
  122. data/_entries/features.site-nav.graph.type.net-web.md +0 -10
  123. data/_entries/features.site-nav.graph.type.tree.md +0 -12
  124. data/_entries/features.site-nav.md +0 -10
  125. data/_entries/features.site-nav.visited.md +0 -14
  126. data/_entries/features.tags.md +0 -13
  127. data/_entries/features.themes.dark.md +0 -12
  128. data/_entries/features.themes.light.md +0 -10
  129. data/_entries/features.themes.md +0 -12
  130. data/_entries/features.visited.delete-data.md +0 -10
  131. data/_entries/features.visited.md +0 -12
  132. data/_entries/features.visitor-preferences.md +0 -27
  133. data/_entries/feedback.md +0 -10
  134. data/_entries/people.creator.md +0 -12
  135. data/_entries/people.md +0 -13
  136. data/_entries/people.visitors.md +0 -12
  137. data/_entries/plugins.jekyll-wikilinks.md +0 -10
  138. data/_entries/plugins.md +0 -10
  139. data/_entries/root.md +0 -26
  140. data/_includes/entry-attrs.html +0 -27
  141. data/_includes/head.html +0 -23
  142. data/_includes/hover-preview.html +0 -84
  143. data/_includes/metrics.html +0 -10
  144. data/_includes/styles.scss.liquid +0 -3
  145. data/_layouts/default.html +0 -39
  146. data/_pages/about.md +0 -7
  147. data/_pages/posts.html +0 -19
  148. data/_pages/recent.html +0 -48
  149. data/_plugins/doc_filters.rb +0 -44
  150. data/_plugins/prep_entry.rb +0 -43
  151. data/_plugins/sidenote.rb +0 -123
  152. data/_plugins/tags.rb +0 -52
  153. data/_sass/base/base.scss +0 -3
  154. data/_sass/color/dark.scss +0 -58
  155. data/_sass/color/light.scss +0 -58
  156. data/_sass/includes/_btn.scss +0 -106
  157. data/_sass/includes/_graph.scss +0 -69
  158. data/_sass/includes/_nav.scss +0 -89
  159. data/_sass/includes/_tooltip.scss +0 -29
  160. data/_sass/includes/includes.scss +0 -9
  161. data/_sass/markdown/_code.scss +0 -340
  162. data/_sass/markdown/_content.scss +0 -400
  163. data/_sass/markdown/_tables.scss +0 -60
  164. data/_sass/markdown/markdown.scss +0 -7
  165. data/_sass/modules.scss +0 -14
  166. data/_sass/pages/_index.scss +0 -72
  167. data/_sass/pages/_posts.scss +0 -17
  168. data/_sass/pages/_recent.scss +0 -26
  169. data/_sass/pages/_state.scss +0 -72
  170. data/_sass/pages/pages.scss +0 -4
  171. data/_sass/support/mixins/_layout.scss +0 -56
  172. data/_sass/support/mixins/mixins.scss +0 -3
  173. data/_sass/support/support.scss +0 -3
  174. data/_states/bamboo.md +0 -8
  175. data/_states/berry.md +0 -8
  176. data/_states/bloom.md +0 -8
  177. data/_states/bud.md +0 -6
  178. data/_states/fruit.md +0 -8
  179. data/_states/melon.md +0 -8
  180. data/_states/pot-bamboo.md +0 -8
  181. data/_states/seed.md +0 -8
  182. data/_states/sprout.md +0 -8
  183. data/_states/tags.md +0 -8
  184. data/_states/tea.md +0 -8
  185. data/assets/css/styles-dark.scss +0 -3
  186. data/assets/css/styles-light.scss +0 -3
  187. data/assets/img/nav-dot-dark.svg +0 -1
  188. data/assets/img/nav-dot-light.svg +0 -1
  189. data/assets/img/nav-wiki-links-dark.svg +0 -1
  190. data/assets/img/nav-wiki-links-light.svg +0 -1
  191. data/index.html +0 -82
@@ -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>
@@ -1,4 +1,4 @@
1
- <svg class="graph-icon" xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 50 50" overflow="visible" stroke-width="5" stroke-linecap="round">
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
2
  <line class="bullet-link" x1="25" y1="33" x2="2" y2="50" stroke="#8C6239" />
3
3
  <line class="bullet-link" x1="25" y1="33" x2="25" y2="5" stroke="#8C6239" />
4
4
  <line class="bullet-link" x1="25" y1="33" x2="47" y2="50" stroke="#8C6239" />
@@ -1,4 +1,4 @@
1
- <svg class="graph-icon" xmlns="http://www.w3.org/2000/svg" height="10" width="10" viewBox="0 0 50 50" overflow="visible" stroke-width="5" stroke-linecap="round">
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
2
  <line class="bullet-link" x1="20" y1="25" x2="5" y2="50" stroke="#8C6239" />
3
3
  <line class="bullet-link" x1="25" y1="25" x2="25" y2="50" stroke="#8C6239" />
4
4
  <line class="bullet-link" x1="30" y1="25" x2="45" y2="50" stroke="#8C6239" />
@@ -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>
data/_includes/share.html CHANGED
@@ -2,7 +2,7 @@
2
2
  {% if include.pageurl != nil and include.pageurl != '' %}
3
3
  {% assign pageurl = include.pageurl %}
4
4
  {% else %}
5
- {% assign pageurl = page.url %}
5
+ {% assign pageurl = page.url | relative_url %}
6
6
  {% endif %}
7
7
 
8
8
  <style>
@@ -33,13 +33,15 @@
33
33
  #share-buttons > div.mail > svg {height: 14px; margin-top: 11px;}
34
34
  </style>
35
35
 
36
- <div style="text-align: center;">
37
- <span style="user-select: none;" title="Share This">🐝</span>
36
+ <div class="share-bar">
37
+ <span class="share-icon" title="Share This">
38
+ {{ site.data.emoji.share }}
39
+ </span>
38
40
  <div id="share-buttons">
39
- {% if site.social.share 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 %}
40
- {% if site.social.share 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 %}
41
- {% if site.social.share 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 %}
42
- {% if site.social.share 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 %}
43
- {% if site.social.share 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 %}
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 %}
44
46
  </div>
45
47
  </div>
@@ -1,48 +1,94 @@
1
- <nav id="site-nav" class="site-nav" role="navigation" aria-label="main">
1
+ <nav id="site-nav" class="site-nav" role="navigation">
2
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
+ </div>
34
+ </span>
35
+ <span class="dropdown">
36
+ <button class="dropdown__btn">
37
+ <span title="Theme Color Toggles">
38
+ {{ site.data.emoji.colors }}
39
+ </span>
40
+ </button>
41
+ <div class="dropdown__content">
42
+ {% for theme in site.data.themes %}
43
+ <a data-theme-id="{{ theme.id }}" class="btn btn--yellow drop-{{ forloop.index }}" title="{{ theme.id }}">
44
+ {{ theme.emoji }}
45
+ </a>
46
+ {% endfor %}
47
+ </div>
48
+ </span>
3
49
  <span class="dropdown">
4
- <button id="pages-btn" class="dropdown-btn">
5
- <span id="pages-emoji-span">🗺</span>
50
+ <button class="dropdown__btn">
51
+ <span title="Site-Nav Toggles">
52
+ {{ site.data.emoji.site_nav }}
53
+ </span>
6
54
  </button>
7
- <div class="dropdown-content">
8
- <!-- <button id="search-btn" class="site-nav-btn" title="Search">
9
- <span id="search-emoji-span">🔍</span>
10
- </button> -->
11
- <button id="posts-btn" class="dropbtn drop-2" title="Go To Posts">
12
- <span id="posts-emoji-span">📓</span>
13
- </button>
14
- <button id="stat-tags-btn" class="dropbtn drop-1" title="Go To Status Tags">
15
- <span id="stat-tags-emoji-span">🔖</span>
16
- </button>
17
- <button id="recent-btn" class="dropbtn drop-3" title="Go To Recent Changes">
18
- <span id="recent-emoji-span">🌦</span>
19
- </button>
20
- <button id="home-btn" class="dropbtn drop-4" title="Go To Home">
21
- <span id="home-emoji-span">🛖</span>
22
- </button>
55
+ <div class="dropdown__content">
56
+ {% if site.bonsai.nav.visited.enabled %}
57
+ <label class="btn btn--orange">
58
+ <input id="nav-type-checkbox" type="checkbox" checked="checked">
59
+ <span id="nav-type-emoji-span" title="Toggle Nav Type"></span>
60
+ </label>
61
+ {% endif %}
62
+ <label class="btn btn--green">
63
+ <input id="graph-type-checkbox" type="checkbox" checked="checked">
64
+ <span id="graph-type-emoji-span" title="Toggle Graph Type"></span>
65
+ </label>
66
+ <a id="delete-btn" class="btn btn--red drop-3" title="Delete Visited History">
67
+ {{ site.data.emoji.delete }}
68
+ </a>
23
69
  </div>
24
70
  </span>
25
- <label class="btn-selector">
26
- <input id="theme-colors-checkbox" type="checkbox" checked="checked">
27
- <span id="theme-colors-emoji-span" title="Toggle Colors"></span>
28
- </label>
29
- <label class="btn-selector">
30
- <input id="nav-type-checkbox" type="checkbox" checked="checked">
31
- <span id="nav-type-emoji-span" title="Toggle Nav Type"></span>
32
- </label>
33
- <label class="btn-selector">
34
- <input id="graph-type-checkbox" type="checkbox" checked="checked">
35
- <span id="graph-type-emoji-span" title="Toggle Graph Type"></span>
36
- </label>
71
+ {% if site.bonsai.nav.search.enabled %}
72
+ <a id="search-btn" class="btn btn--brown" href="#" title="Search (cmd/ctrl+k)">
73
+ {{ site.data.emoji.search }}
74
+ </a>
75
+ {% endif %}
37
76
  </header>
38
77
 
39
- <nav id="visited-nav" class="visited-nav"></nav>
40
- <svg id="svg-graph" height="100%" width="100%"></svg>
78
+ {% if site.bonsai.nav.search.enabled %}
79
+ <div id="search">
80
+ <input id="search-input" class="search__input hide"></input>
81
+ <div id="search-results" class="search__results"></div>
82
+ </div>
83
+ {% endif %}
84
+ <div id="site-nav-content">
85
+ <div id="jekyll-graph"></div>
86
+ {% if site.bonsai.nav.visited.enabled %}
87
+ <nav id="visited-nav" class="visited-nav"></nav>
88
+ {% endif %}
89
+ </div>
41
90
 
42
91
  <footer>
43
- <span class="small-descr">Grown 🪴 with 💚 from a <a href="https://github.com/manunamz/jekyll-bonsai/">jekyll-bonsai</a>.</span>
44
- <button id="delete-btn" class="delete-btn" title="Delete Visited History">
45
- <span id="delete-emoji-span" title="Delete Visited Info">🧹</span>
46
- </button>
92
+ <span class="text--small">🪴 Grown with 💚 from a <a class="web-link" href="https://jekyll-bonsai.netlify.app">jekyll-bonsai</a></span>
47
93
  </footer>
48
94
  </nav>
@@ -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
+ }
@@ -0,0 +1,187 @@
1
+ {% capture tocWorkspace %}
2
+ {% comment %}
3
+ Copyright (c) 2017 Vladimir "allejo" Jimenez
4
+
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the "Software"), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
25
+ {% endcomment %}
26
+ {% comment %}
27
+ Version 1.1.0
28
+ https://github.com/allejo/jekyll-toc
29
+
30
+ "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
31
+
32
+ Usage:
33
+ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
34
+
35
+ Parameters:
36
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
37
+
38
+ Optional Parameters:
39
+ * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
40
+ * class (string) : '' - a CSS class assigned to the TOC
41
+ * id (string) : '' - an ID to assigned to the TOC
42
+ * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
43
+ * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
44
+ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
45
+ * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
46
+ * submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
47
+ * base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
48
+ * anchor_class (string) : '' - add custom class(es) for each anchor element
49
+ * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
50
+
51
+ Output:
52
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
53
+ generate the table of contents and will NOT output the markdown given to it
54
+ {% endcomment %}
55
+
56
+ {% capture newline %}
57
+ {% endcapture %}
58
+ {% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
59
+
60
+ {% capture deprecation_warnings %}{% endcapture %}
61
+
62
+ {% if include.baseurl %}
63
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
64
+ {% endif %}
65
+
66
+ {% if include.skipNoIDs %}
67
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
68
+ {% endif %}
69
+
70
+ {% capture jekyll_toc %}{% endcapture %}
71
+ {% assign orderedList = include.ordered | default: false %}
72
+ {% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
73
+ {% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
74
+ {% assign minHeader = include.h_min | default: 1 %}
75
+ {% assign maxHeader = include.h_max | default: 6 %}
76
+ {% assign nodes = include.html | strip | split: '<h' %}
77
+
78
+ {% assign firstHeader = true %}
79
+ {% assign currLevel = 0 %}
80
+ {% assign lastLevel = 0 %}
81
+
82
+ {% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
83
+
84
+ {% for node in nodes %}
85
+ {% if node == "" %}
86
+ {% continue %}
87
+ {% endif %}
88
+
89
+ {% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
90
+
91
+ {% if currLevel < minHeader or currLevel > maxHeader %}
92
+ {% continue %}
93
+ {% endif %}
94
+
95
+ {% assign _workspace = node | split: '</h' %}
96
+
97
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
98
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
99
+ {% assign htmlID = _idWorkspace[0] %}
100
+
101
+ {% assign _classWorkspace = _workspace[0] | split: 'class="' %}
102
+ {% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
103
+ {% assign htmlClass = _classWorkspace[0] %}
104
+
105
+ {% if htmlClass contains "no_toc" %}
106
+ {% continue %}
107
+ {% endif %}
108
+
109
+ {% if firstHeader %}
110
+ {% assign minHeader = currLevel %}
111
+ {% endif %}
112
+
113
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
114
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
115
+
116
+ {% if include.item_class and include.item_class != blank %}
117
+ {% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
118
+ {% endif %}
119
+
120
+ {% if include.submenu_class and include.submenu_class != blank %}
121
+ {% assign subMenuLevel = currLevel | minus: 1 %}
122
+ {% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
123
+ {% endif %}
124
+
125
+ {% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
126
+
127
+ {% if htmlID %}
128
+ {% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
129
+
130
+ {% if include.anchor_class %}
131
+ {% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
132
+ {% endif %}
133
+
134
+ {% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
135
+ {% elsif skipNoIDs == true %}
136
+ {% continue %}
137
+ {% else %}
138
+ {% capture listItem %}{{ anchorBody }}{% endcapture %}
139
+ {% endif %}
140
+
141
+ {% if currLevel > lastLevel %}
142
+ {% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
143
+ {% elsif currLevel < lastLevel %}
144
+ {% assign repeatCount = lastLevel | minus: currLevel %}
145
+
146
+ {% for i in (1..repeatCount) %}
147
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
148
+ {% endfor %}
149
+
150
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
151
+ {% else %}
152
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
153
+ {% endif %}
154
+
155
+ {% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
156
+
157
+ {% assign lastLevel = currLevel %}
158
+ {% assign firstHeader = false %}
159
+ {% endfor %}
160
+
161
+ {% assign repeatCount = minHeader | minus: 1 %}
162
+ {% assign repeatCount = lastLevel | minus: repeatCount %}
163
+ {% for i in (1..repeatCount) %}
164
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
165
+ {% endfor %}
166
+
167
+ {% if jekyll_toc != '' %}
168
+ {% assign rootAttributes = '' %}
169
+
170
+ {% if include.wrap_class and include.wrap_class != blank %}
171
+ {% capture wrapperAttributes %} class="{{ include.wrap_class | split: '.' | join: ' ' }}"{% endcapture %} %}
172
+ {% endif %}
173
+
174
+ {% if include.class and include.class != blank %}
175
+ {% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
176
+ {% endif %}
177
+
178
+ {% if include.id and include.id != blank %}
179
+ {% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
180
+ {% endif %}
181
+
182
+ {% if rootAttributes %}
183
+ {% assign nodes = jekyll_toc | split: '>' %}
184
+ {% capture jekyll_toc %}<div {{ wrapperAttributes }}><{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}></div>{% endcapture %}
185
+ {% endif %}
186
+ {% endif %}
187
+ {% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc }}
data/_layouts/404.html ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ <div id="four-zero-four" class="four-zero-four">
5
+
6
+ <h1>{{ site.data.emoji.missing }} 404 {{ site.data.emoji.missing }}</h1>
7
+
8
+ <p class="markdown">{{ content }}</p>
9
+
10
+ </div>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ <div id="about" class="about">
5
+
6
+ <div class="hp-title">
7
+ <h1 class="p-name">{{ site.data.emoji.about }} {{ page.title }}</h1>
8
+ </div>
9
+
10
+ <div class="hp-content markdown e-content p-name">
11
+ {{ content }}
12
+ </div>
13
+
14
+ </div>