jekyll-theme-elementary-blog 1.0.0 → 1.0.1

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +12 -0
  3. data/.github/workflows/deploy.yml +32 -0
  4. data/.gitignore +5 -0
  5. data/404.md +16 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE +674 -0
  8. data/README.md +121 -0
  9. data/_config.yaml +56 -0
  10. data/_includes/appcenter.html +9 -0
  11. data/_includes/byline.html +36 -0
  12. data/_includes/featured.html +27 -0
  13. data/_includes/footer.html +11 -0
  14. data/_includes/head.html +48 -0
  15. data/_includes/license.html +9 -0
  16. data/_includes/medium.html +8 -0
  17. data/_includes/nav.html +51 -0
  18. data/_includes/outdated.html +14 -0
  19. data/_includes/read-time.html +5 -0
  20. data/_includes/scripts.html +16 -0
  21. data/_includes/social.html +102 -0
  22. data/_includes/spotlight.html +15 -0
  23. data/_includes/svg/appcenter.svg +32 -0
  24. data/_includes/svg/creative-commons-by.svg +1 -0
  25. data/_includes/svg/creative-commons-sa.svg +1 -0
  26. data/_includes/svg/creative-commons.svg +1 -0
  27. data/_includes/svg/elementary.svg +28 -0
  28. data/_includes/svg/facebook.svg +1 -0
  29. data/_includes/svg/github.svg +1 -0
  30. data/_includes/svg/logomark.svg +1 -0
  31. data/_includes/svg/mastodon.svg +1 -0
  32. data/_includes/svg/patreon.svg +1 -0
  33. data/_includes/svg/paypal.svg +1 -0
  34. data/_includes/svg/reddit.svg +1 -0
  35. data/_includes/svg/rss-square.svg +1 -0
  36. data/_includes/svg/shopping-cart.svg +1 -0
  37. data/_includes/svg/slack.svg +1 -0
  38. data/_includes/svg/stack-exchange.svg +1 -0
  39. data/_includes/svg/twitter.svg +1 -0
  40. data/_includes/tags.html +7 -0
  41. data/_includes/thanks.html +93 -0
  42. data/_includes/title.html +12 -0
  43. data/_includes/twitter-card.html +24 -0
  44. data/_layouts/default.html +14 -0
  45. data/_layouts/error.html +8 -0
  46. data/_layouts/post.html +53 -0
  47. data/_layouts/tagfeed.json +51 -0
  48. data/_layouts/uglify.html +4 -0
  49. data/_posts/1992-02-01-test.md +125 -0
  50. data/_posts/2019-10-01-future-embargoed-post.md +18 -0
  51. data/_posts/2019-11-25-sponsor-post.md +18 -0
  52. data/_posts/2020-07-16-twitter-embeds.md +39 -0
  53. data/_posts/3000-12-31-future-post.md +11 -0
  54. data/_sass/_byline.scss +84 -0
  55. data/_sass/_code.scss +196 -0
  56. data/_sass/_colors.scss +94 -0
  57. data/_sass/_featured.scss +149 -0
  58. data/_sass/_figures.scss +150 -0
  59. data/_sass/_layout.scss +168 -0
  60. data/_sass/_nav.scss +73 -0
  61. data/_sass/_tags.scss +17 -0
  62. data/_sass/_twitter-cards.scss +79 -0
  63. data/_sass/_typography.scss +162 -0
  64. data/authors.md +23 -0
  65. data/blog-card.xcf +0 -0
  66. data/css/main.scss +119 -0
  67. data/feed.json +51 -0
  68. data/feed.xml +44 -0
  69. data/feed/updates.json +5 -0
  70. data/images/cc-by-sa.png +0 -0
  71. data/images/edit-copy-32.svg +439 -0
  72. data/images/facebook.svg +60 -0
  73. data/images/mastodon.svg +70 -0
  74. data/images/reddit.svg +27 -0
  75. data/images/twitter.svg +67 -0
  76. data/index.html +56 -0
  77. data/jekyll-theme-elementary-blog.gemspec +23 -0
  78. data/tags.md +20 -0
  79. metadata +91 -14
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: Future Embargoed Post
3
+ description: Shh, it's a secret!
4
+ author: cassidyjames
5
+ tags:
6
+ - meta
7
+ - embargo
8
+ image: https://source.unsplash.com/featured?secret
9
+
10
+ hidden: 3000-01-01T00:00:00Z
11
+ date: 2019-10-01
12
+ ---
13
+
14
+ This is demonstrating a future embargoed post. This one is a little tricky; in order for GitHub Pages (and other instances that don't publish posts from the future) to render this, we have to put the publish date in the past, whether that's in the filename or with `date` in the front-matter.
15
+
16
+ But if we want to hide or embargo it, we need to specify `hidden` in the front-matter. If it's just `hidden: true`, we'll show a generic hidden message at the top. If it's `hidden: ` and then a date, we'll show an embargo message mentioning that date specifically.
17
+
18
+ Remember that the URL is public, so if someone shares it, anyone can read it. And if it's guessable, it's possible someone will just stumble upon it.
@@ -0,0 +1,18 @@
1
+ ---
2
+ title: Sponsor Post
3
+ description: Thank you to our sponsors
4
+ author: cassidyjames
5
+ image: https://source.unsplash.com/featured?money
6
+ tags:
7
+ - meta
8
+ - sponsorship
9
+
10
+ sponsor:
11
+ name: FakeSponsor
12
+ link: https://example.com
13
+ image: https://source.unsplash.com/600x150/daily?money
14
+ image-2x: https://source.unsplash.com/1200x300/daily?money
15
+ hook: "They're not real, but we won't let that stop them from throwing money at us."
16
+ ---
17
+
18
+ This is a test post to demonstrate how the sponsors slot works. It's defined in the front-matter, and then will show on this post in perpetuity.
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: Twitter “Embed” Cards While Respecting Privacy
3
+ description: A quick demo!
4
+ author: cassidyjames
5
+ ---
6
+
7
+ We wanted to quote/embed a tweet in our blog, but don't like the idea of pulling in JS or even an iframe from Twitter's servers. So insted, we recreate a tweet card locally, making sure to follow the [Twitter Display Requirements](https://developer.twitter.com/en/developer-terms/display-requirements). Check it out:
8
+
9
+ ```liquid
10
+ {% raw %}{% include twitter-card.html
11
+ name="Cassidy James Blaede"
12
+ account="CassidyJames"
13
+ avatar="https://gravatar.com/avatar/41275ecc8271aca852ce2c0ff72d2610?s=128"
14
+ id="1281816033343537152"
15
+ timestamp="2020-07-10"
16
+ contents="Got my PINEBOOK Pro! Super duper first impressions: damn, this
17
+ hardware quality is nice for the price. I would love to see what they could
18
+ do around the $500–750 price, honestly. Performance is great; I would not
19
+ guess it was ARM just from using it. It’s fanless!"
20
+ %}{% endraw %}
21
+ ```
22
+
23
+ Turns into:
24
+
25
+ {% include twitter-card.html
26
+ name="Cassidy James Blaede"
27
+ account="CassidyJames"
28
+ avatar="https://gravatar.com/avatar/41275ecc8271aca852ce2c0ff72d2610?s=128"
29
+ id="1281816033343537152"
30
+ timestamp="2020-07-10"
31
+ contents="Got my PINEBOOK Pro! Super duper first impressions: damn, this
32
+ hardware quality is nice for the price. I would love to see what they could
33
+ do around the $500–750 price, honestly. Performance is great; I would not
34
+ guess it was ARM just from using it. It’s fanless!"
35
+ %}
36
+
37
+ This is all rendered and styled localy, ensuring we're not hitting Twitter's tracking code just to show some content. It also means quoted tweets will persist, even if removed from Twitter (since it's just local content). It's even light/dark style aware!
38
+
39
+ It does not (yet) support showing retweets, verified badges, or embedded media. If/when the need arises for those, we can add them, though. Profile images must be manually passed in, as well—ideally included with the regular assets for a post so all assets are staying local to the domain.
@@ -0,0 +1,11 @@
1
+ ---
2
+ title: Future Post
3
+ description: "We come from the future!"
4
+ author: cassidyjames
5
+ image: https://source.unsplash.com/featured?future
6
+ tags:
7
+ - future
8
+ - meta
9
+ ---
10
+
11
+ You found a post from the future! That must mean you're running Jekyll with `--future`, or somehow you have actually time-traveled.
@@ -0,0 +1,84 @@
1
+ .byline {
2
+ font-family: var(--ui-font);
3
+ font-size: 0.8em;
4
+ line-height: 1.5em;
5
+ margin: 1.5em auto;
6
+ max-width: var(--content-width);
7
+
8
+ .avatar {
9
+ background-color: var(--slate-500);
10
+ border: none;
11
+ border-radius: 50%;
12
+ color: transparent;
13
+ float: left;
14
+ height: 48px;
15
+ margin-right: 0.5em;
16
+ overflow: hidden;
17
+ position: relative;
18
+ vertical-align: middle;
19
+ width: 48px;
20
+
21
+ &::before {
22
+ content: "";
23
+ border-radius: 50%;
24
+ box-shadow:
25
+ inset 0 0 0 1px rgba(0, 0, 0, 0.35),
26
+ inset 0 0 0 2px rgba(255, 255, 255, 0.1),
27
+ inset 0 2px 0 0 rgba(255, 255, 255, 0.45),
28
+ inset 0 -2px 0 0 rgba(255, 255, 255, 0.15),
29
+ 0 1px 3px 0 rgba(0, 0, 0, 0.12),
30
+ 0 1px 2px 0 rgba(0, 0, 0, 0.24);
31
+ height: 100%;
32
+ position: absolute;
33
+ width: 100%;
34
+
35
+ @media (prefers-color-scheme: dark) {
36
+ box-shadow:
37
+ inset 0 0 0 1px black,
38
+ inset 0 0 0 2px rgba(255, 255, 255, 0.05),
39
+ inset 0 2px 0 0 rgba(255, 255, 255, 0.22),
40
+ inset 0 -2px 0 0 rgba(255, 255, 255, 0.07),
41
+ 0 1px 3px 0 rgba(0, 0, 0, 0.24),
42
+ 0 1px 2px 0 rgba(0, 0, 0, 0.48);
43
+ }
44
+ }
45
+ }
46
+
47
+ a {
48
+ color: inherit;
49
+ opacity: 1;
50
+ text-decoration: none;
51
+
52
+ &:hover {
53
+ color: var(--accent-color);
54
+ text-decoration: underline;
55
+ }
56
+ }
57
+
58
+ .name {
59
+ font-weight: 600;
60
+ opacity: 0.8;
61
+ }
62
+
63
+ .description {
64
+ opacity: 0.67;
65
+
66
+ &::before {
67
+ content: " | ";
68
+ }
69
+ }
70
+
71
+ time,
72
+ .read-time {
73
+ opacity: 0.8;
74
+ font-size: 0.9em;
75
+ line-height: 1em;
76
+ }
77
+
78
+ .read-time::before {
79
+ display: inline-block;
80
+ margin: 0 0.25em;
81
+ content: " · ";
82
+ }
83
+ }
84
+
@@ -0,0 +1,196 @@
1
+ // Solarized Code Highlighting
2
+ // Adapted from https://gist.github.com/nicolashery/5765395
3
+
4
+ code {
5
+ background-color: var(--secondary-bg-color);
6
+ border-radius: 0.25em;
7
+ font-size: 0.85em;
8
+ padding: 0.2em;
9
+ }
10
+
11
+ .highlighter-rouge {
12
+ margin: 2em auto;
13
+ text-align: center;
14
+
15
+ > .highlight {
16
+ border-radius: 0.25em;
17
+ box-shadow:
18
+ 0 0 0 1px rgba(0, 0, 0, 0.05),
19
+ 0 3px 3px rgba(0, 0, 0, 0.22);
20
+ line-height: 1;
21
+ }
22
+ }
23
+
24
+ .highlight {
25
+ code {
26
+ padding: 0;
27
+ }
28
+
29
+ table {
30
+ border-spacing: 0;
31
+ margin: auto;
32
+ }
33
+ }
34
+
35
+ .rouge-code {
36
+ padding-left: 0.25em;
37
+ padding-right: 1em;
38
+ }
39
+
40
+
41
+ .highlight {
42
+ display: inline-block;
43
+ font-size: 0.85em;
44
+ line-height: 1.33em;
45
+ margin: auto;
46
+ overflow: auto;
47
+ text-align: left;
48
+ background-color: var(--solarized-base3);
49
+ color: var(--solarized-base01);
50
+
51
+ .gl {
52
+ background-color: var(--solarized-base2);
53
+ padding: 0 0.5em;
54
+ text-align: right;
55
+ }
56
+
57
+ .c,
58
+ .c1,
59
+ .cm,
60
+ .sb {
61
+ color: var(--solarized-base1);
62
+ }
63
+
64
+ .err,
65
+ .g,
66
+ .ge,
67
+ .go,
68
+ .gp,
69
+ .gs,
70
+ .gt,
71
+ .l,
72
+ .ld,
73
+ .n,
74
+ .na,
75
+ .nl,
76
+ .nn,
77
+ .nx,
78
+ .p,
79
+ .py,
80
+ .sd,
81
+ .sh,
82
+ .w {
83
+ color: var(--solarized-base01);
84
+ }
85
+
86
+ .gd,
87
+ .il,
88
+ .m,
89
+ .mf,
90
+ .mh,
91
+ .mi,
92
+ .mo,
93
+ .s,
94
+ .s1,
95
+ .s2,
96
+ .sc,
97
+ .si,
98
+ .ss,
99
+ .sx {
100
+ color: var(--solarized-cyan);
101
+ }
102
+
103
+ .bp,
104
+ .kd,
105
+ .kr,
106
+ .nc,
107
+ .nd,
108
+ .nf,
109
+ .nt,
110
+ .nv,
111
+ .vc,
112
+ .vg,
113
+ .vi {
114
+ color: var(--solarized-blue);
115
+ }
116
+
117
+ .cp,
118
+ .cs,
119
+ .gi,
120
+ .k,
121
+ .kn,
122
+ .kp,
123
+ .o,
124
+ .ow {
125
+ color: var(--solarized-green);
126
+ }
127
+
128
+ .gh,
129
+ .gu,
130
+ .kc,
131
+ .ne,
132
+ .ni,
133
+ .no,
134
+ .se,
135
+ .x {
136
+ color: var(--solarized-orange);
137
+ }
138
+
139
+ .gr,
140
+ .kt,
141
+ .sr {
142
+ color: var(--solarized-red);
143
+ }
144
+
145
+ .nb {
146
+ color: var(--solarized-yellow);
147
+ }
148
+
149
+ .ge {
150
+ font-style: italic;
151
+ }
152
+
153
+ .gs {
154
+ font-weight: bold;
155
+ }
156
+ }
157
+
158
+ @media (prefers-color-scheme: dark) {
159
+ .highlight {
160
+ background-color: var(--solarized-base03);
161
+ color: var(--solarized-base1);
162
+
163
+ .gl {
164
+ background-color: var(--solarized-base02);
165
+ }
166
+
167
+ .c,
168
+ .c1,
169
+ .cm,
170
+ .sb {
171
+ color: var(--solarized-base01);
172
+ }
173
+
174
+ .err,
175
+ .g,
176
+ .ge,
177
+ .go,
178
+ .gp,
179
+ .gs,
180
+ .gt,
181
+ .l,
182
+ .ld,
183
+ .n,
184
+ .na,
185
+ .nl,
186
+ .nn,
187
+ .nx,
188
+ .p,
189
+ .py,
190
+ .sd,
191
+ .sh,
192
+ .w {
193
+ color: var(--solarized-base1);
194
+ }
195
+ }
196
+ }
@@ -0,0 +1,94 @@
1
+ :root {
2
+ --strawberry-100: #ff8c82;
3
+ --strawberry-300: #ed5353;
4
+ --strawberry-500: #c6262e;
5
+ --strawberry-700: #a10705;
6
+ --strawberry-900: #7a0000;
7
+
8
+ --orange-100: #ffc27d;
9
+ --orange-300: #ffa154;
10
+ --orange-500: #f37329;
11
+ --orange-700: #cc3b02;
12
+ --orange-900: #a62100;
13
+
14
+ --banana-100: #fff394;
15
+ --banana-300: #ffe16b;
16
+ --banana-500: #f9c440;
17
+ --banana-700: #d48e15;
18
+ --banana-900: #ad5f00;
19
+
20
+ --lime-100: #d1ff82;
21
+ --lime-300: #9bdb4d;
22
+ --lime-500: #68b723;
23
+ --lime-700: #3a9104;
24
+ --lime-900: #206b00;
25
+
26
+ --blueberry-100: #8cd5ff;
27
+ --blueberry-300: #64baff;
28
+ --blueberry-500: #3689e6;
29
+ --blueberry-700: #0d52bf;
30
+ --blueberry-900: #002e99;
31
+
32
+ --grape-100: #e4c6fa;
33
+ --grape-300: #cd9ef7;
34
+ --grape-500: #a56de2;
35
+ --grape-700: #7239b3;
36
+ --grape-900: #452981;
37
+
38
+ --cocoa-100: #a3907c;
39
+ --cocoa-300: #8a715e;
40
+ --cocoa-500: #715344;
41
+ --cocoa-700: #57392d;
42
+ --cocoa-900: #3d211b;
43
+
44
+ --silver-100: #fafafa;
45
+ --silver-300: #d4d4d4;
46
+ --silver-500: #abacae;
47
+ --silver-700: #7e8087;
48
+ --silver-900: #555761;
49
+
50
+ --slate-100: #95a3ab;
51
+ --slate-300: #667885;
52
+ --slate-500: #485a6c;
53
+ --slate-700: #273445;
54
+ --slate-900: #0e141f;
55
+
56
+ --black-100: #666666;
57
+ --black-300: #4d4d4d;
58
+ --black-500: #333333;
59
+ --black-700: #1a1a1a;
60
+ --black-900: #000000;
61
+
62
+ --solarized-base01: #586e75;
63
+ --solarized-base02: #073642;
64
+ --solarized-base03: #002b36;
65
+ --solarized-base1: #93a1a1;
66
+ --solarized-base2: #eee8d5;
67
+ --solarized-base3: #fdf6e3;
68
+ --solarized-blue: #268bd2;
69
+ --solarized-cyan: #2aa198;
70
+ --solarized-green: #859900;
71
+ --solarized-orange: #cb4b16;
72
+ --solarized-red: #dc322f;
73
+ --solarized-yellow: #b58900;
74
+
75
+ --bg-color: white;
76
+ --fg-color: var(--black-500);
77
+ --accent-color: var(--blueberry-700);
78
+ --header-bg-color: var(--blueberry-300);
79
+ --header-fg-color: var(--silver-100);
80
+ --secondary-bg-color: #f5f5f5; // Instead of making up a Silver 200
81
+ --secondary-fg-color: var(--black-300);
82
+ --warning-bg-color: var(--banana-300);
83
+ --warning-fg-color: var(--black-900);
84
+ }
85
+
86
+ @media (prefers-color-scheme: dark) {
87
+ :root {
88
+ --bg-color: var(--black-700);
89
+ --fg-color: var(--silver-300);
90
+ --accent-color: var(--blueberry-300);
91
+ --secondary-bg-color: var(--black-500);
92
+ --secondary-fg-color: var(--silver-300);
93
+ }
94
+ }