jekyll-wikibonsai 0.0.9 → 0.0.11
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-tree.svg +9 -0
- data/_includes/img/bullet-web.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 +152 -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 +84 -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/img/wikibonsai-way.png +0 -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 +139 -5
data/_layouts/home.html
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
---
|
2
|
+
layout: base
|
3
|
+
---
|
4
|
+
|
5
|
+
<div id="home" class="home">
|
6
|
+
|
7
|
+
<section class="lead">
|
8
|
+
<div class="lead__img">
|
9
|
+
<img id="home-logo" class="lead__img--size">
|
10
|
+
</div>
|
11
|
+
{% assign root = site.entries | find_exp: "item", "item.path == site.bonsai.entries.root_path" %}
|
12
|
+
<div class="lead__title hp-title">
|
13
|
+
<h1 class="p-name"><a class="wiki-link" href="{{ root.url | relative_url }}">{{ page.title }}</a></h4>
|
14
|
+
</div>
|
15
|
+
<div class="lead__content markdown hp-content">
|
16
|
+
{{ content }}
|
17
|
+
</div>
|
18
|
+
</section>
|
19
|
+
|
20
|
+
<div class="home__content">
|
21
|
+
|
22
|
+
{% if site.bonsai.home.notable.enabled %}
|
23
|
+
<section class="featured">
|
24
|
+
<div class="featured__header">
|
25
|
+
<h4>Notable</h4>
|
26
|
+
</div>
|
27
|
+
<div class="featured__content">
|
28
|
+
<ul>
|
29
|
+
{% for notable in site.bonsai.home.notable.docs %}
|
30
|
+
{% assign doc = site.documents | find_exp: "item", "item.path contains notable" %}
|
31
|
+
<li>
|
32
|
+
<div class="item">
|
33
|
+
<div class="item__status">
|
34
|
+
{% include btn_state.html states=doc.status %}
|
35
|
+
</div>
|
36
|
+
<div class="item__text">
|
37
|
+
<span>
|
38
|
+
<a class="wiki-link" href="{{ doc.url | relative_url }}"> {{ doc.title }}</a>
|
39
|
+
</span>
|
40
|
+
<time class="text--date dt-updated">
|
41
|
+
{{ doc.updated | date: '%s' | slice: 0, 10 | date: site.bonsai.date_format }}
|
42
|
+
</time>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</li>
|
46
|
+
{% endfor %}
|
47
|
+
</ul>
|
48
|
+
{% assign about_page = site.pages | where: "name", "about.md" %}
|
49
|
+
<!-- using '.first' to test if any results were found -->
|
50
|
+
{% if about_page.first %}
|
51
|
+
<p class="featured__footer">For more, see <a class="wiki-link" href="{{ '/about/' | relative_url }}">about {{ site.data.emoji.about }}</a></p>
|
52
|
+
{% endif %}
|
53
|
+
</div>
|
54
|
+
</section>
|
55
|
+
{% endif %}
|
56
|
+
|
57
|
+
{% if site.bonsai.home.recent.enabled %}
|
58
|
+
<section class="featured__section">
|
59
|
+
<div class="featured__header">
|
60
|
+
<h4>Recent</h4>
|
61
|
+
</div>
|
62
|
+
<div class="featured__content">
|
63
|
+
<ul>
|
64
|
+
{% assign recent_docs = site.documents | sort: 'updated' | reverse %}
|
65
|
+
{% for doc in recent_docs limit: site.bonsai.home.recent.cap %}
|
66
|
+
<li>
|
67
|
+
<div class="item">
|
68
|
+
<div class="item__status">
|
69
|
+
{% include btn_state.html states=doc.status %}
|
70
|
+
</div>
|
71
|
+
<div class="item__text">
|
72
|
+
<span>
|
73
|
+
<a class="wiki-link" href="{{ doc.url | relative_url }}"> {{ doc.title }}</a>
|
74
|
+
</span>
|
75
|
+
<time class="text--date dt-updated">
|
76
|
+
{{ doc.updated | date: '%s' | slice: 0, 10 | date: site.bonsai.date_format }}
|
77
|
+
</time>
|
78
|
+
</div>
|
79
|
+
</div>
|
80
|
+
</li>
|
81
|
+
{% endfor %}
|
82
|
+
</ul>
|
83
|
+
{% assign recent_page = site.pages | where: "name", "recent.md" %}
|
84
|
+
<!-- using '.first' to test if any results were found -->
|
85
|
+
{% if recent_page.first %}
|
86
|
+
<p class="featured__footer">
|
87
|
+
For more updates, check the <a class="wiki-link" href="{{ '/recent/' | relative_url }}">weather {{ site.data.emoji.recent }}</a>
|
88
|
+
</p>
|
89
|
+
{% endif %}
|
90
|
+
</div>
|
91
|
+
</section>
|
92
|
+
{% endif %}
|
93
|
+
|
94
|
+
</div>
|
95
|
+
|
96
|
+
</div>
|
data/_layouts/map.html
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
layout: base
|
3
|
+
---
|
4
|
+
<div id="map" class="map">
|
5
|
+
|
6
|
+
<div class="hp-title">
|
7
|
+
<h1 class="p-name">{{ site.data.emoji.bonsai }} {{ page.title }}</h1>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="hp-content e-content p-name">
|
11
|
+
{{ content }}
|
12
|
+
|
13
|
+
{% assign child_nodes = page.nodes | where_exp: "node", "node.ancestors.size == 0"%}
|
14
|
+
{% include branch.html children=child_nodes %}
|
15
|
+
</div>
|
16
|
+
|
17
|
+
</div>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
---
|
2
|
+
layout: base
|
3
|
+
---
|
4
|
+
|
5
|
+
<article id="post"
|
6
|
+
class="post h-entry"
|
7
|
+
role="article"
|
8
|
+
itemscope
|
9
|
+
itemtype="http://schema.org/BlogPosting"
|
10
|
+
aria-labelledby="{{ page.title | slugify }}-title">
|
11
|
+
|
12
|
+
<div class="post__title hp-title">
|
13
|
+
<h1 class="p-name">{{ page.title }}</h1>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<section class="post__infobox">
|
17
|
+
<div class="infobox">
|
18
|
+
{% include toc.html html=content wrap_class="toc" class="toc__list" item_class="toc__list-item" anchor_class="toc__anchor" %}
|
19
|
+
{% include dates.html updated=page.updated date=page.date %}
|
20
|
+
<div class="infobox__bar">
|
21
|
+
{% include btn_state.html states=page.status %}
|
22
|
+
{% if site.social.share.enabled %}
|
23
|
+
{% include share.html %}
|
24
|
+
{% endif %}
|
25
|
+
</div>
|
26
|
+
<div class="infobox__sem-tags p-category">
|
27
|
+
{% assign tags_attrs = page.attributes | link_type: "tags" %}
|
28
|
+
{% include tags.html tags_attrs=tags_attrs tag_fm=page.tags %}
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</section>
|
32
|
+
|
33
|
+
<div class="post__content markdown hp-content e-content p-name">
|
34
|
+
{{ content }}
|
35
|
+
</div>
|
36
|
+
|
37
|
+
</article>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
layout: base
|
3
|
+
---
|
4
|
+
|
5
|
+
<div id="privacy" class="privacy">
|
6
|
+
|
7
|
+
<div class="hp-title">
|
8
|
+
<h1 class="p-name">{{ site.data.emoji.privacy }} {{ page.title }}</h1>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="hp-content markdown e-content p-name">
|
12
|
+
{{ content }}
|
13
|
+
</div>
|
14
|
+
|
15
|
+
</div>
|
@@ -0,0 +1,66 @@
|
|
1
|
+
---
|
2
|
+
layout: base
|
3
|
+
---
|
4
|
+
<div id="recent" class="recent">
|
5
|
+
|
6
|
+
<section class="recent__leader">
|
7
|
+
<div class="hp-title">
|
8
|
+
<h1 class="p-name">{{ site.data.emoji.recent }} {{ page.title }}</h1>
|
9
|
+
</div>
|
10
|
+
<div class="leader">
|
11
|
+
<div class="leader__content markdown hp-content e-content p-name">
|
12
|
+
{{ content }}
|
13
|
+
</div>
|
14
|
+
<aside class="key">
|
15
|
+
<span class="key__title">Key</span>
|
16
|
+
<div class="key__content">
|
17
|
+
<p class="text--small"><em>{{ site.data.emoji.created }} Planted (Created) (Inactive)</em></p>
|
18
|
+
<p>{{ site.data.emoji.published }} Transplanted (Published)</p>
|
19
|
+
<p>{{ site.data.emoji.updated }} Last Tended (Updated)</p>
|
20
|
+
<p class="text--small"><em>{{ site.data.emoji.deleted }} Uprooted (Deleted) (Inactive)</em></p>
|
21
|
+
</div>
|
22
|
+
</aside>
|
23
|
+
</div>
|
24
|
+
</section>
|
25
|
+
|
26
|
+
<section class="recent__content">
|
27
|
+
<ul>
|
28
|
+
{% assign recent_docs = site.documents | sort: 'updated' | reverse %}
|
29
|
+
{% for doc in recent_docs limit: site.bonsai.recent.cap %}
|
30
|
+
<!-- determine if doc's recent status -->
|
31
|
+
<!-- from: https://stackoverflow.com/questions/37340705/shopify-liquid-find-number-of-days-between-two-dates -->
|
32
|
+
<!-- note: slicing off milliseconds -->
|
33
|
+
<!-- {% assign ctime = doc.created | date: '%s' | slice: 0, 10 %} -->
|
34
|
+
{% assign ptime = doc.date | date: '%s' | slice: 0, 10 %}
|
35
|
+
{% assign mtime = doc.updated | date: '%s' | slice: 0, 10 %}
|
36
|
+
{% assign sec_diff = mtime | minus: ptime %}
|
37
|
+
{% assign is_same_day = sec_diff | divided_by: 3600 | divided_by: 24 %}
|
38
|
+
<li>
|
39
|
+
<div class="item">
|
40
|
+
<div class="bullet-scene">
|
41
|
+
<span class="bullet-scene__change-type">
|
42
|
+
{% if is_same_day == 0 %}
|
43
|
+
{{ site.data.emoji.published }}
|
44
|
+
{% else %}
|
45
|
+
{{ site.data.emoji.updated }}
|
46
|
+
{% endif %}
|
47
|
+
</span>
|
48
|
+
<span class="bullet-scene__status">
|
49
|
+
{% include btn_state.html states=doc.status %}
|
50
|
+
</span>
|
51
|
+
</div>
|
52
|
+
<div class="item__text">
|
53
|
+
<span class="item__text--big">
|
54
|
+
<a class="wiki-link" href="{{ doc.url | relative_url }}">{{ doc.title }}</a>
|
55
|
+
</span>
|
56
|
+
<time class="text--date dt-updated">
|
57
|
+
{{ doc.updated | slice: 0, 10 | date: site.bonsai.date_format }}
|
58
|
+
</time>
|
59
|
+
</div>
|
60
|
+
</div>
|
61
|
+
</li>
|
62
|
+
{% endfor %}
|
63
|
+
</ul>
|
64
|
+
</section>
|
65
|
+
|
66
|
+
</div>
|
data/_layouts/state.html
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
---
|
2
|
+
layout: base
|
3
|
+
---
|
4
|
+
|
5
|
+
{% assign states = site.states %}
|
6
|
+
{% assign index_state_title = "Plant Tags Page" %}
|
7
|
+
|
8
|
+
<div id="state" class="state">
|
9
|
+
|
10
|
+
<nav class="state__nav">
|
11
|
+
<ul>
|
12
|
+
{% for state in states %}
|
13
|
+
<li class="{% if page.url == state.url %}active{% endif %}">
|
14
|
+
<a class="stat-tag" href="{{ state.url | relative_url }}">
|
15
|
+
{{ state.emoji }}
|
16
|
+
</a>
|
17
|
+
</li>
|
18
|
+
{% endfor %}
|
19
|
+
</ul>
|
20
|
+
</nav>
|
21
|
+
|
22
|
+
<div class="state__content">
|
23
|
+
|
24
|
+
<section>
|
25
|
+
<div class="hp-title">
|
26
|
+
<h1 class="p-name">{{ page.emoji }} {{ page.title }}</h1>
|
27
|
+
</div>
|
28
|
+
<div class="markdown hp-content e-content p-name">
|
29
|
+
{{ content }}
|
30
|
+
</div>
|
31
|
+
</section>
|
32
|
+
|
33
|
+
<!-- display all states on root state -->
|
34
|
+
{% if page.path == site.bonsai.states.root_path %}
|
35
|
+
<section class="has-web-links">
|
36
|
+
{% for state in states %}
|
37
|
+
{% if state.path != site.bonsai.states.root_path %}
|
38
|
+
<h4>{{ state.emoji }} {{ state.title }}</h4>
|
39
|
+
{{ state.content | markdownify }}
|
40
|
+
{% endif %}
|
41
|
+
{% endfor %}
|
42
|
+
</section>
|
43
|
+
<!-- display entries with that state as its status -->
|
44
|
+
{% else %}
|
45
|
+
<section>
|
46
|
+
<!-- page == tag (from tag-nav) -->
|
47
|
+
{% assign docs_w_stat = site.documents | where: 'status', page.emoji %}
|
48
|
+
{% if docs_w_stat.size == 0 and page.path != site.bonsai.states.root_path %}
|
49
|
+
<div class="state__list-wrap--empty">
|
50
|
+
<span>There are currently no {{ page.emoji }}s.</span>
|
51
|
+
</div>
|
52
|
+
{% else %}
|
53
|
+
<ul class="state__list-wrap">
|
54
|
+
{% for entry in docs_w_stat %}
|
55
|
+
<li>
|
56
|
+
{{ page.emoji }} <a class="wiki-link" href="{{ entry.url | relative_url }}">{{ entry.title }}</a>
|
57
|
+
</li>
|
58
|
+
{% endfor %}
|
59
|
+
</ul>
|
60
|
+
{% endif %}
|
61
|
+
</section>
|
62
|
+
{% endif %}
|
63
|
+
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<footer class="state__footer text--small">
|
67
|
+
Descriptions only reflect the spirit of this garden. Check out the official description: <a class="web-link" href="{{ page.emojipedia }}"> here </a>.
|
68
|
+
</footer>
|
69
|
+
|
70
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
---
|
2
|
+
# Jekyll layout that compresses HTML
|
3
|
+
# v3.1.0
|
4
|
+
# http://jch.penibelst.de/
|
5
|
+
# © 2014–2015 Anatol Broder
|
6
|
+
# MIT License
|
7
|
+
---
|
8
|
+
|
9
|
+
{% capture _LINE_FEED %}
|
10
|
+
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
//
|
2
|
+
// Code and syntax highlighting
|
3
|
+
//
|
4
|
+
// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type
|
5
|
+
|
6
|
+
// from: https://bnhr.xyz/2017/03/25/add-syntax-highlighting-to-your-jekyll-site-with-rouge.html
|
7
|
+
// @import './code_themes/gruvbox';
|
8
|
+
@import './code_themes/solarized';
|
9
|
+
// @import './code_themes/monokai';
|
10
|
+
|
11
|
+
code {
|
12
|
+
padding: $sp-1 $sp-1;
|
13
|
+
font-weight: 400;
|
14
|
+
border-radius: $border-radius;
|
15
|
+
background-color: var(--accent-dark-color);
|
16
|
+
}
|
17
|
+
|
18
|
+
// Avoid appearance of dark border around visited code links in Safari
|
19
|
+
a:visited code {
|
20
|
+
border-color: var(--accent-light-color);
|
21
|
+
}
|
22
|
+
|
23
|
+
// Content structure for highlighted code blocks using fences or Liquid
|
24
|
+
//
|
25
|
+
// ```[LANG]...```, no kramdown line_numbers:
|
26
|
+
// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code
|
27
|
+
//
|
28
|
+
// ```[LANG]...```, kramdown line_numbers = true:
|
29
|
+
// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code
|
30
|
+
// > div.table-wrapper > table.rouge-table > tbody > tr
|
31
|
+
// > td.rouge-gutter.gl > pre.lineno
|
32
|
+
// | td.rouge-code > pre
|
33
|
+
//
|
34
|
+
// {% highlight LANG %}...{% endhighlight %}:
|
35
|
+
// figure.highlight > pre > code.language-LANG
|
36
|
+
//
|
37
|
+
// {% highlight LANG linenos %}...{% endhighlight %}:
|
38
|
+
// figure.highlight > pre > code.language-LANG
|
39
|
+
// > div.table-wrapper > table.rouge-table > tbody > tr
|
40
|
+
// > td.gutter.gl > pre.lineno
|
41
|
+
// | td.code > pre
|
42
|
+
//
|
43
|
+
// fix_linenos removes the outermost pre when it encloses table.rouge-table
|
44
|
+
//
|
45
|
+
// See docs/index-test.md for some tests.
|
46
|
+
//
|
47
|
+
// No kramdown line_numbers: fences and Liquid highlighting look the same.
|
48
|
+
// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?
|
49
|
+
|
50
|
+
// ```[LANG]...```
|
51
|
+
div.highlighter-rouge {
|
52
|
+
overflow-x: auto;
|
53
|
+
padding: $sp-3;
|
54
|
+
margin-top: $sp-3;
|
55
|
+
margin-bottom: $sp-3;
|
56
|
+
background-color: var(--accent-dark-color);
|
57
|
+
border-radius: $border-radius;
|
58
|
+
box-shadow: none;
|
59
|
+
-webkit-overflow-scrolling: touch;
|
60
|
+
|
61
|
+
div.highlight,
|
62
|
+
pre.highlight,
|
63
|
+
code {
|
64
|
+
padding: 0;
|
65
|
+
margin: 0;
|
66
|
+
border: 0;
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
// {% highlight LANG %}...{% endhighlight %},
|
71
|
+
// {% highlight LANG linenos %}...{% endhighlight %}:
|
72
|
+
figure.highlight {
|
73
|
+
padding: $sp-3;
|
74
|
+
margin-top: 0;
|
75
|
+
margin-bottom: $sp-3;
|
76
|
+
background-color: var(--accent-dark-color);
|
77
|
+
border-radius: $border-radius;
|
78
|
+
box-shadow: none;
|
79
|
+
-webkit-overflow-scrolling: touch;
|
80
|
+
|
81
|
+
pre,
|
82
|
+
code {
|
83
|
+
padding: 0;
|
84
|
+
margin: 0;
|
85
|
+
border: 0;
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
// ```[LANG]...```, kramdown line_numbers = true,
|
90
|
+
// {% highlight LANG linenos %}...{% endhighlight %}:
|
91
|
+
.highlight .table-wrapper {
|
92
|
+
padding: 0;
|
93
|
+
margin: 0;
|
94
|
+
border: 0;
|
95
|
+
box-shadow: none;
|
96
|
+
|
97
|
+
td,
|
98
|
+
pre {
|
99
|
+
@include fs-2;
|
100
|
+
min-width: 0;
|
101
|
+
padding: 0;
|
102
|
+
background-color: var(--accent-dark-color);
|
103
|
+
border: 0;
|
104
|
+
}
|
105
|
+
|
106
|
+
td.gl {
|
107
|
+
padding-right: $sp-3;
|
108
|
+
}
|
109
|
+
|
110
|
+
pre {
|
111
|
+
margin: 0;
|
112
|
+
line-height: 2;
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
.code-example {
|
117
|
+
padding: $sp-3;
|
118
|
+
margin-bottom: $sp-3;
|
119
|
+
overflow: auto;
|
120
|
+
border: 1px solid var(--accent-light-color);
|
121
|
+
border-radius: $border-radius;
|
122
|
+
|
123
|
+
+ .highlighter-rouge,
|
124
|
+
+ figure.highlight {
|
125
|
+
position: relative;
|
126
|
+
margin-top: -$sp-4;
|
127
|
+
border-right: 1px solid var(--accent-light-color);
|
128
|
+
border-bottom: 1px solid var(--accent-light-color);
|
129
|
+
border-left: 1px solid var(--accent-light-color);
|
130
|
+
border-top-left-radius: 0;
|
131
|
+
border-top-right-radius: 0;
|
132
|
+
}
|
133
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
// two column layout
|
2
|
+
|
3
|
+
.side-bar {
|
4
|
+
position: fixed;
|
5
|
+
z-index: $z-nav;
|
6
|
+
display: none;
|
7
|
+
height: 100vh;
|
8
|
+
|
9
|
+
@include mq(md) {
|
10
|
+
display: block;
|
11
|
+
width: $nav-width-md;
|
12
|
+
}
|
13
|
+
|
14
|
+
@include mq(lg) {
|
15
|
+
display: block;
|
16
|
+
width: $nav-width-lg;
|
17
|
+
}
|
18
|
+
|
19
|
+
&.nav-open {
|
20
|
+
display: block;
|
21
|
+
width: 100vw;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
.main {
|
26
|
+
@include container;
|
27
|
+
display: flex;
|
28
|
+
flex-direction: column;
|
29
|
+
min-height: 100vh;
|
30
|
+
|
31
|
+
@include mq(md) {
|
32
|
+
margin-left: $nav-width-md;
|
33
|
+
}
|
34
|
+
|
35
|
+
@include mq(lg) {
|
36
|
+
margin-left: $nav-width-lg;
|
37
|
+
}
|
38
|
+
|
39
|
+
&__content {
|
40
|
+
flex: 1 0 auto;
|
41
|
+
}
|
42
|
+
|
43
|
+
&__footer {
|
44
|
+
// 'sticky footer' from: https://css-tricks.com/couple-takes-sticky-footer/#there-is-flexbox
|
45
|
+
// ex = local
|
46
|
+
// footer = main__footer
|
47
|
+
// content = main__content
|
48
|
+
// body = main
|
49
|
+
// html, body = main (height is min-height)
|
50
|
+
flex-shrink: 0;
|
51
|
+
display: flex;
|
52
|
+
|
53
|
+
padding-top: $sp-10;
|
54
|
+
}
|
55
|
+
}
|
@@ -0,0 +1,105 @@
|
|
1
|
+
// link -- a tag -- styles
|
2
|
+
|
3
|
+
a {
|
4
|
+
text-decoration: none;
|
5
|
+
}
|
6
|
+
|
7
|
+
a.sem-tag {
|
8
|
+
@include fs-2;
|
9
|
+
color: var(--wiki-link-color);
|
10
|
+
}
|
11
|
+
|
12
|
+
a.stat-tag {
|
13
|
+
color: var(--body-text-color);
|
14
|
+
filter: drop-shadow(0 0 0.2mm $drop-shadow-green);
|
15
|
+
}
|
16
|
+
|
17
|
+
a.web-link {
|
18
|
+
color: var(--link-color);
|
19
|
+
text-decoration: none;
|
20
|
+
background-image: linear-gradient(
|
21
|
+
var(--link-underline-color) 0%,
|
22
|
+
var(--link-underline-color) 100%
|
23
|
+
);
|
24
|
+
background-repeat: repeat-x;
|
25
|
+
background-position: 0 100%;
|
26
|
+
background-size: 1px 1px;
|
27
|
+
|
28
|
+
&:hover {
|
29
|
+
background-image: linear-gradient(
|
30
|
+
var(--link-color) 0%,
|
31
|
+
var(--link-color) 100%
|
32
|
+
);
|
33
|
+
background-size: 1px 1px;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
// wiki-link classes
|
38
|
+
|
39
|
+
.invalid-wiki-link {
|
40
|
+
color: var(--invalid-wiki-link-color);
|
41
|
+
cursor: help;
|
42
|
+
}
|
43
|
+
|
44
|
+
a.wiki-link {
|
45
|
+
color: var(--wiki-link-color);
|
46
|
+
text-decoration: none;
|
47
|
+
background-image: linear-gradient(
|
48
|
+
var(--wiki-link-underline-color) 0%,
|
49
|
+
var(--wiki-link-underline-color) 100%
|
50
|
+
);
|
51
|
+
background-repeat: repeat-x;
|
52
|
+
background-position: 0 100%;
|
53
|
+
background-size: 1px 1px;
|
54
|
+
|
55
|
+
&:hover {
|
56
|
+
background-image: linear-gradient(
|
57
|
+
var(--wiki-link-color) 0%,
|
58
|
+
var(--wiki-link-color) 100%
|
59
|
+
);
|
60
|
+
background-size: 1px 1px;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
.embed-wrapper {
|
65
|
+
position: relative;
|
66
|
+
border: 1px solid var(--accent-light-color);
|
67
|
+
border-radius: 15px;
|
68
|
+
padding: $sp-3;
|
69
|
+
|
70
|
+
.embed-title {
|
71
|
+
@include fs-6;
|
72
|
+
padding-top: $sp-3;
|
73
|
+
padding-left: $sp-3;
|
74
|
+
}
|
75
|
+
|
76
|
+
.embed-content {
|
77
|
+
padding: $sp-3;
|
78
|
+
}
|
79
|
+
|
80
|
+
.embed-wiki-link {
|
81
|
+
position: absolute;
|
82
|
+
top: 1em;
|
83
|
+
right: 1em;
|
84
|
+
|
85
|
+
&::before {
|
86
|
+
content: "🥾";
|
87
|
+
}
|
88
|
+
|
89
|
+
&:hover {
|
90
|
+
filter: drop-shadow(0 0 0.8mm $drop-shadow-brown);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
.embed-image-wrapper {
|
96
|
+
display: flex;
|
97
|
+
justify-content: center;
|
98
|
+
padding-top: $sp-2;
|
99
|
+
padding-bottom: $sp-2;
|
100
|
+
|
101
|
+
.embed-image {
|
102
|
+
height: 75%;
|
103
|
+
width: 75%;
|
104
|
+
}
|
105
|
+
}
|