yefeme 0.7.2 → 0.8.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 +4 -4
- data/README.md +29 -0
- data/_layouts/home.html +57 -8
- data/_layouts/shoot.html +34 -0
- data/_sass/yefeme.scss +126 -0
- metadata +8 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4c10667a79facce4f6c0401d78f2a6fed47ab957ade81c0da3a5865f66585d6e
|
|
4
|
+
data.tar.gz: 641245bffcdfdcd4ecf72c654ba8fe489dbb684db33fc18b81a1d0864ee4f2bf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 86fcff51ffad9b8eae7d5b6e3266acc9280f298361ff5c35c2d9907504e8ade0c097095ab971222cba354f61463d894154b5df636fceda66e5ebca3e56381654
|
|
7
|
+
data.tar.gz: 8c153aa81fd90395bb749534c6322865c6865a7c8c76c910d8f67265447c0de415160d6387b84e7705713a217ff948be50d67588459b70c480fc515f380350d3
|
data/README.md
CHANGED
|
@@ -42,6 +42,35 @@ twitter_username: [Your Twitter handle]
|
|
|
42
42
|
github_username: [Your GitHub handle]
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
### Photography shoots
|
|
46
|
+
|
|
47
|
+
The home layout can mix posts with a `shoots` collection in reverse chronological order. Configure the collection and Cloudflare Images delivery variants in your site's `_config.yml`:
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
collections:
|
|
51
|
+
shoots:
|
|
52
|
+
output: true
|
|
53
|
+
permalink: /portfolio/:name
|
|
54
|
+
|
|
55
|
+
cf_images_account_hash: [Your Cloudflare Images account hash]
|
|
56
|
+
cf_images_variants:
|
|
57
|
+
thumb: thumb
|
|
58
|
+
xl: xl
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Each document in `_shoots` should use the `shoot` layout and provide a title, date, and list of Cloudflare image IDs:
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
---
|
|
65
|
+
layout: shoot
|
|
66
|
+
title: Marseille
|
|
67
|
+
date: 2025-11-25
|
|
68
|
+
images:
|
|
69
|
+
- image-id-one
|
|
70
|
+
- image-id-two
|
|
71
|
+
---
|
|
72
|
+
```
|
|
73
|
+
|
|
45
74
|
## Contributing
|
|
46
75
|
|
|
47
76
|
Bug reports and pull requests are welcome. 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/_layouts/home.html
CHANGED
|
@@ -29,14 +29,63 @@ layout: default
|
|
|
29
29
|
</div>
|
|
30
30
|
</div>
|
|
31
31
|
</header>
|
|
32
|
+
|
|
33
|
+
{% assign entries = site.posts %}
|
|
34
|
+
{% if site.shoots %}
|
|
35
|
+
{% assign entries = entries | concat: site.shoots %}
|
|
36
|
+
{% endif %}
|
|
37
|
+
{% assign entries = entries | sort: "date" | reverse %}
|
|
38
|
+
|
|
32
39
|
<main>
|
|
33
|
-
{% for
|
|
34
|
-
|
|
35
|
-
<
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
{% for entry in entries %}
|
|
41
|
+
{% if entry.collection == "shoots" %}
|
|
42
|
+
<a class="post shoot-block" href="{{ entry.url | relative_url }}">
|
|
43
|
+
<span class="accent fixed-date">{{ entry.date | date: "%b %-d, %Y" }}</span>
|
|
44
|
+
<div class="post-details shoot-details">
|
|
45
|
+
<h2>{{ entry.title | escape }}</h2>
|
|
46
|
+
{% assign total = entry.images | size %}
|
|
47
|
+
{% if total > 3 %}
|
|
48
|
+
{% assign preview_count = 4 %}
|
|
49
|
+
{% else %}
|
|
50
|
+
{% assign preview_count = total %}
|
|
51
|
+
{% endif %}
|
|
52
|
+
|
|
53
|
+
<div class="shoot-thumbs shoot-thumbs-{{ preview_count }}">
|
|
54
|
+
{% for id in entry.images limit:3 %}
|
|
55
|
+
{% assign base = "https://imagedelivery.net/" | append: site.cf_images_account_hash | append: "/" | append: id | append: "/" %}
|
|
56
|
+
<img
|
|
57
|
+
class="shoot-thumb"
|
|
58
|
+
src="{{ base }}{{ site.cf_images_variants.thumb }}"
|
|
59
|
+
loading="lazy"
|
|
60
|
+
decoding="async"
|
|
61
|
+
alt="Photo from {{ entry.title | escape }}"
|
|
62
|
+
>
|
|
63
|
+
{% endfor %}
|
|
64
|
+
|
|
65
|
+
{% if total > 3 %}
|
|
66
|
+
{% assign fourth_id = entry.images[3] %}
|
|
67
|
+
{% assign fourth_base = "https://imagedelivery.net/" | append: site.cf_images_account_hash | append: "/" | append: fourth_id | append: "/" %}
|
|
68
|
+
<div class="shoot-thumb shoot-more-thumb">
|
|
69
|
+
<img
|
|
70
|
+
src="{{ fourth_base }}{{ site.cf_images_variants.thumb }}"
|
|
71
|
+
alt=""
|
|
72
|
+
loading="lazy"
|
|
73
|
+
decoding="async"
|
|
74
|
+
>
|
|
75
|
+
<span class="shoot-more-overlay">+{{ total | minus: 3 }}</span>
|
|
76
|
+
</div>
|
|
77
|
+
{% endif %}
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
</a>
|
|
81
|
+
{% else %}
|
|
82
|
+
<a class="post" href="{{ entry.url | relative_url }}">
|
|
83
|
+
<span class="accent fixed-date">{{ entry.date | date: "%b %-d, %Y" }}</span>
|
|
84
|
+
<div class="post-details">
|
|
85
|
+
<h2>{{ entry.title | escape }}</h2>
|
|
86
|
+
<p class="excerpt">{{ entry.excerpt | strip_html | normalize_whitespace | truncate: 160 | escape }}</p>
|
|
87
|
+
</div>
|
|
88
|
+
</a>
|
|
89
|
+
{% endif %}
|
|
41
90
|
{% endfor %}
|
|
42
91
|
</main>
|
data/_layouts/shoot.html
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<header>
|
|
6
|
+
<div class="logo">
|
|
7
|
+
{% include logo.svg width=46 height=61 %}
|
|
8
|
+
<div class="under under-small">
|
|
9
|
+
<h2 itemprop="name headline"><em>{{ page.title | escape }}</em></h2>
|
|
10
|
+
<p class="date"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time></p>
|
|
11
|
+
<a class="back accent" href="{{ "/" | relative_url }}">~ back home</a>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<hr />
|
|
15
|
+
</header>
|
|
16
|
+
|
|
17
|
+
<main class="portfolio-day">
|
|
18
|
+
{% assign thumb = site.cf_images_variants.thumb %}
|
|
19
|
+
{% assign xl = site.cf_images_variants.xl %}
|
|
20
|
+
|
|
21
|
+
<div class="grid">
|
|
22
|
+
{% for id in page.images %}
|
|
23
|
+
{% assign base = "https://imagedelivery.net/" | append: site.cf_images_account_hash | append: "/" | append: id | append: "/" %}
|
|
24
|
+
<a class="tile" href="{{ base }}{{ xl }}" target="_blank" rel="noopener">
|
|
25
|
+
<img
|
|
26
|
+
src="{{ base }}{{ thumb }}"
|
|
27
|
+
loading="lazy"
|
|
28
|
+
decoding="async"
|
|
29
|
+
alt="Photo from {{ page.title | escape }}"
|
|
30
|
+
>
|
|
31
|
+
</a>
|
|
32
|
+
{% endfor %}
|
|
33
|
+
</div>
|
|
34
|
+
</main>
|
data/_sass/yefeme.scss
CHANGED
|
@@ -135,6 +135,102 @@ main {
|
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
:root {
|
|
139
|
+
--shoot-thumb-height: 132px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.shoot-thumbs {
|
|
143
|
+
align-items: center;
|
|
144
|
+
display: grid;
|
|
145
|
+
gap: 6px;
|
|
146
|
+
margin-top: 4px;
|
|
147
|
+
width: 100%;
|
|
148
|
+
|
|
149
|
+
&.shoot-thumbs-1 {
|
|
150
|
+
grid-template-columns: minmax(0, 1fr);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
&.shoot-thumbs-2 {
|
|
154
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
&.shoot-thumbs-3 {
|
|
158
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
&.shoot-thumbs-4 {
|
|
162
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
> img.shoot-thumb {
|
|
166
|
+
background: #eee;
|
|
167
|
+
border-radius: 4px;
|
|
168
|
+
height: var(--shoot-thumb-height);
|
|
169
|
+
object-fit: cover;
|
|
170
|
+
width: 100%;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
@media only screen and (max-width: 700px) {
|
|
174
|
+
display: flex;
|
|
175
|
+
flex-wrap: nowrap;
|
|
176
|
+
margin: 0 -16px;
|
|
177
|
+
overflow-x: auto;
|
|
178
|
+
padding: 0 16px;
|
|
179
|
+
scrollbar-width: none;
|
|
180
|
+
width: 100vw;
|
|
181
|
+
-webkit-overflow-scrolling: touch;
|
|
182
|
+
|
|
183
|
+
> img.shoot-thumb {
|
|
184
|
+
flex: 0 0 auto;
|
|
185
|
+
object-fit: initial;
|
|
186
|
+
width: auto;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
&::-webkit-scrollbar {
|
|
190
|
+
display: none;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.shoot-more-thumb {
|
|
196
|
+
border-radius: 4px;
|
|
197
|
+
height: var(--shoot-thumb-height);
|
|
198
|
+
min-width: 0;
|
|
199
|
+
overflow: hidden;
|
|
200
|
+
position: relative;
|
|
201
|
+
width: 100%;
|
|
202
|
+
|
|
203
|
+
img {
|
|
204
|
+
filter: blur(2px) brightness(0.5);
|
|
205
|
+
height: 100%;
|
|
206
|
+
object-fit: cover;
|
|
207
|
+
width: 100%;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
@media only screen and (max-width: 700px) {
|
|
211
|
+
flex: 0 0 var(--shoot-thumb-height);
|
|
212
|
+
min-width: var(--shoot-thumb-height);
|
|
213
|
+
width: var(--shoot-thumb-height);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.shoot-more-overlay {
|
|
218
|
+
align-items: center;
|
|
219
|
+
color: white;
|
|
220
|
+
display: flex;
|
|
221
|
+
font-size: 1rem;
|
|
222
|
+
font-weight: 600;
|
|
223
|
+
inset: 0;
|
|
224
|
+
justify-content: center;
|
|
225
|
+
position: absolute;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
@media only screen and (max-width: 700px) {
|
|
229
|
+
:root {
|
|
230
|
+
--shoot-thumb-height: 180px;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
138
234
|
.excerpt {
|
|
139
235
|
font-size: 14px;
|
|
140
236
|
line-height: 1.73;
|
|
@@ -253,6 +349,36 @@ article {
|
|
|
253
349
|
}
|
|
254
350
|
}
|
|
255
351
|
|
|
352
|
+
.portfolio-day {
|
|
353
|
+
.grid {
|
|
354
|
+
column-count: 3;
|
|
355
|
+
column-gap: 12px;
|
|
356
|
+
|
|
357
|
+
@media only screen and (max-width: 900px) {
|
|
358
|
+
column-count: 2;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
@media only screen and (max-width: 600px) {
|
|
362
|
+
column-count: 1;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.tile {
|
|
367
|
+
background: #f6f6f6;
|
|
368
|
+
border-radius: 8px;
|
|
369
|
+
break-inside: avoid;
|
|
370
|
+
display: block;
|
|
371
|
+
margin-bottom: 12px;
|
|
372
|
+
overflow: hidden;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
img {
|
|
376
|
+
display: block;
|
|
377
|
+
height: auto;
|
|
378
|
+
width: 100%;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
256
382
|
.social {
|
|
257
383
|
display: flex;
|
|
258
384
|
gap: 16px;
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: yefeme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yefim Vedernikoff
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-08-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -24,7 +24,7 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '4.1'
|
|
27
|
-
description:
|
|
27
|
+
description:
|
|
28
28
|
email:
|
|
29
29
|
- yefim323@gmail.com
|
|
30
30
|
executables: []
|
|
@@ -41,6 +41,7 @@ files:
|
|
|
41
41
|
- _layouts/default.html
|
|
42
42
|
- _layouts/home.html
|
|
43
43
|
- _layouts/post.html
|
|
44
|
+
- _layouts/shoot.html
|
|
44
45
|
- _sass/highlight.scss
|
|
45
46
|
- _sass/yefeme.scss
|
|
46
47
|
- assets/main.scss
|
|
@@ -49,7 +50,7 @@ homepage: https://github.com/yefim/yefeme
|
|
|
49
50
|
licenses:
|
|
50
51
|
- MIT
|
|
51
52
|
metadata: {}
|
|
52
|
-
post_install_message:
|
|
53
|
+
post_install_message:
|
|
53
54
|
rdoc_options: []
|
|
54
55
|
require_paths:
|
|
55
56
|
- lib
|
|
@@ -64,8 +65,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
64
65
|
- !ruby/object:Gem::Version
|
|
65
66
|
version: '0'
|
|
66
67
|
requirements: []
|
|
67
|
-
rubygems_version: 3.
|
|
68
|
-
signing_key:
|
|
68
|
+
rubygems_version: 3.4.19
|
|
69
|
+
signing_key:
|
|
69
70
|
specification_version: 4
|
|
70
71
|
summary: Yefim's custom jekyll theme
|
|
71
72
|
test_files: []
|