jekyll-wikibonsai 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
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,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>
@@ -0,0 +1,77 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ <div id="archive" class="archive">
5
+
6
+ <div class="hp-title">
7
+ <h1>{{ site.data.emoji.archive }} {{ page.title }}</h1>
8
+ <p>{{ content }}</p>
9
+ </div>
10
+
11
+ <div class="hp-content">
12
+
13
+
14
+ <h4 class="archive__title">
15
+ {{ site.bonsai.archive.section.posts }}
16
+ </h4>
17
+
18
+ <ul class="archive__list">
19
+ {% assign post_items = site.posts | sort: "date" %}
20
+ {% for post in post_items%}
21
+ <li>
22
+ <div class="archive__item">
23
+ <span>
24
+ {% include btn_state.html states=post.status %}
25
+ <a class="wiki-link" href="{{ post.url | relative_url }}">{{ post.title }}</a>
26
+ </span>
27
+ <time class="text--date dt-published">
28
+ {{ post.updated | date: '%s' | date: '%s' | slice: 0, 10 | date: site.bonsai.date_format }}
29
+ </time>
30
+ </div>
31
+ </li>
32
+ {% endfor %}
33
+ </ul>
34
+
35
+ <h4 class="archive__title">
36
+ {{ site.bonsai.archive.section.books }}
37
+ </h4>
38
+ <ul class="archive__list">
39
+ {% assign book_items = site.books | sort %}
40
+ {% for book in book_items %}
41
+ <li>
42
+ <div class="archive__item">
43
+ <span>
44
+ {% include btn_state.html states=book.status %}
45
+ <a class="wiki-link" href="{{ book.url | relative_url }}">{{ book.title }}</a>
46
+ </span>
47
+ <time class="text--date dt-published">
48
+ {{ book.updated | date: '%s' | date: '%s' | slice: 0, 10 | date: site.bonsai.date_format }}
49
+ </time>
50
+ </div>
51
+ </li>
52
+ {% endfor %}
53
+ </ul>
54
+
55
+ <h4 class="archive__title">
56
+ {{ site.bonsai.archive.section.entries }}
57
+ </h4>
58
+ <ul class="archive__list">
59
+ {% assign entry_items = site.entries | sort: "title" %}
60
+ {% for entry in entry_items %}
61
+ <li>
62
+ <div class="archive__item">
63
+ <span>
64
+ {% include btn_state.html states=entry.status %}
65
+ <a class="wiki-link" href="{{ entry.url | relative_url }}">{{ entry.title }}</a>
66
+ </span>
67
+ <time class="text--date dt-published">
68
+ {{ entry.updated | date: '%s' | date: '%s' | slice: 0, 10 | date: site.bonsai.date_format }}
69
+ </time>
70
+ </div>
71
+ </li>
72
+ {% endfor %}
73
+ </ul>
74
+
75
+ </div>
76
+
77
+ </div>
@@ -0,0 +1,68 @@
1
+ ---
2
+ ---
3
+ <!doctype html>
4
+ <html>
5
+ <head>
6
+
7
+ <meta charset="utf-8">
8
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
9
+
10
+ <title>{{ page.title }}</title>
11
+
12
+ <link rel="icon" type="image/png">
13
+ <link rel="stylesheet" href="{{ '/assets/css/styles.css' | relative_url }}">
14
+
15
+ <script>
16
+ // from: https://mxb.dev/blog/color-theme-switcher/
17
+ // if there's a theme id in localstorage, use it on initia load
18
+ localStorage.getItem('theme-colors') &&
19
+ document.documentElement.setAttribute('data-theme', localStorage.getItem('theme-colors'))
20
+ </script>
21
+
22
+ <!-- search -->
23
+ <script src="https://unpkg.com/lunr/lunr.js"></script>
24
+ {% jekyll_graph %}
25
+ {% feed_meta %}
26
+ {% seo %}
27
+
28
+ </head>
29
+ <body>
30
+
31
+ <div id="side-bar" class="side-bar">
32
+ {% include site-nav.html %}
33
+ </div>
34
+
35
+ <div id="main" class="main">
36
+ <main class="main__content">
37
+ {% include anchor-headings.html html=content anchorClass="anchor-heading" %}
38
+ </main>
39
+ <footer class="main__footer">
40
+ {% assign about_page = site.pages | find_exp: "item", "item.name == 'about.md'" %}
41
+ {% if about_page %}
42
+ <a class="btn btn--small btn--brown" href="{{ '/about/' | relative_url }}" title="Go To About">{{ site.data.emoji.about }}</a>
43
+ {% endif %}
44
+ {% assign privacy_page = site.pages | find_exp: "item", "item.name == 'privacy.md'" %}
45
+ {% if privacy_page %}
46
+ <a class="btn btn--small btn--brown" href="{{ '/privacy/' | relative_url }}" title="Go To Privacy">{{ site.data.emoji.privacy }}</a>
47
+ {% endif %}
48
+ {% if site.social.connect.enabled %}
49
+ {% include connect.html %}
50
+ {% endif %}
51
+ </footer>
52
+ </div>
53
+
54
+ <label class="bonsai-burger-nav">
55
+ <input id="bonsai-burger-nav-checkbox" type="checkbox">
56
+ <img id="nav-bonsai" height="75" width="75" hidden></img>
57
+ <img id="nav-base" height="50" width="50"></img>
58
+ </label>
59
+
60
+ {% include hp-tooltip.html wrapperQuerySelector="content" %}
61
+ <!-- modules: https://stackoverflow.com/questions/58211880/uncaught-syntaxerror-cannot-use-import-statement-outside-a-module-when-import -->
62
+ <script type="module" src="{{ '/assets/js/scripts.js' | relative_url }}"></script>
63
+ {% include img/pencil-filter.svg %}
64
+ {% if site.ga_tracking != nil %}
65
+ {% include cookie-consent.html %}
66
+ {% endif %}
67
+ </body>
68
+ </html>
@@ -0,0 +1,40 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+
5
+ <article id="book"
6
+ class="book h-entry"
7
+ role="article"
8
+ itemscope
9
+ itemtype="http://schema.org/BlogPosting"
10
+ aria-labelledby="{{ page.title | slugify }}-title">
11
+
12
+ <div class="book__title hp-title">
13
+ <h1 class="p-name">{{ page.title }}</h1>
14
+ <h4>{{ page.subtitle }}</h4>
15
+ </div>
16
+
17
+ <section class="book__infobox">
18
+ <div class="infobox">
19
+ {% assign book_cover_img_src = site.baseurl | append: "/assets/img/books/" | append: page.slug | append: ".png" %}
20
+ <img src='{{ book_cover_img_src }}' class="infobox__img--cover">
21
+ {% include toc.html html=content wrap_class="toc" class="toc__list" item_class="toc__list-item" anchor_class="toc__anchor" %}
22
+ {% include dates.html updated=page.updated date=page.date %}
23
+ <div class="infobox__bar">
24
+ {% include btn_state.html states=page.status %}
25
+ {% if site.social.share.enabled %}
26
+ {% include share.html %}
27
+ {% endif %}
28
+ </div>
29
+ <div class="infobox__sem-tags p-category">
30
+ {% assign tags_attrs = page.attributes | link_type: "tags" %}
31
+ {% include tags.html tags_attrs=tags_attrs tags_fm=page.tags %}
32
+ </div>
33
+ </div>
34
+ </section>
35
+
36
+ <div class="book__content markdown hp-content e-content p-name">
37
+ {{ content }}
38
+ </div>
39
+
40
+ </article>
@@ -0,0 +1,269 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+
5
+ <article id="entry"
6
+ class="entry h-entry"
7
+ role="article"
8
+ itemscope
9
+ itemtype="http://schema.org/Article"
10
+ aria-labelledby="{{ page.title | slugify }}-title">
11
+
12
+ <header class="entry__header">
13
+ <label class="btn">
14
+ <input id="entry-head-checkbox" type="checkbox">
15
+ <span class="btn--brown" title="Toggle Lineage Entries">
16
+ {{ site.data.emoji.breadcrumbs }}
17
+ </span>
18
+ </label>
19
+ <div class="entry__header--fix-hrz-scroll hp-header">
20
+ <nav id="entry-head-nav" class="breadcrumb" role="navigation" aria-label="entry's ancestry">
21
+ <ol>
22
+ {% for ancestor in page.ancestors %}
23
+ {% assign ancestor_doc = site.entries | where: "url", ancestor | first %}
24
+ {% if ancestor_doc %}
25
+ <li>
26
+ <span title="Ancestor Entry">{% include img/bullet-ancestor.svg %}</span>
27
+ {% include btn_state.html states=ancestor_doc.status %}
28
+ <a class="wiki-link" href="{{ ancestor_doc.url | relative_url }}">{{ ancestor_doc.title }}</a>
29
+ </li>
30
+ {% else %}
31
+ <li>
32
+ <span title="Ancestor Entry">{% include img/bullet-ancestor.svg %}</span>
33
+ <span class="text--small text--no-point">{{ site.data.emoji.missing }} {{ ancestor }}</span>
34
+ </li>
35
+ {% endif %}
36
+ {% endfor %}
37
+ <li>
38
+ <span title="Ancestor Entry">{% include img/bullet-ancestor.svg %}</span>
39
+ {% include btn_state.html states=page.status %}
40
+ <span>{{ page.title }}</span>
41
+ </li>
42
+ </ol>
43
+ </nav>
44
+ </div>
45
+ </header>
46
+
47
+ <div class="entry__title hp-title">
48
+ <h1 class="p-name">{{ page.title }}</h1>
49
+ </div>
50
+
51
+ <div class="entry__infobox">
52
+ <div class="infobox">
53
+ {% if page.path == site.bonsai.entries.root_path %}
54
+ <img id="root-logo" class="infobox__img">
55
+ {% endif %}
56
+ {% include dates.html updated=page.updated date=page.date %}
57
+ <div class="infobox__bar">
58
+ <label class="btn">
59
+ <input id="entry-head-links-checkbox" type="checkbox">
60
+ <span class="btn--brown" title="Toggle Linked Entries">
61
+ {{ site.data.emoji.links }}
62
+ </span>
63
+ </label>
64
+ {% include btn_state.html states=page.status %}
65
+ {% if site.social.share.enabled %}
66
+ {% include share.html %}
67
+ {% endif %}
68
+ </div>
69
+ <div class="infobox__link-nav">
70
+ <nav id="attr-box-link-nav" class="link-map">
71
+ <span class="link-map__type" title="Attribute Entries">{% include img/bullet-net-web.svg %}</span>
72
+ {% if page.attributes.size == 0 %}
73
+ <p class="text--small text--center">No attribute entries.</p>
74
+ {% else %}
75
+ <div class="link-map__wrapper">
76
+ {% for attr in page.attributes %}
77
+ <div class="link-map__key">
78
+ {{ attr.type | capitalize }}
79
+ </div>
80
+ <div class="link-map__value">
81
+ <ul>
82
+ {% for doc_url in attr.urls %}
83
+ {% assign attr_doc = site.entries | where: "url", doc_url | first %}
84
+ <li>
85
+ {% include btn_state.html states=attr_doc.status %}
86
+ <a class="wiki-link" href="{{ attr_doc.url | relative_url }}">{{ attr_doc.title }}</a>
87
+ </li>
88
+ {% endfor %}
89
+ </ul>
90
+ </div>
91
+ {% endfor %}
92
+ </div>
93
+ {% endif %}
94
+ </nav>
95
+ </div>
96
+ </div>
97
+ </div>
98
+
99
+ <div class="entry__body markdown hp-content e-content p-name">
100
+ {{ content }}
101
+ </div>
102
+
103
+ <footer class="entry__footer">
104
+ <!-- linked entries -->
105
+ <div class="entry__section-wrapper">
106
+ <div> <!-- still need a nesting div for the checkbox -->
107
+ <label class="btn">
108
+ <input id="entry-foot-links-checkbox" type="checkbox">
109
+ <span class="btn--brown" title="Toggle Linked Entries">
110
+ {{ site.data.emoji.links }}
111
+ </span>
112
+ </label>
113
+ </div>
114
+ <nav id="entry-foot-links-nav" class="link-box" role="navigation" aria-label="linked entries">
115
+ <div class="link-box__partition">
116
+ <span class="link-box__type" title="Child Entries">
117
+ {% include img/bullet-tree.svg %}
118
+ </span>
119
+ {% if page.children.size == 0 %}
120
+ <p class="text--small text--center">No child entries.</p>
121
+ {% else %}
122
+ <ul>
123
+ {% for child in page.children %}
124
+ {% assign child_doc = site.entries | where: "url", child | first %}
125
+ {% if child_doc %}
126
+ <li>
127
+ {% include btn_state.html states=child_doc.status %}
128
+ <a class="wiki-link {% if child_doc.url == '' %}text--small text--no-point{% endif %}" href="{{ child_doc.url | relative_url }}">
129
+ {{ child_doc.title }}
130
+ </a>
131
+ </li>
132
+ {% else %}
133
+ <li>
134
+ <span class="text--small text--no-point">{{ site.data.emoji.missing }} {{ child }}</span>
135
+ </li>
136
+ {% endif %}
137
+ {% endfor %}
138
+ </ul>
139
+ {% endif %}
140
+ </div>
141
+ <div class="link-box__partition">
142
+ <span class="link-box__type" title="Attributed and Backlink Entries">
143
+ {% include img/bullet-net-web.svg %}
144
+ </span>
145
+ {% assign entry_attrd = page.attributed | doc_type: "entries" %}
146
+ {% assign entry_blinks = page.backlinks | doc_type: "entries" %}
147
+ {% if entry_attrd.size == 0 and entry_blinks.size == 0 %}
148
+ <p class="text--small text--center">No attributed {% if site.bonsai.entries.backlinks %}or backlinked{% endif %} entries.</p>
149
+ {% else %}
150
+ <!-- attributed -->
151
+ <ul>
152
+ {% for attr in entry_attrd %}
153
+ {% for attr_url in attr.urls %}
154
+ {% assign attr_doc = site.entries | where: "url", attr_url | first %}
155
+ {% if attr_doc %}
156
+ <li>
157
+ {% include btn_state.html states=attr_doc.status %}
158
+ <a class="wiki-link {% if attr_doc.url == '' %}text--small text--no-point{% endif %}" href="{{ attr_doc.url | relative_url }}" title="{{ attr.type }}">
159
+ {{ attr_doc.title }}
160
+ </a>
161
+ </li>
162
+ {% else %}
163
+ <li>
164
+ <span class="text--small text--no-point">{{ site.data.emoji.missing }} {{ attr_url }}</span>
165
+ </li>
166
+ {% endif %}
167
+ {% endfor %}
168
+ {% endfor %}
169
+ </ul>
170
+ {% if site.bonsai.entries.backlinks %}
171
+ <!-- backlinks -->
172
+ <ul>
173
+ {% for blink in entry_blinks %}
174
+ {% assign blink_doc = site.entries | where: "url", blink.url | first %}
175
+ {% if blink_doc %}
176
+ <li>
177
+ {% include btn_state.html states=blink_doc.status %}
178
+ <a class="wiki-link {% if blink_doc.url == '' %}text--small text--no-point{% endif %}" href="{{ blink_doc.url | relative_url }}" title="{% if blink.type %}{{ blink.type }}{% endif %}">
179
+ {{ blink_doc.title }}
180
+ </a>
181
+ </li>
182
+ {% else %}
183
+ <li>
184
+ <span class="text--small text--no-point">{{ site.data.emoji.missing }} {{ blink.url }}</span>
185
+ </li>
186
+ {% endif %}
187
+ {% endfor %}
188
+ </ul>
189
+ {% endif %}
190
+ {% endif %}
191
+ </div>
192
+ </nav>
193
+ </div>
194
+ <!-- tagged docs -->
195
+ <div class="entry__section-wrapper">
196
+ <div> <!-- still need a nesting div for the checkbox -->
197
+ <label class="btn">
198
+ <input id="entry-foot-posts-checkbox" type="checkbox">
199
+ <span class="btn--purple" title="Toggle Tagged Items">
200
+ {{ site.data.emoji.tags }}
201
+ </span>
202
+ </label>
203
+ </div>
204
+ <nav id="entry-foot-posts-nav" class="link-box" role="navigation" aria-label="tagged">
205
+ <div class="link-box__partition">
206
+
207
+ <!-- capture tagged linked_docs here -->
208
+ {% capture linked_docs %}
209
+ <!-- track number of linked docs -->
210
+ {% assign num_linked_docs = 0 %}
211
+ <!-- tagged posts/books -->
212
+ <ul>
213
+ {% for doc in site.documents %}
214
+ {% if doc.tags contains page.namespace %}
215
+ {% assign num_linked_docs = num_linked_docs | plus: 1 %}
216
+ <li>
217
+ {% include btn_state.html states=doc.status %}
218
+ <a class="wiki-link" href="{{ doc.url | relative_url }}">{{ doc.title }}</a>
219
+ </li>
220
+ {% endif %}
221
+ {% endfor %}
222
+ </ul>
223
+ <!-- 'tags' attributed posts/books -->
224
+ <ul>
225
+ {% assign post_attrds = page.attributed | doc_type: "posts" %}
226
+ {% assign book_attrds = page.attributed | doc_type: "books" %}
227
+ {% assign pb_attrds = post_attrds | concat: book_attrds %}
228
+ {% assign tag_attrds = pb_attrds | link_type: "tags" %}
229
+ {% for tag_attrd in tag_attrds %}
230
+ {% for url in tag_attrd.urls %}
231
+ {% assign num_linked_docs = num_linked_docs | plus: 1 %}
232
+ {% assign doc = site.documents | where: "url", url | first %}
233
+ <li>
234
+ {% include btn_state.html states=doc.status %}
235
+ <a class="wiki-link" href="{{ doc.url | relative_url }}">{{ doc.title }}</a>
236
+ </li>
237
+ {% endfor %}
238
+ {% endfor %}
239
+ </ul>
240
+ {% if site.bonsai.entries.backlinks %}
241
+ <!-- backlinked posts/books -->
242
+ <ul>
243
+ {% assign post_blinks = page.backlinks | doc_type: "posts" %}
244
+ {% assign book_blinks = page.backlinks | doc_type: "books" %}
245
+ {% assign pb_blinks = post_blinks | concat: book_blinks %}
246
+ {% for blink in pb_blinks %}
247
+ {% assign num_linked_docs = num_linked_docs | plus: 1 %}
248
+ {% assign doc = site.documents | where: "url", blink.url | first %}
249
+ <li>
250
+ {% include btn_state.html states=doc.status %}
251
+ <a class="wiki-link" href="{{ doc.url | relative_url }}">{{ doc.title }}</a>
252
+ </li>
253
+ {% endfor %}
254
+ </ul>
255
+ {% endif %}
256
+ {% endcapture %}
257
+
258
+ <!-- render linked_docs here (the if statement is why we have to do this) -->
259
+ {% if num_linked_docs == 0 %}
260
+ <p class="text--small">No linked posts or books.</p>
261
+ {% else %}
262
+ {{ linked_docs }}
263
+ {% endif %}
264
+ </div>
265
+ </nav>
266
+ </div>
267
+ </footer>
268
+
269
+ </article>