jekyll-wikibonsai 0.0.9 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +135 -2
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: 50%;
|
103
|
+
width: 50%;
|
104
|
+
}
|
105
|
+
}
|