jekyll-theme-hamilton 0.1.2 → 1.2.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: 5645fb9778838423d8c2a7e7b3ed266aac69a656d38444d8ece92b74f1958eac
4
- data.tar.gz: 81d332f313d19a3934e7647bb0d2850cfab5486b864949d600b65cb550cca30a
3
+ metadata.gz: 42bdeffb4ae6b08b04c14534c27be8dc95b79120f4f059bec16e5e08c5a15c2a
4
+ data.tar.gz: bf5ff5f7d32ba307fd9ce3e3020188b9ee2d6204572d98dead5e06c136eca620
5
5
  SHA512:
6
- metadata.gz: f79d43c995d3920e4c041b089f4306c18a0fcdbc3433c480feae728872b4c909a6c8775cd7a12b5dea948bb100449933ad8ab386ad606dd91f71e3036220b8a7
7
- data.tar.gz: f0e872a09ea5f678b0631317c408a98a553afed6d9e302b189df29bab38cf34dd16357ddcbc943785e2fcd58c8201cb50585e3c4a18807455cb2f829c3716e24
6
+ metadata.gz: 57ffc4c8843d390a08c8f51dfcc0519bd607c673167b4bd8aab5c4c7a6ebe104320e2794ca607348a6e57eb0b061763bba781234de187f023ecc4038066bf359
7
+ data.tar.gz: 413df9789a645a2037271405447032a3cce57987606d19b5881f6bed8edb3c441d8b4850c7d5c176f7866b4ee88818d6c92b3048fc0cc7c52e27c40b8fdeccde
data/README.md CHANGED
@@ -4,7 +4,9 @@ Another minimal style of Jekyll theme for writers. The original purpose of this
4
4
 
5
5
  Please check out the [demo](https://ngzhio.github.io/jekyll-theme-hamilton/).
6
6
 
7
- ![screenshot](screenshot.png)
7
+ | Daylight | Sunrise/Sunset | Midnight |
8
+ | --- | --- | --- |
9
+ | ![screenshot](screenshot.png) | ![screenshot](screenshot-sunrise.png) | ![screenshot](screenshot-midnight.png)
8
10
 
9
11
  ## Features <!-- omit in toc -->
10
12
 
@@ -19,6 +21,7 @@ Please check out the [demo](https://ngzhio.github.io/jekyll-theme-hamilton/).
19
21
  - Configurable page navigation
20
22
  - Customizable styles and skins
21
23
  - Archive pages implemented in pure Liquid
24
+ - An elegant way to import images on posts
22
25
 
23
26
  ## Table of Contents <!-- omit in toc -->
24
27
 
@@ -27,6 +30,7 @@ Please check out the [demo](https://ngzhio.github.io/jekyll-theme-hamilton/).
27
30
  - [Optional Parameters](#optional-parameters)
28
31
  - [Archive Pages](#archive-pages)
29
32
  - [MathJax](#mathjax)
33
+ - [Images](#images)
30
34
  - [Customization](#customization)
31
35
  - [Metadata](#metadata)
32
36
  - [Navigation](#navigation)
@@ -109,6 +113,30 @@ layout: archive-years
109
113
 
110
114
  You can enable MathJax on each post or page, just set `math: true` on that page.
111
115
 
116
+ ## Images
117
+
118
+ Hamilton provides a template [`image.html`](_includes/image.html) to let you import images on each post through an elegant way. For example,
119
+
120
+ ```liquid
121
+ {% include image.html src="the/path/to/the/image" %}
122
+ ```
123
+
124
+ By default, the alignment of the image is center, but you can configure the alignment to left or right by passing a parameter `align`, for example,
125
+
126
+ ```liquid
127
+ {% include image.html src="the/path/to/the/image" align="left" %}
128
+ ```
129
+
130
+ You can also configure the width and height of the image,
131
+
132
+ ```liquid
133
+ {% include image.html src="the/path/to/the/image" width="50%" height="128px" %}
134
+ ```
135
+
136
+ Besides, you can pass the `caption` parameter to the include, then it will wrap the `img` with a `figure` block; alternatively, you can pass the `alt` parameter to the include.
137
+
138
+ If you feel that passing a long path to the image to the include is ugly and wasting time, you can replace the `src` parameter with the `name` parameter, which is just the name of the image, and by default, the path would be `assets/img/{{ page.title | slugify}}/{{ include.name }}`.
139
+
112
140
  ## Customization
113
141
 
114
142
  ### Metadata
@@ -1,10 +1,46 @@
1
1
  <footer id="footer" class="site-footer">
2
2
  <div class="wrapper">
3
- <p class="feed-subscribe">
4
- <a href="{{ 'feed.xml' | relative_url }}">
5
- <i class="feed-icon fas fa-rss"></i><span>Subscribe</span>
6
- </a>
7
- </p>
3
+ <div class="footer-col-wrapper">
4
+
5
+ <div class="footer-col">
6
+ <p class="feed-subscribe">
7
+ <a href="{{ 'feed.xml' | relative_url }}">
8
+ <i class="feed-icon fas fa-rss"></i><span>Subscribe</span>
9
+ </a>
10
+ </p>
11
+ <ul class="contact-list">
12
+ {%- if site.author -%}
13
+ <li class="p-name">{{ site.author | escape }}</li>
14
+ {%- endif -%}
15
+ {%- if site.email -%}
16
+ <li><a class="u-email" href="mailto:{{ site.email }}">{{ site.email }}</a></li>
17
+ {%- endif -%}
18
+ </ul>
19
+ </div>
20
+
21
+ <div class="footer-col">
22
+ <div class="copyright">
23
+ {% assign year_from = site.posts[-1].date | date: '%Y' %}
24
+ {% assign year_to = site.time | date: '%Y' %}
25
+ {% if year_from == nil or year_from == year_to %}
26
+ {% assign year_string = year_from %}
27
+ {% else %}
28
+ {% assign year_string = year_from | append: '&nbsp;' | append: '-' | append: '&nbsp;' | append: year_to %}
29
+ {% endif %}
30
+ {% if site.author %}
31
+ <p>Copyright © {{ year_string }} {{ site.author }}; All rights reserved.</p>
32
+ {% endif %}
33
+ </div>
34
+ <p>
35
+ Powered by <a href="https://jekyllrb.com/">Jekyll</a> & <a href="https://github.com/ngzhio/jekyll-theme-hamilton">Hamilton</a>
36
+ </p>
37
+ </div>
38
+
39
+ <div class="footer-col">
40
+ <p>{{ site.description | escape }}</p>
41
+ </div>
42
+
43
+ </div>
8
44
 
9
45
  {% if site.data.social %}
10
46
  <div class="social-icons">
@@ -13,29 +49,6 @@
13
49
  {% endfor %}
14
50
  </div>
15
51
  {% endif %}
16
-
17
- <div class="copyright">
18
- {% assign year_from = site.posts[-1].date | date: '%Y' %}
19
- {% assign year_to = site.time | date: '%Y' %}
20
- {% if year_from == nil or year_from == year_to %}
21
- {% assign year_string = year_from %}
22
- {% else %}
23
- {% assign year_string = year_from | append: '&nbsp;' | append: '-' | append: '&nbsp;' | append: year_to %}
24
- {% endif %}
25
-
26
- {% if site.author %}
27
- {% if site.email %}
28
- <p>© {{ year_string }} <a class="u-email" href="mailto:{{ site.email }}">{{ site.author }}</a>; All rights reserved.</p>
29
- {% else %}
30
- <p>© {{ year_string }} {{ site.author }}; All rights reserved.</p>
31
- {% endif %}
32
- {% endif %}
33
-
34
- <p>
35
- Powered by <a href="https://jekyllrb.com/">Jekyll</a> & <a href="https://github.com/ngzhio/jekyll-theme-hamilton">Hamilton</a>
36
- </p>
37
-
38
- </div>
39
52
  </div>
40
53
  </footer>
41
54
 
@@ -14,6 +14,14 @@
14
14
  {% include mathjax.html %}
15
15
  {% endif %}
16
16
 
17
+ <!-- Google Fonts -->
18
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto">
19
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open%20Sans">
20
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inconsolata">
21
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Dancing%20Script">
22
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto%20Sans%20SC">
23
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto%20Serif%20SC">
24
+
17
25
  <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
18
26
  <link rel="stylesheet" href="{{ '/assets/css/skin.css' | relative_url }}">
19
27
 
@@ -1,9 +1,16 @@
1
1
  {% capture align %}align-{{ include.align | default: "center" }}{% endcapture %}
2
+
3
+ {%- if include.src -%}
4
+ {% assign src = include.src %}
5
+ {%- elsif include.name -%}
6
+ {% capture src %}assets/img/{{ page.title | slugify }}/{{ include.name }}{% endcapture %}
7
+ {%- endif -%}
8
+
2
9
  {% if include.caption %}
3
10
  <figure class="{{ align }}">
4
- <img class="{{ align }}" src="{{ include.src | absolute_url }}" alt="{{ include.caption }}" {% if include.width %}width="{{ include.width }}"{% endif %} {% if include.height %}height="{{ include.height }}"{% endif %}/>
11
+ <img class="{{ align }}" src="{{ src | absolute_url }}" alt="{{ include.caption }}" {% if include.width %}width="{{ include.width }}"{% endif %} {% if include.height %}height="{{ include.height }}"{% endif %}/>
5
12
  <figcaption class="{{ align }}">{{ include.caption }}</figcaption>
6
13
  </figure>
7
14
  {% else %}
8
- <img class="{{ align }}" src="{{ include.src | absolute_url }}" alt="{{ include.alt }}" {% if include.width %}width="{{ include.width }}"{% endif %} {% if include.height %}height="{{ include.height }}"{% endif %}/>
15
+ <img class="{{ align }}" src="{{ src | absolute_url }}" alt="{{ include.alt }}" {% if include.width %}width="{{ include.width }}"{% endif %} {% if include.height %}height="{{ include.height }}"{% endif %}/>
9
16
  {% endif %}
@@ -13,21 +13,18 @@ layout: default
13
13
  {% endif %}
14
14
 
15
15
  {%- if posts.size > 0 -%}
16
- {%- if page.list_title -%}
17
- <h2 class="post-list-heading">{{ page.list_title }}</h2>
18
- {%- endif -%}
19
16
  <ul class="post-list">
20
17
  {%- assign date_format = site.date_format | default: "%b %-d, %Y" -%}
21
18
  {%- for post in posts -%}
22
19
  <li>
23
- <h3>
20
+ <h2>
24
21
  <a class="post-link" href="{{ post.url | relative_url }}">
25
22
  {{ post.title | escape }}
26
23
  </a>
27
- </h3>
24
+ </h2>
28
25
  <span class="post-meta">{{ post.date | date: date_format }}</span>
29
- {%- if page.show_excerpts != false -%}
30
- <p>{{ post.excerpt }}</p>
26
+ {%- if post.show_excerpts != false -%}
27
+ <div class="post-excerpt">{{ post.excerpt }}</div>
31
28
  {%- endif -%}
32
29
  </li>
33
30
  {%- endfor -%}
@@ -47,6 +47,8 @@ layout: default
47
47
 
48
48
  <div class="wrapper">
49
49
  <div class="post-content e-content" itemprop="articleBody">
50
+ {% include toc.html html=content class="toc" %}
51
+
50
52
  {{ content }}
51
53
 
52
54
  {% if page.comments != false and jekyll.environment == "production" %}
@@ -19,7 +19,7 @@ h1, h2, h3, h4, h5, h6,
19
19
  p, blockquote, pre,
20
20
  ul, ol, dl, figure,
21
21
  %vertical-rhythm {
22
- margin-bottom: $spacing-unit / 2;
22
+ margin-bottom: $spacing-unit;
23
23
  }
24
24
 
25
25
  /**
@@ -100,10 +100,8 @@ a {
100
100
  * Blockquotes
101
101
  */
102
102
  blockquote {
103
- border-left: 0.3em solid;
104
- padding-left: $spacing-unit / 2;
105
- padding-top: $spacing-unit / 4;
106
- padding-bottom: $spacing-unit / 4;
103
+ border-left: 0.1em solid;
104
+ padding-left: $spacing-unit;
107
105
  font-style: italic;
108
106
 
109
107
  > :last-child {
@@ -125,17 +123,14 @@ code {
125
123
  }
126
124
 
127
125
  code {
128
- @include relative-font-size(0.9);
129
126
  padding: 1px 5px;
130
127
  }
131
128
 
132
129
  pre {
133
- border: 1px solid;
134
130
  padding: 8px 12px;
135
131
  overflow-x: auto;
136
132
 
137
133
  > code {
138
- @include relative-font-size(0.7);
139
134
  line-height: $base-line-height * $base-font-size * 0.7;
140
135
  border: 0;
141
136
  padding-right: 0;
@@ -121,29 +121,36 @@
121
121
  margin-top: $spacing-unit;
122
122
  }
123
123
 
124
- .post-list-heading {
125
- @include relative-font-size(1.75);
126
- }
127
-
128
124
  .post-list {
129
125
  margin-left: 0;
130
126
  padding-left: 0;
131
127
  list-style: none;
132
128
 
133
129
  li {
130
+ padding-top: $spacing-unit / 2;
134
131
  padding-bottom: $spacing-unit / 2;
135
132
  border-bottom: 1px solid;
136
- margin-bottom: 2 * $spacing-unit;
133
+ margin-bottom: $spacing-unit;
134
+
135
+ h2 {
136
+ margin-bottom: 0;
137
+ }
138
+
139
+ .post-excerpt {
140
+ margin-top: $spacing-unit / 2;
141
+
142
+ p {
143
+ margin-bottom: 0;
144
+ }
145
+ }
137
146
  }
138
147
  }
139
148
 
140
149
  .post-link {
141
- display: block;
142
- line-height: $base-line-height * $base-font-size * 2;
143
- @include relative-font-size(2);
150
+ @include relative-font-size(1.5);
144
151
 
145
152
  @media screen and (min-width: $on-large) {
146
- @include relative-font-size(2.236);
153
+ @include relative-font-size(1.55);
147
154
  }
148
155
  }
149
156
 
@@ -187,6 +194,7 @@
187
194
  padding-top: $spacing-unit * 2.5;
188
195
  padding-bottom: $spacing-unit * 2.5;
189
196
  margin-bottom: $spacing-unit * 2;
197
+ text-align: center;
190
198
  }
191
199
 
192
200
  .post-meta {
@@ -194,12 +202,18 @@
194
202
  margin-bottom: $spacing-unit / 2;
195
203
  }
196
204
 
197
- .post-tag {
198
- margin-right: $spacing-unit / 2;
205
+ .post-tags {
206
+ .post-tag {
207
+ margin-right: $spacing-unit / 2;
208
+ }
209
+
210
+ > :last-child {
211
+ margin-right: 0;
212
+ }
199
213
  }
200
214
 
201
- // Formula of calculating the relative font size of hn: 1 + 2 * 0.618^n
202
215
 
216
+ // About font sizes for h1-h6, refer to https://stackoverflow.com/a/6140504/13261366
203
217
  .post-title,
204
218
  .post-content h1 {
205
219
  @include relative-font-size(2);
@@ -208,7 +222,7 @@
208
222
  line-height: $base-line-height * $base-font-size * 2;
209
223
 
210
224
  @media screen and (min-width: $on-large) {
211
- @include relative-font-size(2.236);
225
+ @include relative-font-size(2.5);
212
226
  }
213
227
  }
214
228
 
@@ -221,31 +235,31 @@
221
235
  h5, h6 { margin-top: $spacing-unit }
222
236
 
223
237
  h2 {
224
- @include relative-font-size(1.6);
238
+ @include relative-font-size(1.5);
225
239
 
226
240
  @media screen and (min-width: $on-large) {
227
- @include relative-font-size(1.764);
241
+ @include relative-font-size(1.55);
228
242
  }
229
243
  }
230
244
 
231
245
  h3 {
232
- @include relative-font-size(1.4);
246
+ @include relative-font-size(1.17);
233
247
 
234
248
  @media screen and (min-width: $on-large) {
235
- @include relative-font-size(1.472);
249
+ @include relative-font-size(1.175);
236
250
  }
237
251
  }
238
252
 
239
253
  h4 {
240
- @include relative-font-size(1.292);
254
+ @include relative-font-size(1.12);
241
255
  }
242
256
 
243
257
  h5 {
244
- @include relative-font-size(1.18);
258
+ @include relative-font-size(0.83);
245
259
  }
246
260
 
247
261
  h6 {
248
- @include relative-font-size(1.111);
262
+ @include relative-font-size(0.75);
249
263
  }
250
264
  }
251
265
 
@@ -279,7 +293,6 @@
279
293
  .post-list-by-taxonomy {
280
294
  time {
281
295
  font-family: $code-font-family;
282
- @include relative-font-size(0.9);
283
296
  }
284
297
  }
285
298
 
@@ -330,23 +343,52 @@ figcaption.align-center {
330
343
  .site-footer {
331
344
  border-top: 1px solid;
332
345
  padding: $spacing-unit 0;
333
- text-align: center;
334
346
  @include relative-font-size(0.8);
335
347
 
336
- .feed-subscribe {
337
- font-weight: bold;
338
- text-align: left;
339
- .feed-icon {
340
- margin-right: 0.3em;
341
- }
348
+ p, ul {
349
+ margin-bottom: $spacing-unit / 4;
350
+ }
351
+ }
352
+
353
+ @media screen and (min-width: $on-medium) {
354
+ .footer-col-wrapper {
355
+ display: flex
342
356
  }
343
357
 
358
+ .footer-col {
359
+ width: calc(100% - (#{$spacing-unit} / 2));
360
+ padding: 0 ($spacing-unit / 2);
344
361
 
345
- .social-icons {
346
- padding: $spacing-unit 0;
362
+ &:first-child {
363
+ padding-right: $spacing-unit / 2;
364
+ padding-left: 0;
365
+ }
347
366
 
348
- .social-icon {
349
- margin: 0.3em;
367
+ &:last-child {
368
+ padding-right: 0;
369
+ padding-left: $spacing-unit / 2;
350
370
  }
351
371
  }
352
372
  }
373
+
374
+ .feed-subscribe {
375
+ font-weight: bold;
376
+ text-align: left;
377
+ .feed-icon {
378
+ margin-right: 0.3em;
379
+ }
380
+ }
381
+
382
+ .contact-list {
383
+ list-style: none;
384
+ margin-left: 0;
385
+ }
386
+
387
+ .social-icons {
388
+ text-align: center;
389
+ margin-top: $spacing-unit / 2;
390
+
391
+ .social-icon {
392
+ margin: 0.3em;
393
+ }
394
+ }
@@ -19,7 +19,7 @@ a {
19
19
 
20
20
  blockquote {
21
21
  color: $text-color-light;
22
- border-left-color: $border-color;
22
+ border-left-color: $border-color-light;
23
23
  }
24
24
 
25
25
  pre,
@@ -28,7 +28,7 @@ code {
28
28
  }
29
29
 
30
30
  pre {
31
- border-color: $border-color-light;
31
+ box-shadow: $box-shadow;
32
32
  }
33
33
 
34
34
  .highlight {
@@ -16,7 +16,7 @@ $table-header-bg-color: mix($background-color, $border-color, 80%) !default;
16
16
  $table-header-border: $border-color !default;
17
17
  $table-border-color: lighten($border-color, 20%) !default;
18
18
 
19
- $box-shadow: 0 1px 1px rgba(0, 0, 0, 0.205) !default;
19
+ $box-shadow: 0 0 4px rgba(17,17,17,0.4) inset !default;
20
20
 
21
21
  $subscribe-color: #b21000 !default;
22
22
 
@@ -1,13 +1,13 @@
1
- $text-color: #fff !default;
2
- $text-color-light: #dbdbdb !default;
3
- $background-color: #2b2e33 !default;
1
+ $text-color: lightgrey !default;
2
+ $text-color-light: silver !default;
3
+ $background-color: #121212 !default;
4
4
  $code-background-color: #49483e !default;
5
5
 
6
- $border-color: mix(#fff, $background-color, 20%) !default;
6
+ $border-color: mix($text-color, $background-color, 22%) !default;
7
7
  $border-color-light: darken($border-color, 10%) !default;
8
8
  $border-color-dark: lighten($border-color, 10%) !default;
9
9
 
10
- $link-base-color: #00f8cf !default;
10
+ $link-base-color: #00b1c9 !default;
11
11
  $link-visited-color: darken($link-base-color, 5%) !default;
12
12
 
13
13
  $table-text-color: lighten($text-color, 18%) !default;
@@ -16,7 +16,7 @@ $table-header-bg-color: mix($background-color, $border-color-light, 5%) !default
16
16
  $table-header-border: lighten($border-color, 30%) !default;
17
17
  $table-border-color: lighten($border-color, 20%) !default;
18
18
 
19
- $box-shadow: 0 1px 1px rgba(0, 0, 0, 0.205) !default;
19
+ $box-shadow: 0 0 4px rgba(255,255,255,0.4) inset !default;
20
20
 
21
21
  $subscribe-color: tomato !default;
22
22
 
@@ -16,7 +16,7 @@ $table-header-bg-color: mix($background-color, $border-color, 70%) !default;
16
16
  $table-header-border: $border-color !default;
17
17
  $table-border-color: $border-color-light !default;
18
18
 
19
- $box-shadow: 0 1px 1px rgba(0, 0, 0, 0.205) !default;
19
+ $box-shadow: 0 0 4px rgba(34,34,34,0.4) inset !default;
20
20
 
21
21
  $subscribe-color: #004e00 !default;
22
22
 
@@ -1,8 +1,8 @@
1
1
  // Fonts
2
- $base-font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !default;
3
- $title-font-family: "Brush Script MT", $base-font-family !default;
4
- $reading-font-family: "Georgia", $base-font-family !default;
5
- $code-font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono", "Ubuntu Mono", "Liberation Mono", "Courier New", monospace;
2
+ $base-font-family: "Open Sans", "Noto Serif SC" !default;
3
+ $title-font-family: "Dancing Script" !default;
4
+ $reading-font-family: Roboto, "Noto Sans SC" !default;
5
+ $code-font-family: Inconsolata !default;
6
6
  $base-font-size: 18px !default;
7
7
  $base-line-height: 1.4 !default;
8
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-hamilton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shangzhi Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-10 00:00:00.000000000 Z
11
+ date: 2020-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -96,7 +96,7 @@ dependencies:
96
96
  version: '12.0'
97
97
  description:
98
98
  email:
99
- - ngzhio@protonmail.com
99
+ - ngzhio@gmail.com
100
100
  executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
@@ -155,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  - !ruby/object:Gem::Version
156
156
  version: '0'
157
157
  requirements: []
158
- rubygems_version: 3.0.6
158
+ rubygems_version: 3.0.1
159
159
  signing_key:
160
160
  specification_version: 4
161
161
  summary: Another minimal style of Jekyll theme for writers