jekyll-wikibonsai 0.0.8 â 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +57 -0
- data/_config.yml +269 -0
- data/_data/emoji.yml +46 -0
- data/_data/themes.yml +145 -0
- data/_includes/anchor-headings.html +156 -0
- data/_includes/branch.html +18 -0
- data/_includes/btn_state.html +14 -0
- data/_includes/connect.html +46 -0
- data/_includes/cookie-consent.html +79 -0
- data/_includes/dates.html +22 -0
- data/_includes/hp-tooltip.html +106 -0
- data/_includes/img/bullet-ancestor.svg +5 -0
- data/_includes/img/bullet-branch.svg +7 -0
- data/_includes/img/bullet-net-web.svg +9 -0
- data/_includes/img/bullet-tree.svg +9 -0
- data/_includes/img/pencil-filter.svg +17 -0
- data/_includes/share.html +47 -0
- data/_includes/site-nav.html +100 -0
- data/_includes/tags.html +49 -0
- data/_includes/themes.scss.liquid +80 -0
- data/_includes/toc.html +187 -0
- data/_layouts/404.html +10 -0
- data/_layouts/about.html +14 -0
- data/_layouts/archive.html +77 -0
- data/_layouts/base.html +68 -0
- data/_layouts/book.html +40 -0
- data/_layouts/entry.html +269 -0
- data/_layouts/home.html +96 -0
- data/_layouts/map.html +17 -0
- data/_layouts/post.html +37 -0
- data/_layouts/privacy.html +15 -0
- data/_layouts/recent.html +66 -0
- data/_layouts/state.html +70 -0
- data/_layouts/table-wrappers.html +7 -0
- data/_layouts/vendor/compress.html +10 -0
- data/_sass/base/_code.scss +133 -0
- data/_sass/base/_layout.scss +55 -0
- data/_sass/base/_link.scss +105 -0
- data/_sass/base/_main.scss +96 -0
- data/_sass/base/_markdown.scss +281 -0
- data/_sass/base/_typography.scss +89 -0
- data/_sass/base/code_themes/_gruvbox.scss +92 -0
- data/_sass/base/code_themes/_monokai.scss +217 -0
- data/_sass/base/code_themes/_solarized.scss +84 -0
- data/_sass/components/_btn.scss +95 -0
- data/_sass/components/_infobox.scss +48 -0
- data/_sass/components/_item.scss +28 -0
- data/_sass/components/_search.scss +61 -0
- data/_sass/components/_tag_pills.scss +24 -0
- data/_sass/components/_visited.scss +42 -0
- data/_sass/includes/_anchor_headings.scss +36 -0
- data/_sass/includes/_connect.scss +8 -0
- data/_sass/includes/_cookie_consent.scss +46 -0
- data/_sass/includes/_dates.scss +6 -0
- data/_sass/includes/_hp_tooltip.scss +41 -0
- data/_sass/includes/_share.scss +10 -0
- data/_sass/includes/_site_nav.scss +97 -0
- data/_sass/includes/_svg.scss +89 -0
- data/_sass/includes/_toc.scss +38 -0
- data/_sass/layouts/_404.scss +3 -0
- data/_sass/layouts/_about.scss +3 -0
- data/_sass/layouts/_archive.scss +26 -0
- data/_sass/layouts/_book.scss +17 -0
- data/_sass/layouts/_entry.scss +156 -0
- data/_sass/layouts/_home.scss +75 -0
- data/_sass/layouts/_map.scss +3 -0
- data/_sass/layouts/_post.scss +17 -0
- data/_sass/layouts/_privacy.scss +3 -0
- data/_sass/layouts/_recent.scss +77 -0
- data/_sass/layouts/_state.scss +98 -0
- data/_sass/main.scss +73 -0
- data/_sass/util/_functions.scss +9 -0
- data/_sass/util/_variables.scss +113 -0
- data/_sass/util/mixins/_buttons.scss +27 -0
- data/_sass/util/mixins/_layout.scss +81 -0
- data/_sass/util/mixins/_typography.scss +84 -0
- data/_sass/vendor/normalize.scss/README.md +7 -0
- data/_sass/vendor/normalize.scss/normalize.scss +349 -0
- data/assets/css/styles.scss +31 -0
- data/assets/font/Cutive_Mono/CutiveMono-Regular.ttf +0 -0
- data/assets/font/Cutive_Mono/OFL.txt +93 -0
- data/assets/font/Old_Standard_TT/OFL.txt +93 -0
- data/assets/font/Old_Standard_TT/OldStandardTT-Bold.ttf +0 -0
- data/assets/font/Old_Standard_TT/OldStandardTT-Italic.ttf +0 -0
- data/assets/font/Old_Standard_TT/OldStandardTT-Regular.ttf +0 -0
- data/assets/font/exo2/Exo2-Italic-VariableFont_wght.ttf +0 -0
- data/assets/font/exo2/Exo2-VariableFont_wght.ttf +0 -0
- data/assets/font/exo2/OFL.txt +93 -0
- data/assets/font/exo2/README.txt +81 -0
- data/assets/font/exo2/static/Exo2-Black.ttf +0 -0
- data/assets/font/exo2/static/Exo2-BlackItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Bold.ttf +0 -0
- data/assets/font/exo2/static/Exo2-BoldItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraBold.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraBoldItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraLight.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ExtraLightItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Italic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Light.ttf +0 -0
- data/assets/font/exo2/static/Exo2-LightItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Medium.ttf +0 -0
- data/assets/font/exo2/static/Exo2-MediumItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Regular.ttf +0 -0
- data/assets/font/exo2/static/Exo2-SemiBold.ttf +0 -0
- data/assets/font/exo2/static/Exo2-SemiBoldItalic.ttf +0 -0
- data/assets/font/exo2/static/Exo2-Thin.ttf +0 -0
- data/assets/font/exo2/static/Exo2-ThinItalic.ttf +0 -0
- data/assets/img/bonsai-dark.png +0 -0
- data/assets/img/bonsai-dark.svg +106 -0
- data/assets/img/bonsai-light.png +0 -0
- data/assets/img/bonsai-light.svg +81 -0
- data/assets/img/bonsai-star.png +0 -0
- data/assets/img/bonsai-star.svg +1 -0
- data/assets/img/books/the-ancient-art-of-bonsai.png +0 -0
- data/assets/img/favicon-dark.png +0 -0
- data/assets/img/favicon-light.png +0 -0
- data/assets/img/nav-base-dark.svg +1 -0
- data/assets/img/nav-base-light.svg +1 -0
- data/assets/img/nav-base-star.svg +1 -0
- data/assets/img/nav-bonsai-dark.svg +1 -0
- data/assets/img/nav-bonsai-light.svg +1 -0
- data/assets/img/nav-bonsai-star.svg +1 -0
- data/assets/js/entry.js +130 -0
- data/assets/js/graph.js +64 -0
- data/assets/js/scripts.js +64 -0
- data/assets/js/search.js +165 -0
- data/assets/js/site-nav.js +132 -0
- data/assets/js/theme-colors.js +57 -0
- data/assets/js/vendor/lunr.js +3475 -0
- data/assets/js/vendor/lunr.min.js +6 -0
- data/assets/js/visited-nav.js +65 -0
- metadata +289 -4
- data/lib/jekyll-wikibonsai/version.rb +0 -9
- data/lib/jekyll-wikibonsai.rb +0 -10
@@ -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>
|
data/_includes/tags.html
ADDED
@@ -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
|
+
}
|