jekyll-theme-elementary-blog 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.editorconfig +12 -0
- data/.github/workflows/deploy.yml +32 -0
- data/.gitignore +5 -0
- data/404.md +16 -0
- data/Gemfile +10 -0
- data/LICENSE +674 -0
- data/README.md +121 -0
- data/_config.yaml +56 -0
- data/_includes/appcenter.html +9 -0
- data/_includes/byline.html +36 -0
- data/_includes/featured.html +27 -0
- data/_includes/footer.html +11 -0
- data/_includes/head.html +48 -0
- data/_includes/license.html +9 -0
- data/_includes/medium.html +8 -0
- data/_includes/nav.html +51 -0
- data/_includes/outdated.html +14 -0
- data/_includes/read-time.html +5 -0
- data/_includes/scripts.html +16 -0
- data/_includes/social.html +102 -0
- data/_includes/spotlight.html +15 -0
- data/_includes/svg/appcenter.svg +32 -0
- data/_includes/svg/creative-commons-by.svg +1 -0
- data/_includes/svg/creative-commons-sa.svg +1 -0
- data/_includes/svg/creative-commons.svg +1 -0
- data/_includes/svg/elementary.svg +28 -0
- data/_includes/svg/facebook.svg +1 -0
- data/_includes/svg/github.svg +1 -0
- data/_includes/svg/logomark.svg +1 -0
- data/_includes/svg/mastodon.svg +1 -0
- data/_includes/svg/patreon.svg +1 -0
- data/_includes/svg/paypal.svg +1 -0
- data/_includes/svg/reddit.svg +1 -0
- data/_includes/svg/rss-square.svg +1 -0
- data/_includes/svg/shopping-cart.svg +1 -0
- data/_includes/svg/slack.svg +1 -0
- data/_includes/svg/stack-exchange.svg +1 -0
- data/_includes/svg/twitter.svg +1 -0
- data/_includes/tags.html +7 -0
- data/_includes/thanks.html +93 -0
- data/_includes/title.html +12 -0
- data/_includes/twitter-card.html +24 -0
- data/_layouts/default.html +14 -0
- data/_layouts/error.html +8 -0
- data/_layouts/post.html +53 -0
- data/_layouts/tagfeed.json +51 -0
- data/_layouts/uglify.html +4 -0
- data/_posts/1992-02-01-test.md +125 -0
- data/_posts/2019-10-01-future-embargoed-post.md +18 -0
- data/_posts/2019-11-25-sponsor-post.md +18 -0
- data/_posts/2020-07-16-twitter-embeds.md +39 -0
- data/_posts/3000-12-31-future-post.md +11 -0
- data/_sass/_byline.scss +84 -0
- data/_sass/_code.scss +196 -0
- data/_sass/_colors.scss +94 -0
- data/_sass/_featured.scss +149 -0
- data/_sass/_figures.scss +150 -0
- data/_sass/_layout.scss +168 -0
- data/_sass/_nav.scss +73 -0
- data/_sass/_tags.scss +17 -0
- data/_sass/_twitter-cards.scss +79 -0
- data/_sass/_typography.scss +162 -0
- data/authors.md +23 -0
- data/blog-card.xcf +0 -0
- data/css/main.scss +119 -0
- data/feed.json +51 -0
- data/feed.xml +44 -0
- data/feed/updates.json +5 -0
- data/images/cc-by-sa.png +0 -0
- data/images/edit-copy-32.svg +439 -0
- data/images/facebook.svg +60 -0
- data/images/mastodon.svg +70 -0
- data/images/reddit.svg +27 -0
- data/images/twitter.svg +67 -0
- data/index.html +56 -0
- data/jekyll-theme-elementary-blog.gemspec +23 -0
- data/tags.md +20 -0
- metadata +91 -14
data/_sass/_nav.scss
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
body > header {
|
2
|
+
background-color: var(--header-bg-color);
|
3
|
+
color: var(--header-fg-color);
|
4
|
+
fill: var(--header-fg-color);
|
5
|
+
|
6
|
+
nav {
|
7
|
+
display: flex;
|
8
|
+
font-size: 0;
|
9
|
+
overflow-x: auto;
|
10
|
+
padding: 0 1rem;
|
11
|
+
|
12
|
+
ul {
|
13
|
+
display: inline-block;
|
14
|
+
flex: 0 0 auto;
|
15
|
+
margin: 0;
|
16
|
+
padding: 0;
|
17
|
+
}
|
18
|
+
|
19
|
+
li {
|
20
|
+
display: inline-block;
|
21
|
+
list-style: none;
|
22
|
+
vertical-align: middle;
|
23
|
+
}
|
24
|
+
|
25
|
+
a {
|
26
|
+
color: var(--header-fg-color);
|
27
|
+
display: inline-block;
|
28
|
+
font-family: var(--ui-font);
|
29
|
+
font-size: 0.85rem;
|
30
|
+
line-height: 2.9em;
|
31
|
+
opacity: 1;
|
32
|
+
padding: 0 0.65rem;
|
33
|
+
text-decoration: none;
|
34
|
+
white-space: nowrap;
|
35
|
+
}
|
36
|
+
|
37
|
+
a:hover {
|
38
|
+
opacity: 0.7;
|
39
|
+
}
|
40
|
+
|
41
|
+
svg {
|
42
|
+
height: 1em;
|
43
|
+
|
44
|
+
* {
|
45
|
+
fill: inherit !important;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
.logomark {
|
50
|
+
line-height: 0;
|
51
|
+
|
52
|
+
svg {
|
53
|
+
height: auto;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
.primary {
|
59
|
+
justify-content: space-between;
|
60
|
+
}
|
61
|
+
|
62
|
+
.secondary {
|
63
|
+
background-color: var(--secondary-bg-color);
|
64
|
+
justify-content: center;
|
65
|
+
|
66
|
+
a {
|
67
|
+
color: var(--secondary-fg-color);
|
68
|
+
font-size: 0.7rem;
|
69
|
+
line-height: 3.6em;
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
data/_sass/_tags.scss
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
aside.tags {
|
2
|
+
margin: 1em auto;
|
3
|
+
max-width: var(--content-width);
|
4
|
+
}
|
5
|
+
|
6
|
+
.tag {
|
7
|
+
background-color: var(--banana-300);
|
8
|
+
border-radius: 0.25em;
|
9
|
+
color: var(--banana-900);
|
10
|
+
display: inline-block;
|
11
|
+
font-family: var(--ui-font);
|
12
|
+
font-size: 0.75em;
|
13
|
+
line-height: 2em;
|
14
|
+
margin: 0.125em;
|
15
|
+
padding: 0 0.5em;
|
16
|
+
text-decoration: none;
|
17
|
+
}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
.twitter-card {
|
2
|
+
background-color: var(--silver-100);
|
3
|
+
box-shadow:
|
4
|
+
0 0 0 1px rgba(0, 0, 0, 0.05),
|
5
|
+
0 3px 3px rgba(0, 0, 0, 0.22);
|
6
|
+
border-radius: 0.5em;
|
7
|
+
font-family: var(--ui-font);
|
8
|
+
margin: 0 auto 2em;
|
9
|
+
max-width: 50ch;
|
10
|
+
padding: 1em;
|
11
|
+
|
12
|
+
a {
|
13
|
+
color: inherit;
|
14
|
+
opacity: 1;
|
15
|
+
text-decoration: none;
|
16
|
+
|
17
|
+
&:hover {
|
18
|
+
text-decoration: underline;
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
22
|
+
p {
|
23
|
+
line-height: 1.5em;
|
24
|
+
margin-bottom: 0.5em;
|
25
|
+
}
|
26
|
+
|
27
|
+
header {
|
28
|
+
display: flex;
|
29
|
+
justify-content: space-between;
|
30
|
+
margin-bottom: 0.75em;
|
31
|
+
|
32
|
+
.account {
|
33
|
+
display: grid;
|
34
|
+
|
35
|
+
.avatar {
|
36
|
+
border-radius: 50%;
|
37
|
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
|
38
|
+
display: block;
|
39
|
+
grid-row-end: span 2;
|
40
|
+
height: 2.5em;
|
41
|
+
margin-right: 0.5em;
|
42
|
+
}
|
43
|
+
|
44
|
+
p,
|
45
|
+
strong {
|
46
|
+
font-size: 0.8em;
|
47
|
+
grid-column-start: 2;
|
48
|
+
line-height: 1.25;
|
49
|
+
margin: 0;
|
50
|
+
}
|
51
|
+
|
52
|
+
p {
|
53
|
+
opacity: 0.75;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
.logo {
|
58
|
+
height: 1.25em;
|
59
|
+
margin: 0;
|
60
|
+
text-align: right;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
|
64
|
+
footer {
|
65
|
+
font-size: 0.75em;
|
66
|
+
line-height: 1;
|
67
|
+
margin-top: 1.5em;
|
68
|
+
|
69
|
+
a {
|
70
|
+
display: flex;
|
71
|
+
justify-content: space-between;
|
72
|
+
opacity: 0.6;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
@media (prefers-color-scheme: dark) {
|
77
|
+
background-color: var(--black-500);
|
78
|
+
}
|
79
|
+
}
|
@@ -0,0 +1,162 @@
|
|
1
|
+
:root {
|
2
|
+
--ui-font: "Open Sans", "Noto Sans", "Roboto", "Droid Sans", sans-serif;
|
3
|
+
--copy-font: "Noto Serif", "Droid Serif", serif;
|
4
|
+
--heading-font: Raleway, var(--ui-font);
|
5
|
+
}
|
6
|
+
|
7
|
+
html {
|
8
|
+
font-family: var(--copy-font);
|
9
|
+
font-size: 5.625vw;
|
10
|
+
font-weight: 400;
|
11
|
+
word-spacing: -0.05em;
|
12
|
+
|
13
|
+
@media (min-width: 320px) {
|
14
|
+
font-size: 18px;
|
15
|
+
}
|
16
|
+
|
17
|
+
@media (min-width: 1024px) {
|
18
|
+
font-size: 20px;
|
19
|
+
}
|
20
|
+
|
21
|
+
@media print {
|
22
|
+
font-size: 14px;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
a {
|
27
|
+
color: var(--accent-color);
|
28
|
+
opacity: 0.8;
|
29
|
+
text-decoration-skip: ink;
|
30
|
+
transition: opacity 250ms ease;
|
31
|
+
|
32
|
+
&:hover,
|
33
|
+
&:focus {
|
34
|
+
opacity: 1;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
article {
|
39
|
+
line-height: 1.75em;
|
40
|
+
|
41
|
+
p,
|
42
|
+
ul,
|
43
|
+
ol {
|
44
|
+
margin-top: 0.5em;
|
45
|
+
margin-bottom: 2em;
|
46
|
+
}
|
47
|
+
|
48
|
+
li {
|
49
|
+
padding-left: 0.25em;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
h1,
|
54
|
+
h2,
|
55
|
+
h3,
|
56
|
+
h4,
|
57
|
+
h5,
|
58
|
+
h6 {
|
59
|
+
font-family: var(--heading-font);
|
60
|
+
line-height: 1.2em;
|
61
|
+
margin-top: 2em;
|
62
|
+
margin-bottom: 0;
|
63
|
+
}
|
64
|
+
|
65
|
+
h1 {
|
66
|
+
line-height: 1em;
|
67
|
+
}
|
68
|
+
|
69
|
+
h3,
|
70
|
+
h4,
|
71
|
+
h5 {
|
72
|
+
opacity: 0.8;
|
73
|
+
}
|
74
|
+
|
75
|
+
h6 {
|
76
|
+
opacity: 0.67;
|
77
|
+
}
|
78
|
+
|
79
|
+
header h1 {
|
80
|
+
font-size: 2em;
|
81
|
+
margin-top: 1em;
|
82
|
+
}
|
83
|
+
|
84
|
+
header h1 + h2 {
|
85
|
+
font-family: var(--ui-font);
|
86
|
+
font-size: 1.2rem;
|
87
|
+
font-weight: normal;
|
88
|
+
margin-top: 0.25em;
|
89
|
+
opacity: 0.5;
|
90
|
+
}
|
91
|
+
|
92
|
+
header h2 {
|
93
|
+
font-size: 1.5em;
|
94
|
+
margin-bottom: 1em;
|
95
|
+
}
|
96
|
+
|
97
|
+
header h2 + h3 {
|
98
|
+
font-family: var(--ui-font);
|
99
|
+
font-size: 0.9rem;
|
100
|
+
font-weight: normal;
|
101
|
+
margin-top: -1.5em;
|
102
|
+
margin-bottom: 1em;
|
103
|
+
opacity: 0.5;
|
104
|
+
}
|
105
|
+
|
106
|
+
blockquote {
|
107
|
+
max-width: var(--content-width);
|
108
|
+
margin-left: auto;
|
109
|
+
padding-left: 1em;
|
110
|
+
margin-right: auto;
|
111
|
+
font-style: italic;
|
112
|
+
border-left: 0.125em solid var(--accent-color);
|
113
|
+
|
114
|
+
em,
|
115
|
+
i {
|
116
|
+
font-style: normal;
|
117
|
+
}
|
118
|
+
|
119
|
+
aside & {
|
120
|
+
font-size: 1.6em;
|
121
|
+
line-height: 1.4em;
|
122
|
+
border: none;
|
123
|
+
margin: 2em auto;
|
124
|
+
opacity: 0.8;
|
125
|
+
padding: 0 1em;
|
126
|
+
}
|
127
|
+
|
128
|
+
.attribution {
|
129
|
+
display: block;
|
130
|
+
font-size: 0.8em;
|
131
|
+
font-style: normal;
|
132
|
+
margin-top: -1.5em;
|
133
|
+
|
134
|
+
&:before {
|
135
|
+
content: "–";
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
|
140
|
+
aside {
|
141
|
+
margin-bottom: 2em;
|
142
|
+
}
|
143
|
+
|
144
|
+
kbd {
|
145
|
+
background-color: rgba(200, 200, 200, 0.15);
|
146
|
+
border: 1px solid rgba(0, 0, 0, 0.30);
|
147
|
+
border-radius: 0.2em;
|
148
|
+
box-shadow:
|
149
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.12),
|
150
|
+
inset 0 -2px 0 0 rgba(0, 0, 0, 0.15);
|
151
|
+
display: inline-block;
|
152
|
+
font-family: var(--ui-font);
|
153
|
+
font-size: 80%;
|
154
|
+
line-height: 1.5;
|
155
|
+
margin: 0 0.2em;
|
156
|
+
min-width: 1em;
|
157
|
+
padding: 0.125em 0.5em;
|
158
|
+
text-align: center;
|
159
|
+
user-select: none;
|
160
|
+
white-space: nowrap;
|
161
|
+
}
|
162
|
+
|
data/authors.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
---
|
3
|
+
|
4
|
+
# Authors
|
5
|
+
|
6
|
+
<section class="author-list">
|
7
|
+
{% assign site_authors = site.authors | sort %}
|
8
|
+
{% for each_author in site_authors %}
|
9
|
+
{% if each_author[0] != 'anonymous' %}
|
10
|
+
{% assign posts = site.posts | where: "author", each_author[0] | sort | reverse %}
|
11
|
+
{% if posts.size > 0 %}
|
12
|
+
<hr />
|
13
|
+
<h2 id="{{ each_author[0] }}">{{ each_author[1].name }}</h2>
|
14
|
+
<p>{{ each_author[1].description }}</p>
|
15
|
+
{% for post in posts %}
|
16
|
+
{% unless post.hidden %}
|
17
|
+
{% include featured.html post=post %}
|
18
|
+
{% endunless %}
|
19
|
+
{% endfor %}
|
20
|
+
{% endif %}
|
21
|
+
{% endif %}
|
22
|
+
{% endfor %}
|
23
|
+
</section>
|
data/blog-card.xcf
ADDED
Binary file
|
data/css/main.scss
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
---
|
2
|
+
# Only the main Sass file needs front matter (the dashes are enough)
|
3
|
+
---
|
4
|
+
@charset "utf-8";
|
5
|
+
|
6
|
+
// Global
|
7
|
+
@import "colors";
|
8
|
+
@import "layout";
|
9
|
+
@import "typography";
|
10
|
+
|
11
|
+
// Components
|
12
|
+
@import "byline";
|
13
|
+
@import "code";
|
14
|
+
@import "featured";
|
15
|
+
@import "figures";
|
16
|
+
@import "nav";
|
17
|
+
@import "tags";
|
18
|
+
@import "twitter-cards";
|
19
|
+
|
20
|
+
:root {
|
21
|
+
color-scheme: light dark;
|
22
|
+
}
|
23
|
+
|
24
|
+
* {
|
25
|
+
box-sizing: border-box;
|
26
|
+
}
|
27
|
+
|
28
|
+
body,
|
29
|
+
html {
|
30
|
+
background-color: var(--bg-color);
|
31
|
+
color: var(--fg-color);
|
32
|
+
fill: var(--fg-color);
|
33
|
+
margin: 0;
|
34
|
+
overflow-x: hidden;
|
35
|
+
}
|
36
|
+
|
37
|
+
html {
|
38
|
+
// To blend with the footer on short pages
|
39
|
+
background-color: var(--secondary-bg-color);
|
40
|
+
}
|
41
|
+
|
42
|
+
svg {
|
43
|
+
fill: inherit;
|
44
|
+
}
|
45
|
+
|
46
|
+
.error {
|
47
|
+
max-width: 22rem;
|
48
|
+
margin: 8em auto;
|
49
|
+
text-align: center;
|
50
|
+
|
51
|
+
p {
|
52
|
+
font-family: var(--ui-font);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
nav.pagination {
|
57
|
+
font-size: 0; // Fix percentage issues with whitespace
|
58
|
+
margin: 2rem auto;
|
59
|
+
text-align: center;
|
60
|
+
|
61
|
+
a {
|
62
|
+
display: inline-block;
|
63
|
+
font-size: 1rem;
|
64
|
+
font-family: var(--ui-font);
|
65
|
+
padding: 1em;
|
66
|
+
|
67
|
+
&.next::after {
|
68
|
+
content: " →";
|
69
|
+
}
|
70
|
+
|
71
|
+
&.previous::before {
|
72
|
+
content: "← ";
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
.social {
|
78
|
+
font-size: 0; // Fix percentage issue with whitespace
|
79
|
+
margin: 4rem auto;
|
80
|
+
text-align: center;
|
81
|
+
|
82
|
+
h2 {
|
83
|
+
font-size: 1.5rem;
|
84
|
+
}
|
85
|
+
|
86
|
+
div {
|
87
|
+
display: inline-block;
|
88
|
+
font-size: 1rem;
|
89
|
+
width: 50%;
|
90
|
+
}
|
91
|
+
|
92
|
+
a {
|
93
|
+
display: inline-block;
|
94
|
+
margin: 0.75rem;
|
95
|
+
|
96
|
+
img {
|
97
|
+
width: 32px;
|
98
|
+
height: 32px;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
.center {
|
104
|
+
margin-left: auto;
|
105
|
+
margin-right: auto;
|
106
|
+
text-align: center;
|
107
|
+
}
|
108
|
+
|
109
|
+
.button {
|
110
|
+
border: 1px solid;
|
111
|
+
border-radius: 0.25em;
|
112
|
+
font-family: var(--ui-font);
|
113
|
+
padding: 0.5em 1em;
|
114
|
+
text-decoration: none;
|
115
|
+
}
|
116
|
+
|
117
|
+
pre {
|
118
|
+
-webkit-text-size-adjust: none;
|
119
|
+
}
|