steve-for-jekyll 1.0.3 → 1.2
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/README.md +42 -0
- data/_config.yml +96 -70
- data/_includes/blog/post.html +57 -43
- data/_includes/post/comment-form.html +69 -0
- data/_includes/post/comments.html +47 -0
- data/_layouts/post.html +53 -30
- data/_sass/steve/_base.scss +269 -222
- data/_sass/steve/_layout.scss +75 -0
- data/staticman.yml +30 -0
- metadata +22 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c837ff93e1e9855f712da1f580559ef04530333c4c63e9a3bb37042c6d8cee4
|
4
|
+
data.tar.gz: 66c3123e4f2e17afb3b89527c5aa7660e36e7061f957b1d362277634b944f7c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0e4cb6d03cd8f10500dd0b154e5887d122bfd191c738f9831e9b2f74c0d0cd90729fe68bc623c15d7ca5f3be559c2f099e26e395cd7d05d80929e5788e5c3fd
|
7
|
+
data.tar.gz: 8d74ce76512ce06fbe249c2b09d793ae1617de1068c35d8fe4290ac6e8c831c0a6e498d39ab20d15b997b27e6f5f2999e9eaf15b4ed37d3a9cec0fe0943fcff7
|
data/README.md
CHANGED
@@ -177,9 +177,51 @@ Steve uses the following Jekyll plugins to create sitemaps, RSS feeds, archives
|
|
177
177
|
- [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap) — generates the XML sitemap.
|
178
178
|
- [jekyll-paginate](https://github.com/jekyll/jekyll-paginate) — paginates the home post list.
|
179
179
|
- [jekyll-archives](https://github.com/jekyll/jekyll-archives) — generates the archives by date, tag and category.
|
180
|
+
- [jekyll-loading-lazy](https://github.com/gildesmarais/jekyll-loading-lazy) — adds `loading="lazy"` to all images and frames on your pages and posts.
|
180
181
|
|
181
182
|
While Steve sets initial configurations for these plugins, you may want to change them in your `_config.yml`. Please refer to these plugins documentations for further reading about how to change their config options.
|
182
183
|
|
184
|
+
### Comments
|
185
|
+
|
186
|
+
Steve supports [Staticman](https://staticman.net)-powered comments, and provides initial settings from our own `staticman.yml` config file. You can create your own settings at any time, but keep in mind that Steve looks for the following fields when submitting comments:
|
187
|
+
|
188
|
+
- `name`
|
189
|
+
- `email`
|
190
|
+
- `website`
|
191
|
+
- `message`
|
192
|
+
|
193
|
+
[Follow these instructions](https://staticman.net/docs/getting-started.html) to set up your Staticman instance.
|
194
|
+
|
195
|
+
You can also customize your comments' section and submit form adding the `site.comments` object in your `_config.yml`:
|
196
|
+
|
197
|
+
```yaml
|
198
|
+
comments:
|
199
|
+
title: Comments
|
200
|
+
form_title: New Comment
|
201
|
+
date_format: "%b %e, %Y @ %l:%M %P"
|
202
|
+
staticman_endpoint: # Get yours on <https://staticman.net>
|
203
|
+
notice: |+ # Accepts Markdown
|
204
|
+
Please be nice in the comments.
|
205
|
+
|
206
|
+
Comments are moderated, so it can take a while for your's to show up.
|
207
|
+
|
208
|
+
Also, you can use [Markdown](https://daringfireball.net/projects/markdown).
|
209
|
+
fields:
|
210
|
+
name:
|
211
|
+
label: Name
|
212
|
+
placeholder: "John Appleseed"
|
213
|
+
email:
|
214
|
+
label: Email address
|
215
|
+
placeholder: "your@email.net"
|
216
|
+
website:
|
217
|
+
label: Website
|
218
|
+
placeholder: "https://john.blog/"
|
219
|
+
message:
|
220
|
+
label: Message
|
221
|
+
placeholder: Your comment message
|
222
|
+
submit: Submit Comment
|
223
|
+
```
|
224
|
+
|
183
225
|
## Contributing
|
184
226
|
|
185
227
|
Bug reports and pull requests are welcome on GitHub at <https://github.com/esporo/steve>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/_config.yml
CHANGED
@@ -1,70 +1,96 @@
|
|
1
|
-
# Site info
|
2
|
-
title: Steve for Jekyll
|
3
|
-
tagline: Charming and fun blog theme.
|
4
|
-
description: Steve is a charming and fun blog theme for Jekyll websites.
|
5
|
-
|
6
|
-
email: steve-support@esporo.net
|
7
|
-
|
8
|
-
lang: en
|
9
|
-
|
10
|
-
url: ""
|
11
|
-
baseurl: "/steve/"
|
12
|
-
|
13
|
-
# Theme settings
|
14
|
-
steve:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
1
|
+
# Site info
|
2
|
+
title: Steve for Jekyll
|
3
|
+
tagline: Charming and fun blog theme.
|
4
|
+
description: Steve is a charming and fun blog theme for Jekyll websites.
|
5
|
+
|
6
|
+
email: steve-support@esporo.net
|
7
|
+
|
8
|
+
lang: en
|
9
|
+
|
10
|
+
url: ""
|
11
|
+
baseurl: "/steve/"
|
12
|
+
|
13
|
+
# Theme settings
|
14
|
+
steve:
|
15
|
+
archives: # Prefixes used with archive titles
|
16
|
+
date: Posts from
|
17
|
+
tag: More about…
|
18
|
+
category: Posts filed in
|
19
|
+
date_formats: # Uses <http://strftime.net>
|
20
|
+
post: "%b %e, %Y"
|
21
|
+
archives:
|
22
|
+
day: "%b %e, %Y"
|
23
|
+
month: "%b, %Y"
|
24
|
+
year: "%Y"
|
25
|
+
page_404: |+
|
26
|
+
The page you're looking for could not be found.
|
27
|
+
|
28
|
+
Maybe the search can help.
|
29
|
+
pagination:
|
30
|
+
next_page: "« Next"
|
31
|
+
prev_page: "Previous »"
|
32
|
+
prev_post: "Previous:"
|
33
|
+
next_post: "Next:"
|
34
|
+
post:
|
35
|
+
byline: "By"
|
36
|
+
tags: More about…
|
37
|
+
search:
|
38
|
+
label: Search this blog
|
39
|
+
placeholder: What you're looking for?
|
40
|
+
submit: Go!
|
41
|
+
|
42
|
+
# Comments Settings
|
43
|
+
comments:
|
44
|
+
title: Comments
|
45
|
+
form_title: New Comment
|
46
|
+
date_format: "%b %e, %Y @ %l:%M %P"
|
47
|
+
staticman_endpoint: # Get yours on <https://staticman.net>
|
48
|
+
notice: |+
|
49
|
+
Please be nice in the comments.
|
50
|
+
|
51
|
+
Comments are moderated, so it can take a while for your's to show up.
|
52
|
+
|
53
|
+
Also, you can use [Markdown](https://daringfireball.net/projects/markdown).
|
54
|
+
fields:
|
55
|
+
name:
|
56
|
+
label: Name
|
57
|
+
placeholder: "John Appleseed"
|
58
|
+
email:
|
59
|
+
label: Email address
|
60
|
+
placeholder: "your@email.net"
|
61
|
+
website:
|
62
|
+
label: Website
|
63
|
+
placeholder: "https://john.blog/"
|
64
|
+
message:
|
65
|
+
label: Message
|
66
|
+
placeholder: Your comment message
|
67
|
+
submit: Submit Comment
|
68
|
+
|
69
|
+
# Build settings
|
70
|
+
markdown: kramdown
|
71
|
+
permalink: "/:year/:month/:day/:title/"
|
72
|
+
|
73
|
+
theme: steve-for-jekyll
|
74
|
+
|
75
|
+
paginate: 6
|
76
|
+
paginate_path: "/page/:num/"
|
77
|
+
|
78
|
+
plugins:
|
79
|
+
- jekyll-feed
|
80
|
+
- jekyll-seo-tag
|
81
|
+
- jekyll-sitemap
|
82
|
+
- jekyll-paginate
|
83
|
+
- jekyll-archives
|
84
|
+
- jekyll-loading-lazy
|
85
|
+
|
86
|
+
# Plugin: jekyll-archives
|
87
|
+
jekyll-archives:
|
88
|
+
enabled: all
|
89
|
+
layout: archive
|
90
|
+
slug_mode: default
|
91
|
+
permalinks:
|
92
|
+
day: "/:year/:month/:day/"
|
93
|
+
month: "/:year/:month/"
|
94
|
+
year: "/:year/"
|
95
|
+
category: "/:name/"
|
96
|
+
tag: "/tag/:name/"
|
data/_includes/blog/post.html
CHANGED
@@ -1,43 +1,57 @@
|
|
1
|
-
<article class="content post">
|
2
|
-
<header class="content-header">
|
3
|
-
{% if post.
|
4
|
-
<
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
{{ post.
|
13
|
-
</
|
14
|
-
</
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
{
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
</
|
1
|
+
<article class="content post">
|
2
|
+
<header class="content-header">
|
3
|
+
{% if post.category %}
|
4
|
+
<div class="content-meta">
|
5
|
+
{%- assign category_slug = post.category | slugify -%}
|
6
|
+
{%- assign category_url = site.jekyll-archives.permalinks.category -%}
|
7
|
+
|
8
|
+
<a
|
9
|
+
href="{{ category_url | replace: ':name', category_slug | relative_url }}"
|
10
|
+
rel="tag"
|
11
|
+
>
|
12
|
+
{{- post.category -}}
|
13
|
+
</a>
|
14
|
+
</div>
|
15
|
+
{% endif %}
|
16
|
+
|
17
|
+
{% if post.title != "" %}
|
18
|
+
<h2 class="content-title">
|
19
|
+
<a href="{{ post.url | relative_url }}" rel="bookmark">{{ post.title }}</a>
|
20
|
+
</h2>
|
21
|
+
{% endif %}
|
22
|
+
|
23
|
+
<div class="content-meta">
|
24
|
+
<a class="content-date" href="{{ post.url | relative_url }}" rel="bookmark">
|
25
|
+
<time datetime="{{ post.date | date_to_xmlschema }}">
|
26
|
+
{{ post.date | date: site.steve.date_formats.post }}
|
27
|
+
</time>
|
28
|
+
</a>
|
29
|
+
|
30
|
+
{% if post.author %}
|
31
|
+
{% assign author = site.data.authors[post.author] %}
|
32
|
+
|
33
|
+
{% if author.url %}
|
34
|
+
<a class="content-author" href="{{ author.url }}" rel="author">
|
35
|
+
{{ author.name }}
|
36
|
+
</a>
|
37
|
+
{% else %}
|
38
|
+
<a class="content-author" href="{{ post.author | prepend: 'https://twitter.com/' }}" rel="author">
|
39
|
+
{{ post.author }}
|
40
|
+
</a>
|
41
|
+
{% endif %}
|
42
|
+
{% endif %}
|
43
|
+
</div>
|
44
|
+
</header>
|
45
|
+
|
46
|
+
{% if post.image %}
|
47
|
+
<figure class="content-cover">
|
48
|
+
<img src="{{ post.image.url | default: post.image }}" alt="{{ post.image.alt | default: '' }}" />
|
49
|
+
</figure>
|
50
|
+
{% endif %}
|
51
|
+
|
52
|
+
{% unless include.full_post == false %}
|
53
|
+
<div class="content-body">
|
54
|
+
{{ post.content }}
|
55
|
+
</div>
|
56
|
+
{% endunless %}
|
57
|
+
</article>
|
@@ -0,0 +1,69 @@
|
|
1
|
+
<form action="{{ site.comments.staticman_endpoint }}" method="post">
|
2
|
+
<h3 class="form-title">{{ site.comments.form_title }}</h3>
|
3
|
+
|
4
|
+
<div class="comments-notice">
|
5
|
+
{{ site.comments.notice | markdownify }}
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<div class="comment-message-area">
|
9
|
+
<label for="comment_message" class="visually-hidden">
|
10
|
+
{{ site.comments.fields.message.label }}
|
11
|
+
</label>
|
12
|
+
|
13
|
+
<textarea
|
14
|
+
id="comment_message"
|
15
|
+
class="message-area"
|
16
|
+
name="fields[message]"
|
17
|
+
placeholder="{{ site.comments.fields.message.placeholder }}"
|
18
|
+
required
|
19
|
+
></textarea>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="comment-fields">
|
23
|
+
<label for="comment_name" class="visually-hidden">
|
24
|
+
{{ site.comments.fields.name.label }}
|
25
|
+
</label>
|
26
|
+
|
27
|
+
<input
|
28
|
+
type="text"
|
29
|
+
id="comment_name"
|
30
|
+
class="comment-field"
|
31
|
+
name="fields[name]"
|
32
|
+
placeholder="{{ site.comments.fields.name.placeholder }}"
|
33
|
+
required
|
34
|
+
/>
|
35
|
+
|
36
|
+
<label for="comment_email" class="visually-hidden">
|
37
|
+
{{ site.comments.fields.email.label }}
|
38
|
+
</label>
|
39
|
+
<input
|
40
|
+
type="email"
|
41
|
+
id="comment_email"
|
42
|
+
class="comment-field"
|
43
|
+
name="fields[email]"
|
44
|
+
placeholder="{{ site.comments.fields.email.placeholder }}"
|
45
|
+
required
|
46
|
+
/>
|
47
|
+
|
48
|
+
<label for="comment_website" class="visually-hidden">
|
49
|
+
{{ site.comments.fields.website.label }}
|
50
|
+
</label>
|
51
|
+
<input
|
52
|
+
type="url"
|
53
|
+
id="comment_website"
|
54
|
+
class="comment-field"
|
55
|
+
name="fields[website]"
|
56
|
+
placeholder="{{ site.comments.fields.website.placeholder }}"
|
57
|
+
/>
|
58
|
+
</div>
|
59
|
+
|
60
|
+
<div class="comment-actions">
|
61
|
+
<button class="form-submit" type="submit">
|
62
|
+
{{ site.comments.fields.submit }}
|
63
|
+
</button>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<input type="hidden" name="options[redirect]" value="{{ page.url |
|
67
|
+
absolute_url }}#comments" />
|
68
|
+
<input type="hidden" name="options[slug]" value="{{ page.slug }}" />
|
69
|
+
</form>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
{% if site.data.comments[page.slug] or page.comments != false %}
|
2
|
+
<section id="comments" class="content">
|
3
|
+
<h2 class="comments-title">
|
4
|
+
{{ site.comments.title }}
|
5
|
+
</h2>
|
6
|
+
|
7
|
+
{% if site.data.comments[page.slug] %}
|
8
|
+
<ol class="comments-list">
|
9
|
+
|
10
|
+
{% assign comments = site.data.comments[page.slug] | sort: date %}
|
11
|
+
|
12
|
+
{% for comment_object in site.data.comments[page.slug] %}
|
13
|
+
|
14
|
+
{% assign comment = comment_object | last %}
|
15
|
+
|
16
|
+
<li class="comment-item">
|
17
|
+
<section class="comment">
|
18
|
+
<header class="comment-meta">
|
19
|
+
<img class="author-avatar" src="//www.gravatar.com/avatar/{{ comment.email }}?d=monsterid&s=64" alt="" />
|
20
|
+
<h5 class="author">
|
21
|
+
{% if comment.website %}
|
22
|
+
<a href="{{ comment.website }}" rel="author">
|
23
|
+
{{ comment.name }}
|
24
|
+
</a>
|
25
|
+
{% else %}
|
26
|
+
{{ comment.name }}
|
27
|
+
{% endif %}
|
28
|
+
</h5>
|
29
|
+
|
30
|
+
<time class="comment-date">
|
31
|
+
{{ comment.date | date: site.comments.date_format }}
|
32
|
+
</time>
|
33
|
+
</header>
|
34
|
+
|
35
|
+
<div class="comment-body">
|
36
|
+
{{ comment.message | markdownify }}
|
37
|
+
</div>
|
38
|
+
</section>
|
39
|
+
</li>
|
40
|
+
{% endfor %}
|
41
|
+
|
42
|
+
</ol>
|
43
|
+
{% endif %}
|
44
|
+
|
45
|
+
{% include post/comment-form.html %}
|
46
|
+
</section>
|
47
|
+
{% endif %}
|
data/_layouts/post.html
CHANGED
@@ -4,10 +4,22 @@ layout: blog
|
|
4
4
|
|
5
5
|
<article class="content post">
|
6
6
|
<header class="content-header">
|
7
|
+
{% if page.category %}
|
8
|
+
<div class="content-meta">
|
9
|
+
{%- assign category_slug = page.category | slugify -%}
|
10
|
+
{%- assign category_url = site.jekyll-archives.permalinks.category -%}
|
11
|
+
|
12
|
+
<a
|
13
|
+
href="{{ category_url | replace: ':name', category_slug | relative_url }}"
|
14
|
+
rel="tag"
|
15
|
+
>
|
16
|
+
{{- page.category -}}
|
17
|
+
</a>
|
18
|
+
</div>
|
19
|
+
{% endif %}
|
20
|
+
|
7
21
|
{% if page.title != "" %}
|
8
|
-
<h1 class="content-title">
|
9
|
-
{{ page.title }}
|
10
|
-
</h1>
|
22
|
+
<h1 class="content-title">{{ page.title }}</h1>
|
11
23
|
{% endif %}
|
12
24
|
|
13
25
|
<div class="content-meta">
|
@@ -25,7 +37,11 @@ layout: blog
|
|
25
37
|
{{ author.name }}
|
26
38
|
</a>
|
27
39
|
{% else %}
|
28
|
-
<a
|
40
|
+
<a
|
41
|
+
class="content-author"
|
42
|
+
href="{{ page.author | prepend: 'https://twitter.com/' }}"
|
43
|
+
rel="author"
|
44
|
+
>
|
29
45
|
{{ page.author }}
|
30
46
|
</a>
|
31
47
|
{% endif %}
|
@@ -34,9 +50,12 @@ layout: blog
|
|
34
50
|
</header>
|
35
51
|
|
36
52
|
{% if page.image %}
|
37
|
-
|
38
|
-
|
39
|
-
|
53
|
+
<figure class="content-cover">
|
54
|
+
<img
|
55
|
+
src="{{ page.image.url | default: page.image }}"
|
56
|
+
alt="{{ page.image.alt | default: '' }}"
|
57
|
+
/>
|
58
|
+
</figure>
|
40
59
|
{% endif %}
|
41
60
|
|
42
61
|
<div class="content-body">
|
@@ -49,44 +68,48 @@ layout: blog
|
|
49
68
|
|
50
69
|
<ul class="content-tags">
|
51
70
|
{% for tag in page.tags %}
|
52
|
-
|
53
|
-
|
71
|
+
<li>
|
72
|
+
{%- assign tag_slug = tag | slugify -%}
|
73
|
+
{%- assign tag_url = site.jekyll-archives.permalinks.tag -%}
|
54
74
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
75
|
+
<a
|
76
|
+
href="{{ tag_url | replace: ':name', tag_slug | relative_url }}"
|
77
|
+
rel="tag"
|
78
|
+
>
|
79
|
+
{{- tag -}}
|
80
|
+
</a>
|
81
|
+
</li>
|
59
82
|
{% endfor %}
|
60
83
|
</ul>
|
61
84
|
</footer>
|
62
85
|
{% endif %}
|
63
86
|
</article>
|
64
87
|
|
65
|
-
{%
|
66
|
-
<section id="comments" class="content comments">
|
67
|
-
<script>
|
68
|
-
var idcomments_acct = "{{ site.steve.intensedebate_account }}";
|
69
|
-
var idcomments_post_id = "{{ post.date | date: "%s" }}";
|
70
|
-
var idcomments_post_url = "{{ post.url | absolute_url }}";
|
71
|
-
</script>
|
72
|
-
<span id="IDCommentsPostTitle" style="display:none"></span>
|
73
|
-
<script type='text/javascript' src='https://www.intensedebate.com/js/genericCommentWrapperV2.js'></script>
|
74
|
-
</section>
|
75
|
-
{% endif %}
|
88
|
+
{% include post/comments.html %}
|
76
89
|
|
77
90
|
{% if page.previous or page.next %}
|
78
91
|
<nav class="content-navigation">
|
79
92
|
{% if page.previous %}
|
80
|
-
<a
|
81
|
-
|
93
|
+
<a
|
94
|
+
class="nav-link prev-link"
|
95
|
+
href="{{ page.previous.url | relative_url }}"
|
96
|
+
rel="prev"
|
97
|
+
>
|
98
|
+
{{ site.steve.pagination.prev_post }}
|
99
|
+
|
100
|
+
<strong>{{ page.previous.title }}</strong>
|
82
101
|
</a>
|
83
102
|
{% endif %}
|
84
|
-
|
85
103
|
{% if page.next %}
|
86
|
-
<a
|
87
|
-
|
104
|
+
<a
|
105
|
+
class="nav-link next-link"
|
106
|
+
href="{{ page.next.url | relative_url }}"
|
107
|
+
rel="next"
|
108
|
+
>
|
109
|
+
{{ site.steve.pagination.next_post }}
|
110
|
+
|
111
|
+
<strong>{{ page.next.title }}</strong>
|
88
112
|
</a>
|
89
113
|
{% endif %}
|
90
114
|
</nav>
|
91
115
|
{% endif %}
|
92
|
-
|
data/_sass/steve/_base.scss
CHANGED
@@ -1,222 +1,269 @@
|
|
1
|
-
/*
|
2
|
-
Resets
|
3
|
-
*/
|
4
|
-
|
5
|
-
body,
|
6
|
-
h1,
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
}
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
}
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
}
|
145
|
-
|
146
|
-
//
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
border:
|
153
|
-
|
154
|
-
}
|
155
|
-
|
156
|
-
//
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
1
|
+
/*
|
2
|
+
Resets
|
3
|
+
*/
|
4
|
+
|
5
|
+
body,
|
6
|
+
h1,
|
7
|
+
h2,
|
8
|
+
h3,
|
9
|
+
h4,
|
10
|
+
h5,
|
11
|
+
h6,
|
12
|
+
p,
|
13
|
+
blockquote,
|
14
|
+
pre,
|
15
|
+
hr,
|
16
|
+
dl,
|
17
|
+
dd,
|
18
|
+
ol,
|
19
|
+
ul,
|
20
|
+
figure {
|
21
|
+
margin: 0;
|
22
|
+
padding: 0;
|
23
|
+
}
|
24
|
+
|
25
|
+
/*
|
26
|
+
Basic styling
|
27
|
+
*/
|
28
|
+
|
29
|
+
html {
|
30
|
+
font-size: 16px;
|
31
|
+
}
|
32
|
+
|
33
|
+
body {
|
34
|
+
background-color: var(--color-body);
|
35
|
+
font-family: var(--font);
|
36
|
+
line-height: 1.5;
|
37
|
+
}
|
38
|
+
|
39
|
+
/*
|
40
|
+
Accessibility helpers
|
41
|
+
*/
|
42
|
+
.visually-hidden {
|
43
|
+
position: absolute !important;
|
44
|
+
height: 1px;
|
45
|
+
width: 1px;
|
46
|
+
overflow: hidden;
|
47
|
+
clip: rect(1px 1px 1px 1px);
|
48
|
+
clip: rect(1px, 1px, 1px, 1px);
|
49
|
+
white-space: nowrap;
|
50
|
+
}
|
51
|
+
|
52
|
+
/*
|
53
|
+
Text Elements
|
54
|
+
*/
|
55
|
+
|
56
|
+
.content-body {
|
57
|
+
p,
|
58
|
+
pre,
|
59
|
+
blockquote,
|
60
|
+
dl,
|
61
|
+
ul,
|
62
|
+
ol,
|
63
|
+
figure,
|
64
|
+
iframe,
|
65
|
+
table,
|
66
|
+
.highlight {
|
67
|
+
margin-bottom: var(--gap);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
// Links
|
72
|
+
a {
|
73
|
+
color: var(--color-link);
|
74
|
+
text-decoration: none;
|
75
|
+
transition: color 250ms ease;
|
76
|
+
|
77
|
+
&:hover,
|
78
|
+
&:focus {
|
79
|
+
color: var(--color-link-hover);
|
80
|
+
text-decoration: underline;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
// Lists
|
85
|
+
ul,
|
86
|
+
ol {
|
87
|
+
margin-left: var(--gap);
|
88
|
+
|
89
|
+
ul,
|
90
|
+
ol {
|
91
|
+
margin-bottom: 0;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
dl {
|
96
|
+
dt + dd {
|
97
|
+
margin-bottom: calc(var(--gap) / 2);
|
98
|
+
}
|
99
|
+
|
100
|
+
dt + dd + dt {
|
101
|
+
margin-top: calc(var(--gap) / 2);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
// Headings
|
106
|
+
h1,
|
107
|
+
h2,
|
108
|
+
h3,
|
109
|
+
h4,
|
110
|
+
h5,
|
111
|
+
h6 {
|
112
|
+
line-height: 1.2;
|
113
|
+
font-family: var(--font-headings);
|
114
|
+
}
|
115
|
+
|
116
|
+
h1 {
|
117
|
+
font-size: 2rem;
|
118
|
+
}
|
119
|
+
|
120
|
+
h2 {
|
121
|
+
font-size: 1.5rem;
|
122
|
+
}
|
123
|
+
|
124
|
+
h3 {
|
125
|
+
font-size: 1.25rem;
|
126
|
+
}
|
127
|
+
|
128
|
+
h4 {
|
129
|
+
font-size: 1rem;
|
130
|
+
}
|
131
|
+
|
132
|
+
h5 {
|
133
|
+
font-size: 0.875rem;
|
134
|
+
}
|
135
|
+
|
136
|
+
h6 {
|
137
|
+
font-size: 0.75rem;
|
138
|
+
}
|
139
|
+
|
140
|
+
// Code
|
141
|
+
pre {
|
142
|
+
max-width: 100%;
|
143
|
+
overflow-x: auto;
|
144
|
+
}
|
145
|
+
|
146
|
+
// Media
|
147
|
+
img,
|
148
|
+
iframe,
|
149
|
+
video,
|
150
|
+
audio {
|
151
|
+
max-width: 100%;
|
152
|
+
border-radius: 3px;
|
153
|
+
box-shadow: 0 2px 5px var(--color-details);
|
154
|
+
}
|
155
|
+
|
156
|
+
// Tables
|
157
|
+
table {
|
158
|
+
border: 1px solid var(--color-details-lighter);
|
159
|
+
border-radius: 3px;
|
160
|
+
border-collapse: collapse;
|
161
|
+
color: var(--color-details-darker);
|
162
|
+
width: 100%;
|
163
|
+
|
164
|
+
th,
|
165
|
+
td {
|
166
|
+
border-bottom: 1px solid var(--color-details-lighter);
|
167
|
+
padding: calc(var(--gap) / 4);
|
168
|
+
text-align: left;
|
169
|
+
}
|
170
|
+
|
171
|
+
th {
|
172
|
+
background: var(--color-details-lighter);
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
// Quotes
|
177
|
+
|
178
|
+
blockquote {
|
179
|
+
border-left: 4px solid var(--color-details-lighter);
|
180
|
+
padding-left: calc(var(--gap) / 2);
|
181
|
+
padding-top: calc(var(--gap) / 4);
|
182
|
+
padding-bottom: calc(var(--gap) / 4);
|
183
|
+
font-style: italic;
|
184
|
+
color: var(--color-details-darker);
|
185
|
+
|
186
|
+
> :last-child {
|
187
|
+
margin-bottom: 0;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
|
191
|
+
// Horizontal rule
|
192
|
+
hr {
|
193
|
+
width: 250px;
|
194
|
+
height: 3px;
|
195
|
+
margin: calc(var(--gap) * 2) auto;
|
196
|
+
background-color: var(--color-details-lighter);
|
197
|
+
border: none;
|
198
|
+
border-radius: 3px;
|
199
|
+
}
|
200
|
+
|
201
|
+
// Forms
|
202
|
+
input[type="text"],
|
203
|
+
input[type="email"],
|
204
|
+
input[type="password"],
|
205
|
+
input[type="search"],
|
206
|
+
input[type="tel"],
|
207
|
+
input[type="number"],
|
208
|
+
input[type="color"],
|
209
|
+
input[type="url"],
|
210
|
+
input[type="button"],
|
211
|
+
input[type="reset"],
|
212
|
+
input[type="submit"],
|
213
|
+
textarea,
|
214
|
+
button {
|
215
|
+
-webkit-appearance: none;
|
216
|
+
-moz-appearance: none;
|
217
|
+
border: none;
|
218
|
+
border-radius: 0;
|
219
|
+
box-shadow: none;
|
220
|
+
background: var(--color-bg);
|
221
|
+
padding: 5px;
|
222
|
+
margin: 0;
|
223
|
+
font: inherit;
|
224
|
+
}
|
225
|
+
|
226
|
+
input[type="text"],
|
227
|
+
input[type="email"],
|
228
|
+
input[type="password"],
|
229
|
+
input[type="search"],
|
230
|
+
input[type="tel"],
|
231
|
+
input[type="number"],
|
232
|
+
input[type="color"],
|
233
|
+
input[type="url"],
|
234
|
+
textarea {
|
235
|
+
border-bottom: 3px dashed var(--color-details-lighter);
|
236
|
+
transition: border-bottom-color 250ms ease;
|
237
|
+
|
238
|
+
&:hover,
|
239
|
+
&:focus {
|
240
|
+
outline: none;
|
241
|
+
border-bottom-color: var(--color-link);
|
242
|
+
}
|
243
|
+
}
|
244
|
+
|
245
|
+
input[type="button"],
|
246
|
+
input[type="reset"],
|
247
|
+
input[type="submit"],
|
248
|
+
button {
|
249
|
+
box-shadow: inset 0 0 0 var(--color-details-lighter);
|
250
|
+
border-bottom: 3px solid var(--color-details-lighter);
|
251
|
+
color: var(--color-link);
|
252
|
+
transition-property: color, box-shadow, border-bottom-color;
|
253
|
+
transition-duration: 250ms;
|
254
|
+
transition-timing-function: ease;
|
255
|
+
padding-left: 10px;
|
256
|
+
padding-right: 10px;
|
257
|
+
|
258
|
+
&:hover,
|
259
|
+
&:focus {
|
260
|
+
cursor: pointer;
|
261
|
+
box-shadow: inset 0 -2.5em 0 var(--color-link);
|
262
|
+
border-bottom-color: var(--color-link-hover);
|
263
|
+
color: var(--color-details-lighter);
|
264
|
+
}
|
265
|
+
|
266
|
+
&:active {
|
267
|
+
box-shadow: inset 0 -2.5em 0 var(--color-link-hover);
|
268
|
+
}
|
269
|
+
}
|
data/_sass/steve/_layout.scss
CHANGED
@@ -352,6 +352,81 @@ label[for="search_terms"] {
|
|
352
352
|
}
|
353
353
|
}
|
354
354
|
|
355
|
+
// Comments
|
356
|
+
|
357
|
+
.comments-title {
|
358
|
+
margin-bottom: var(--gap);
|
359
|
+
}
|
360
|
+
|
361
|
+
.comments-notice {
|
362
|
+
margin-top: calc(var(--gap) / 2);
|
363
|
+
margin-bottom: calc(var(--gap) / 2);
|
364
|
+
color: var(--color-details-darker);
|
365
|
+
}
|
366
|
+
|
367
|
+
.comments-list {
|
368
|
+
list-style: none;
|
369
|
+
margin-left: 0;
|
370
|
+
margin-bottom: var(--gap);
|
371
|
+
|
372
|
+
.comment-item {
|
373
|
+
margin-bottom: var(--gap);
|
374
|
+
padding-bottom: var(--gap);
|
375
|
+
border-bottom: 3px dotted var(--color-details-lighter);
|
376
|
+
}
|
377
|
+
}
|
378
|
+
|
379
|
+
.comment {
|
380
|
+
font-size: 95%;
|
381
|
+
|
382
|
+
.comment-meta {
|
383
|
+
margin-bottom: 1rem;
|
384
|
+
}
|
385
|
+
|
386
|
+
.author-avatar {
|
387
|
+
width: 2.5rem;
|
388
|
+
border-radius: 5px;
|
389
|
+
box-shadow: 0 0 2px var(--color-details);
|
390
|
+
float: left;
|
391
|
+
margin-right: 1rem;
|
392
|
+
}
|
393
|
+
|
394
|
+
.comment-body > *:not(:last-child) {
|
395
|
+
margin-bottom: 0.5rem;
|
396
|
+
}
|
397
|
+
}
|
398
|
+
|
399
|
+
.comment-message-area {
|
400
|
+
margin-bottom: calc(var(--gap) / 2);
|
401
|
+
}
|
402
|
+
|
403
|
+
.message-area {
|
404
|
+
width: 100%;
|
405
|
+
resize: vertical;
|
406
|
+
}
|
407
|
+
|
408
|
+
.comment-fields {
|
409
|
+
display: grid;
|
410
|
+
grid-template-columns: 1fr 1fr 1fr;
|
411
|
+
gap: calc(var(--gap) / 2);
|
412
|
+
margin-bottom: calc(var(--gap) / 2);
|
413
|
+
|
414
|
+
@media screen and (max-width: 800px) {
|
415
|
+
grid-template-columns: 1fr;
|
416
|
+
flex-flow: column nowrap;
|
417
|
+
}
|
418
|
+
|
419
|
+
input {
|
420
|
+
min-width: 0;
|
421
|
+
width: auto;
|
422
|
+
}
|
423
|
+
}
|
424
|
+
|
425
|
+
.comment-actions {
|
426
|
+
display: flex;
|
427
|
+
justify-content: flex-end;
|
428
|
+
}
|
429
|
+
|
355
430
|
/*
|
356
431
|
Site Footer
|
357
432
|
*/
|
data/staticman.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
comments:
|
2
|
+
branch: main
|
3
|
+
commitMessage: "Adds comment via Staticman"
|
4
|
+
path: "_data/comments/{options.slug}"
|
5
|
+
filename: "comment-{@timestamp}"
|
6
|
+
format: yaml
|
7
|
+
moderation: true
|
8
|
+
allowedFields:
|
9
|
+
- name
|
10
|
+
- email
|
11
|
+
- website
|
12
|
+
- message
|
13
|
+
generatedFields:
|
14
|
+
date:
|
15
|
+
type: date
|
16
|
+
options:
|
17
|
+
format: timestamp-seconds
|
18
|
+
requiredFields:
|
19
|
+
- name
|
20
|
+
- email
|
21
|
+
- message
|
22
|
+
transforms:
|
23
|
+
email: md5
|
24
|
+
akismet:
|
25
|
+
enabled: true
|
26
|
+
author: name
|
27
|
+
authorEmail: email
|
28
|
+
authorUrl: website
|
29
|
+
content: message
|
30
|
+
type: comment
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: steve-for-jekyll
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arthur Freitas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.15
|
47
|
+
version: '0.15'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.15
|
54
|
+
version: '0.15'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: jekyll-seo-tag
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '2.2'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: jekyll-loading-lazy
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.1'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.1'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: bundler
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,6 +156,8 @@ files:
|
|
142
156
|
- _includes/head.html
|
143
157
|
- _includes/header.html
|
144
158
|
- _includes/header/menu.html
|
159
|
+
- _includes/post/comment-form.html
|
160
|
+
- _includes/post/comments.html
|
145
161
|
- _includes/search-form.html
|
146
162
|
- _layouts/archive.html
|
147
163
|
- _layouts/blog.html
|
@@ -155,6 +171,7 @@ files:
|
|
155
171
|
- _sass/steve/_syntax.scss
|
156
172
|
- assets/css/screen.scss
|
157
173
|
- assets/js/responsive-videos.js
|
174
|
+
- staticman.yml
|
158
175
|
homepage: https://github.com/esporo/steve
|
159
176
|
licenses:
|
160
177
|
- MIT
|
@@ -174,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
191
|
- !ruby/object:Gem::Version
|
175
192
|
version: '0'
|
176
193
|
requirements: []
|
177
|
-
rubygems_version: 3.2.
|
194
|
+
rubygems_version: 3.2.21
|
178
195
|
signing_key:
|
179
196
|
specification_version: 4
|
180
197
|
summary: A charming and fun Jekyll theme for blogs.
|