jekyll-theme-scaffold 0.1.0 → 1.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d89c1e753e4771a39e629f85cf09c306f68b0448811e8e0e7a04380e4d1c5a29
4
- data.tar.gz: f2640e65ffa96312f5857fe64dbb30651958d63aa0c1a9e13a2609d0e357adfb
3
+ metadata.gz: 37740f0fe84bf28ab142600fd0770de2dab3a4abbc057e28670a02f46ce8312d
4
+ data.tar.gz: 0f84ce579902bca7e8cd833297d5cfd4b70801d16ca42d56c8ff6b2f33c908ed
5
5
  SHA512:
6
- metadata.gz: 4736ece470225d567b1a3235301b1cce0ab2ef79fdcf8146bd42bf64c1faa2d22c94ad5f64d9292b62603b6b99b64eae216cdd6798c7f513db7e1b926350395a
7
- data.tar.gz: 2ff2ee1d464c110ca40eb2d1b61728e65058d9dcad2e9039fd164e58df1340ef7814d93d1a6660e5880035d65524d683b55499367026f61a903f91fe10c3a4ad
6
+ metadata.gz: 44941f8459c4853c0c366a5a022bde71ad268155213cb8f344ec1fcacba19288de8bdce44f4280082b9e155618e2ec82fc5f5c21fc95bc159cdc0daca3b503fb
7
+ data.tar.gz: b5f21a486faf17e5279d22d15710e8442115a8bf79f35782ece477731dc8dc39733505e46cf6d5b11cf1754910c44ecd03a887fd4c077b7f948725cc7d40a529
data/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Scaffold <!-- omit in toc -->
2
2
 
3
- Scaffold is a *one-column minimalist Jekyll theme for bloggers*.
3
+ <a href="https://jekyll-themes.com">
4
+ <img src="https://img.shields.io/badge/featured%20on-JekyllThemes-red.svg" height="20" alt="Jekyll Themes Shield" >
5
+ </a>
6
+
7
+ Scaffold is a *minimalist yet powerful Jekyll theme for bloggers*.
4
8
 
5
9
  According to [Merriam-Webster](https://www.merriam-webster.com/), a *scaffold* is
6
10
 
@@ -12,7 +16,8 @@ Scaffold is empirical. Standing on it, you -- the blogger -- can build a great b
12
16
 
13
17
  *Check the [live demo](https://sziv2p.github.io/jekyll-theme-scaffold/).*
14
18
 
15
- ![Screenshot](screenshot.png)
19
+ ![Screenshot Light](screenshot-light.png)
20
+ ![Screenshot Dark](screenshot-dark.png)
16
21
 
17
22
  ## Features (Not a Complete List) <!-- omit in toc -->
18
23
 
@@ -22,6 +27,7 @@ Scaffold is empirical. Standing on it, you -- the blogger -- can build a great b
22
27
  - [Font Awesome](https://fontawesome.com/)
23
28
  - Archive implemented by pure Liquid
24
29
  - Pagination, via [`jekyll-paginate`](https://rubygems.org/gems/jekyll-paginate)
30
+ - TOC, via [`jekyll-toc`](https://github.com/allejo/jekyll-toc)
25
31
  - [Jekyll Feed](https://github.com/jekyll/jekyll-feed/)
26
32
  - [Jekyll SEO Tag](https://github.com/jekyll/jekyll-seo-tag/)
27
33
  - [Jekyll Sitemap](https://github.com/jekyll/jekyll-sitemap/)
@@ -107,6 +113,7 @@ If you want to use this theme on GitHub Pages, you can do that via `jekyll-remot
107
113
  | `author` | String or Array | --- | The author name(s) of the post |
108
114
  | `math` | Boolean | `false` | Does enable MathJax on this page |
109
115
  | `comments` | Boolean | `true` | Does enable the Disqus comment system |
116
+ | `toc` | Boolean | `false` | Does enable the TOC |
110
117
 
111
118
  ### Homepage
112
119
 
@@ -15,7 +15,7 @@
15
15
  {%- endif -%}
16
16
  </small>
17
17
  <br>
18
- <small>Powered by <a href="https://jekyllrb.com/" target="_blank">Jekyll</a> & <a href="https://github.com/sziv2p/jekyll-theme-pure" target="_blank">Pure</a></small>
18
+ <small>Powered by <a href="https://jekyllrb.com/" target="_blank">Jekyll</a> & <a href="https://github.com/sziv2p/jekyll-theme-scaffold" target="_blank">Scaffold</a></small>
19
19
  </div>
20
20
  {% if site.data.social %}
21
21
  <div class="footer-column">
@@ -0,0 +1,4 @@
1
+ <div class="toc-div">
2
+ <h3 class="toc-title">Table of Contents</h3>
3
+ {% include toc.html html=content class="toc" h_min=2 skip_no_ids=true %}
4
+ </div>
@@ -0,0 +1,182 @@
1
+ {% capture tocWorkspace %}
2
+ {% comment %}
3
+ Copyright (c) 2017 Vladimir "allejo" Jimenez
4
+
5
+ Permission is hereby granted, free of charge, to any person
6
+ obtaining a copy of this software and associated documentation
7
+ files (the "Software"), to deal in the Software without
8
+ restriction, including without limitation the rights to use,
9
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the
11
+ Software is furnished to do so, subject to the following
12
+ conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
+ OTHER DEALINGS IN THE SOFTWARE.
25
+ {% endcomment %}
26
+ {% comment %}
27
+ Version 1.1.0
28
+ https://github.com/allejo/jekyll-toc
29
+
30
+ "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
31
+
32
+ Usage:
33
+ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
34
+
35
+ Parameters:
36
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
37
+
38
+ Optional Parameters:
39
+ * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
40
+ * class (string) : '' - a CSS class assigned to the TOC
41
+ * id (string) : '' - an ID to assigned to the TOC
42
+ * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
43
+ * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
44
+ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
45
+ * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
46
+ * submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level
47
+ * base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
48
+ * anchor_class (string) : '' - add custom class(es) for each anchor element
49
+ * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute
50
+
51
+ Output:
52
+ An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
53
+ generate the table of contents and will NOT output the markdown given to it
54
+ {% endcomment %}
55
+
56
+ {% capture newline %}
57
+ {% endcapture %}
58
+ {% assign newline = newline | rstrip %} <!-- Remove the extra spacing but preserve the newline -->
59
+
60
+ {% capture deprecation_warnings %}{% endcapture %}
61
+
62
+ {% if include.baseurl %}
63
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "baseurl" has been deprecated, use "base_url" instead -->{{ newline }}{% endcapture %}
64
+ {% endif %}
65
+
66
+ {% if include.skipNoIDs %}
67
+ {% capture deprecation_warnings %}{{ deprecation_warnings }}<!-- jekyll-toc :: "skipNoIDs" has been deprecated, use "skip_no_ids" instead -->{{ newline }}{% endcapture %}
68
+ {% endif %}
69
+
70
+ {% capture jekyll_toc %}{% endcapture %}
71
+ {% assign orderedList = include.ordered | default: false %}
72
+ {% assign baseURL = include.base_url | default: include.baseurl | default: '' %}
73
+ {% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %}
74
+ {% assign minHeader = include.h_min | default: 1 %}
75
+ {% assign maxHeader = include.h_max | default: 6 %}
76
+ {% assign nodes = include.html | strip | split: '<h' %}
77
+
78
+ {% assign firstHeader = true %}
79
+ {% assign currLevel = 0 %}
80
+ {% assign lastLevel = 0 %}
81
+
82
+ {% capture listModifier %}{% if orderedList %}ol{% else %}ul{% endif %}{% endcapture %}
83
+
84
+ {% for node in nodes %}
85
+ {% if node == "" %}
86
+ {% continue %}
87
+ {% endif %}
88
+
89
+ {% assign currLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
90
+
91
+ {% if currLevel < minHeader or currLevel > maxHeader %}
92
+ {% continue %}
93
+ {% endif %}
94
+
95
+ {% assign _workspace = node | split: '</h' %}
96
+
97
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
98
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
99
+ {% assign htmlID = _idWorkspace[0] %}
100
+
101
+ {% assign _classWorkspace = _workspace[0] | split: 'class="' %}
102
+ {% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
103
+ {% assign htmlClass = _classWorkspace[0] %}
104
+
105
+ {% if htmlClass contains "no_toc" %}
106
+ {% continue %}
107
+ {% endif %}
108
+
109
+ {% if firstHeader %}
110
+ {% assign minHeader = currLevel %}
111
+ {% endif %}
112
+
113
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
114
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
115
+
116
+ {% if include.item_class and include.item_class != blank %}
117
+ {% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %}
118
+ {% endif %}
119
+
120
+ {% if include.submenu_class and include.submenu_class != blank %}
121
+ {% assign subMenuLevel = currLevel | minus: 1 %}
122
+ {% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %}
123
+ {% endif %}
124
+
125
+ {% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
126
+
127
+ {% if htmlID %}
128
+ {% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %}
129
+
130
+ {% if include.anchor_class %}
131
+ {% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %}
132
+ {% endif %}
133
+
134
+ {% capture listItem %}<a{{ anchorAttributes }}>{{ anchorBody }}</a>{% endcapture %}
135
+ {% elsif skipNoIDs == true %}
136
+ {% continue %}
137
+ {% else %}
138
+ {% capture listItem %}{{ anchorBody }}{% endcapture %}
139
+ {% endif %}
140
+
141
+ {% if currLevel > lastLevel %}
142
+ {% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
143
+ {% elsif currLevel < lastLevel %}
144
+ {% assign repeatCount = lastLevel | minus: currLevel %}
145
+
146
+ {% for i in (1..repeatCount) %}
147
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
148
+ {% endfor %}
149
+
150
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
151
+ {% else %}
152
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li>{% endcapture %}
153
+ {% endif %}
154
+
155
+ {% capture jekyll_toc %}{{ jekyll_toc }}<li{{ listItemClass }}>{{ listItem }}{% endcapture %}
156
+
157
+ {% assign lastLevel = currLevel %}
158
+ {% assign firstHeader = false %}
159
+ {% endfor %}
160
+
161
+ {% assign repeatCount = minHeader | minus: 1 %}
162
+ {% assign repeatCount = lastLevel | minus: repeatCount %}
163
+ {% for i in (1..repeatCount) %}
164
+ {% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
165
+ {% endfor %}
166
+
167
+ {% if jekyll_toc != '' %}
168
+ {% assign rootAttributes = '' %}
169
+ {% if include.class and include.class != blank %}
170
+ {% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %}
171
+ {% endif %}
172
+
173
+ {% if include.id and include.id != blank %}
174
+ {% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %}
175
+ {% endif %}
176
+
177
+ {% if rootAttributes %}
178
+ {% assign nodes = jekyll_toc | split: '>' %}
179
+ {% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
180
+ {% endif %}
181
+ {% endif %}
182
+ {% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc }}
@@ -3,11 +3,18 @@
3
3
  {% include head.html %}
4
4
  <body>
5
5
  <div class="container">
6
- {% include header.html %}
6
+ <aside class="sidebar-left">
7
+ {% include header.html %}
8
+ </aside>
7
9
  <main>
8
10
  {{ content }}
11
+ {% include footer.html %}
9
12
  </main>
10
- {% include footer.html %}
13
+ <aside class="sidebar-right">
14
+ {%- if page.toc -%}
15
+ {% include toc-div.html %}
16
+ {%- endif -%}
17
+ </aside>
11
18
  </div>
12
19
 
13
20
  {% if page.math %}
@@ -4,7 +4,6 @@ layout: default
4
4
 
5
5
  {{ content }}
6
6
 
7
- <div class="separator">posts</div>
8
7
  <div class="posts">
9
8
  {%- if paginator -%}
10
9
  {%- assign posts = paginator.posts -%}
@@ -56,10 +56,8 @@ layout: default
56
56
  <ul class="related-posts">
57
57
  {% for post in site.related_posts limit:3 %}
58
58
  <li>
59
- <a href="{{ post.url | relative_url }}">
60
- {{ post.title }}
61
- <small><time datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date_to_string }}</time></small>
62
- </a>
59
+ <a href="{{ post.url | relative_url }}">{{ post.title }}</a>
60
+ <small><time datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date_to_string }}</time></small>
63
61
  </li>
64
62
  {% endfor %}
65
63
  </ul>
@@ -20,6 +20,11 @@
20
20
  text-decoration: none;
21
21
  border-bottom: 1px solid;
22
22
  margin-bottom: var(--spacer);
23
+
24
+ &:hover,
25
+ &:focus {
26
+ color: var(--link-color);
27
+ }
23
28
  }
24
29
  }
25
30
 
@@ -17,7 +17,6 @@ a {
17
17
  // `:focus` is linked to `:hover` for basic accessibility
18
18
  &:hover,
19
19
  &:focus {
20
- color: var(--link-hover-color);
21
20
  text-decoration: underline;
22
21
  }
23
22
  }
@@ -28,7 +27,7 @@ figure {
28
27
  img {
29
28
  display: block;
30
29
  max-width: 100%;
31
- margin-top: var(--spacer) 0;
30
+ margin: var(--spacer) 0;
32
31
  border-radius: var(--border-radius);
33
32
  }
34
33
 
@@ -77,6 +76,10 @@ blockquote {
77
76
  p:last-child {
78
77
  margin-bottom: 0;
79
78
  }
79
+
80
+ a {
81
+ color: var(--link-color-light);
82
+ }
80
83
  }
81
84
 
82
85
  code,
@@ -86,7 +89,7 @@ pre {
86
89
 
87
90
  code {
88
91
  padding: .1em .25em;
89
- background-color: var(--border-color);
92
+ background-color: var(--code-bg);
90
93
  border-radius: var(--border-radius);
91
94
  }
92
95
 
@@ -13,6 +13,11 @@
13
13
  }
14
14
  .social-icon {
15
15
  color: inherit;
16
+
17
+ &:hover,
18
+ &:focus {
19
+ color: var(--link-color);
20
+ }
16
21
  }
17
22
 
18
23
  @media (min-width: $md-screen) {
@@ -40,8 +40,47 @@
40
40
 
41
41
  &:hover,
42
42
  &:focus {
43
- color: var(--link-hover-color);
43
+ color: var(--link-color);
44
44
  text-decoration: none;
45
45
  }
46
46
  }
47
47
  }
48
+
49
+ @media screen and (min-width: $lg-screen) {
50
+ .masthead {
51
+ text-align: center;
52
+ margin: 0;
53
+ padding: 0;
54
+ position: relative;
55
+ top: 50%;
56
+ transform: translateY(-50%);
57
+ }
58
+
59
+ .masthead-title {
60
+ display: block;
61
+ font-size: 200%;
62
+ }
63
+
64
+ .masthead-tagline {
65
+ display: block;
66
+ font-size: 100%;
67
+ }
68
+
69
+ .nav {
70
+ margin-top: var(--spacer-2);
71
+ }
72
+ .nav-item {
73
+ display: block;
74
+ margin-right: 0;
75
+ margin-bottom: var(--spacer);
76
+ font-size: 120%;
77
+
78
+ &:before {
79
+ content: none;
80
+ }
81
+
82
+ a {
83
+ border-bottom: 2px solid var(--body-color);
84
+ }
85
+ }
86
+ }
@@ -1,24 +1,6 @@
1
- .separator {
2
- display: flex;
3
- align-items: center;
4
- text-align: center;
5
- text-transform: uppercase;
6
- font-size: 80%;
7
- color: var(--border-color);
8
- margin: var(--spacer-2) 0;
1
+ .posts {
2
+ margin-top: var(--spacer-2);
9
3
  }
10
- .separator::before, .separator::after {
11
- content: '';
12
- flex: 1;
13
- border-bottom: 1px solid var(--border-color);
14
- }
15
- .separator::before {
16
- margin-right: .25em;
17
- }
18
- .separator::after {
19
- margin-left: .25em;
20
- }
21
-
22
4
  .post-card {
23
5
  margin-bottom: var(--spacer);
24
6
  padding: 1em;
@@ -27,6 +9,12 @@
27
9
 
28
10
  a {
29
11
  color: inherit;
12
+
13
+ &:hover,
14
+ &:focus {
15
+ color: var(--link-color);
16
+ text-decoration: none;
17
+ }
30
18
  }
31
19
 
32
20
  .post-title {
@@ -3,3 +3,47 @@
3
3
  margin: 0 auto;
4
4
  padding: 0 var(--spacer);
5
5
  }
6
+
7
+ .sidebar-right {
8
+ display: none;
9
+ }
10
+
11
+ @media screen and (min-width: $lg-screen) {
12
+ .container {
13
+ max-width: 100%;
14
+ margin: 0;
15
+ padding: 0;
16
+ display: flex;
17
+ }
18
+
19
+ main {
20
+ flex: 1;
21
+ max-width: 60%;
22
+ margin-left: 22.5%;
23
+ padding: 0 var(--spacer-2);
24
+ }
25
+
26
+ .sidebar-left {
27
+ position: fixed;
28
+ top: 0;
29
+ width: 22.5%;
30
+ height: 100vh;
31
+ padding: var(--spacer);
32
+ background-color: var(--code-bg);
33
+ }
34
+ }
35
+
36
+ @media screen and (min-width: $xl-screen) {
37
+ main {
38
+ max-width: 55%;
39
+ }
40
+
41
+ .sidebar-right {
42
+ display: block;
43
+ position: fixed;
44
+ top: 0;
45
+ width: 22.5%;
46
+ margin-left: 77.5%;
47
+ padding: var(--spacer);
48
+ }
49
+ }
@@ -1,10 +1,12 @@
1
1
  @import "variables";
2
+ @import "predefined";
2
3
  @import "base";
3
4
  @import "layout";
4
5
  @import "header";
5
6
  @import "footer";
6
7
  @import "post";
7
8
  @import "code";
9
+ @import "toc";
8
10
  @import "home";
9
11
  @import "pagination";
10
12
  @import "archive";
@@ -63,7 +63,7 @@
63
63
  &:hover,
64
64
  &:focus {
65
65
  color: var(--body-bg);
66
- background-color: var(--link-hover-color);
66
+ background-color: var(--link-color);
67
67
  }
68
68
  }
69
69
  }
@@ -91,11 +91,16 @@
91
91
  margin: 0;
92
92
  list-style: none;
93
93
 
94
- a {
95
- text-decoration: none;
96
-
97
- small {
98
- color: var(--body-color-light);
99
- }
94
+ small {
95
+ color: var(--body-color-light);
100
96
  }
101
97
  }
98
+
99
+ .task-list {
100
+ list-style: none;
101
+ padding-inline-start: 1em;
102
+ }
103
+ .task-list-item-checkbox {
104
+ margin: 0 .25em .25em -1em;
105
+ vertical-align: middle;
106
+ }
@@ -0,0 +1,39 @@
1
+ // Alignment
2
+
3
+ .align-right {
4
+ margin-bottom: 1rem;
5
+ margin-left: 1rem;
6
+ float: right;
7
+ }
8
+
9
+ .align-left {
10
+ margin-right: 1rem;
11
+ margin-bottom: 1rem;
12
+ float: left;
13
+ }
14
+
15
+ .align-center {
16
+ display: block;
17
+ margin-right: auto;
18
+ margin-left: auto;
19
+ }
20
+
21
+ figcaption.align-right {
22
+ text-align: right;
23
+ }
24
+
25
+ figcaption.align-left {
26
+ text-align: left;
27
+ }
28
+
29
+ figcaption.align-center {
30
+ text-align: center;
31
+ }
32
+
33
+ // Message
34
+
35
+ .message {
36
+ text-align: center;
37
+ font-size: 120%;
38
+ font-weight: bold;
39
+ }
@@ -0,0 +1,25 @@
1
+ .toc-div {
2
+ padding-top: var(--spacer);
3
+ }
4
+
5
+ .toc-title {
6
+ margin: 0;
7
+ }
8
+
9
+ .toc,
10
+ .toc ul {
11
+ list-style: none;
12
+ padding: 0;
13
+ margin: 0;
14
+ margin-inline-start: 1em;
15
+
16
+ li {
17
+ margin-top: var(--spacer);
18
+ margin-bottom: var(--spacer);
19
+ }
20
+ }
21
+
22
+ .toc {
23
+ max-height: 80vh;
24
+ overflow-y: scroll;
25
+ }
@@ -20,37 +20,33 @@ $xl-screen: 80rem;
20
20
  /* Colors
21
21
  * ─────────────────────────────────── */
22
22
 
23
- --body-color: var(--oc-gray-8);
24
- --body-color-light: var(--oc-gray-6);
25
23
  --body-bg: var(--oc-white);
26
-
27
- --heading-color: var(--oc-black);
28
-
29
24
  --code-bg: var(--oc-gray-1);
30
25
 
31
- --link-color: var(--oc-blue-6);
32
- --link-hover-color: var(--oc-blue-8);
26
+ --border-color: rgb(var(--oc-gray-5-rgb), .6);
27
+ --body-color-light: var(--oc-gray-6);
28
+ --body-color: var(--oc-gray-8);
29
+ --heading-color: var(--oc-black);
33
30
 
34
- --border-color: rgb(var(--oc-gray-5-rgb), .5);
31
+ --link-color-light: var(--oc-blue-6);
32
+ --link-color: var(--oc-blue-8);
35
33
 
36
34
  --mark-color: var(--oc-yellow-8);
37
35
  }
38
36
 
39
37
  @media (prefers-color-scheme: dark) {
40
38
  :root {
41
- --body-color: var(--oc-gray-2);
42
- --body-color-light: var(--oc-gray-5);
43
39
  --body-bg: var(--oc-gray-9);
40
+ --code-bg: var(--oc-gray-8);
44
41
 
42
+ --border-color: rgb(var(--oc-gray-7-rgb), .8);
43
+ --body-color-light: var(--oc-gray-6);
44
+ --body-color: var(--oc-gray-4);
45
45
  --heading-color: var(--oc-white);
46
46
 
47
- --code-bg: var(--oc-gray-6);
48
-
49
- --link-color: var(--oc-cyan-5);
50
- --link-hover-color: var(--oc-cyan-2);
51
-
52
- --border-color: rgb(var(--oc-gray-7-rgb), .9);
47
+ --link-color-light: var(--oc-cyan-6);
48
+ --link-color: var(--oc-cyan-4);
53
49
 
54
- --mark-color: var(--oc-yellow-2);
50
+ --mark-color: var(--oc-yellow-4);
55
51
  }
56
52
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Songzi Vong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-02 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -127,6 +127,8 @@ files:
127
127
  - _includes/head.html
128
128
  - _includes/header.html
129
129
  - _includes/mathjax.html
130
+ - _includes/toc-div.html
131
+ - _includes/toc.html
130
132
  - _layouts/archive.html
131
133
  - _layouts/default.html
132
134
  - _layouts/home.html
@@ -144,6 +146,8 @@ files:
144
146
  - _sass/scaffold/_main.scss
145
147
  - _sass/scaffold/_pagination.scss
146
148
  - _sass/scaffold/_post.scss
149
+ - _sass/scaffold/_predefined.scss
150
+ - _sass/scaffold/_toc.scss
147
151
  - _sass/scaffold/_variables.scss
148
152
  - assets/css/scaffold/normalize.css
149
153
  - assets/css/scaffold/open-color.css