jekyll-theme-isabelline 0.1.21 → 0.1.22

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: c7fbcb35eae9031bcf4277856f409768a004b04d021da36ca1c0bece35b120e7
4
- data.tar.gz: 1fa0cad1f31dc913b4926eac4ebb065bffd9d360c2c130106ad9e36b7b20e0da
3
+ metadata.gz: 5d30a71d9b0bcb312e53beaa8a903a41e7c7288dba58024d8b6ade9894487906
4
+ data.tar.gz: 4927fe5afa88bfd075044c9f843f9da5248cbe381f40de152bd4e645d9d5996f
5
5
  SHA512:
6
- metadata.gz: c818a615a1e17472a0dbcf7ac65fc698dc92ce86cafd1b5b5ed409a838493c9003850f4bff27f71ca65d8c5e9f7e6862b7277d775f5e4c42c66fb9372886fc03
7
- data.tar.gz: 85c8bb13c14aba6acf0dc79a808eac0a2bbe9aa8e10bd6a9fc48a9410dbe4bb7947f48b33b28cbf2b1eff54aee358ee130bca1ebb58667654ad6c65ddbcf9e13
6
+ metadata.gz: 033eb7cbaedbf2b8546954fb9d0fc4b3437754bac11bdcabe8e24e2e2909c9f969478d4a4fc03ecd91d0301b57481ff34172120220d381ca475718f8df06b929
7
+ data.tar.gz: 4eec0a112f41ca095e4abcebc09c50acb156ced9c45bb0a4ee373b8cc83e5b016ff36e9808594106e61dca91efaf5d42b5e4af1ff4a15539b6fa5f1e8ff7a0ec
@@ -28,4 +28,5 @@
28
28
 
29
29
  <div id="snackbar">Loading...</div>
30
30
  <!-- <script src='/assets/js/slides.js'></script> -->
31
- <script src='{{ "/assets/js/clipboard.js" | relative_url }}'></script>
31
+ <script src='{{ "/assets/js/clipboard.js" | relative_url }}'></script>
32
+ <script src='{{ "/assets/js/gallery.js" | relative_url }}'></script>
@@ -1,8 +1,29 @@
1
- {% assign images = (include.images | split: "|") %}
2
- {% assign thumbnails = (include.thumbnails | split: "|") %}
1
+ {% assign gallery_name = include.name | default: "gallery" %}
3
2
 
4
- <div class="gallery">
5
- {% for image in images %}
6
- <a href="{{ include.dir }}/{{ image }}"><img src="{{ include.dir }}/{{ image }}" /></a>
7
- {% endfor %}
3
+ {% assign gallery_prefix = page.id | prepend: "/assets" | append: "/" | append: gallery_name %}
4
+
5
+ {% assign sorted_static_files = site.static_files | map: "path" | sort %}
6
+
7
+ {% assign image_extensions = "jpg,jpeg,png,gif" | split: "," %}
8
+
9
+ <div class="gallery" id="gallery-{{ gallery_name }}">
10
+ {% assign image_index = 0 %}
11
+ {% assign gallery_nav = "" %}
12
+ <div class="images">
13
+ {% for image_path in sorted_static_files %}
14
+ {% assign image_ext = image_path | split: "." | last %}
15
+ {% if image_extensions contains image_ext %}
16
+ {% if image_path contains gallery_prefix %}
17
+ {% assign image_index = image_index | plus: 1 %}
18
+ <img id="{{ gallery_name }}-{{ image_index }}" src="{{ site.baseurl }}{{ image_path }}" />
19
+ {% endif %}
20
+ {% endif %}
21
+ {% endfor %}
22
+ </div>
23
+ <nav>
24
+ <div class="play">
25
+ <input type="checkbox" checked="false" id="{{ gallery_name }}-play" />
26
+ <label for="{{ gallery_name }}-play"></label>
27
+ </div>
28
+ </nav>
8
29
  </div>
@@ -159,15 +159,6 @@ header {
159
159
  }
160
160
  }
161
161
 
162
- // div.column {
163
- // width: 30%;
164
- // float: left;
165
- // padding: .5rem;
166
- // margin: .5rem;
167
- // border: 1px solid #ccc;
168
- // }
169
-
170
- // link styling
171
162
  a {
172
163
  color: darken($link-color,15%);
173
164
  &:hover, &:active, &:visited {
@@ -204,13 +195,13 @@ main {
204
195
  }
205
196
 
206
197
  img {
207
- border-radius: 4px;
198
+ border-radius: 6px;
208
199
  // width: 100%;
209
200
  }
210
201
  }
211
202
 
212
203
  p img {
213
- border-radius: 4px;
204
+ border-radius: 6px;
214
205
  width: 100%;
215
206
  }
216
207
 
@@ -241,11 +232,75 @@ main {
241
232
  margin-bottom: 1em;
242
233
 
243
234
  img {
244
- // width: 45%;
235
+ width: 100%;
245
236
 
246
- height: 200px;
237
+ // height: 200px;
247
238
  float: left;
248
239
  }
240
+
241
+ div.images {
242
+ img {
243
+ cursor: pointer;
244
+ border-radius: 6px;
245
+ display: none;
246
+ transition: all 300ms ease;
247
+ will-change: display;
248
+ }
249
+
250
+ img:first-child {
251
+ display: block;
252
+ }
253
+ }
254
+
255
+
256
+ nav {
257
+ width: 100%;
258
+ text-align: center;
259
+ i {
260
+ cursor: pointer;
261
+ margin: .5rem;
262
+ display: inline-block;
263
+ width: 1rem;
264
+ height: 1rem;
265
+ border-radius: .5rem;
266
+ transition: all 300ms ease;
267
+
268
+ background-color: hsl($hue,10,80);
269
+ &.selected {
270
+ background-color: hsl($hue,50,40);
271
+ }
272
+ }
273
+
274
+ .play {
275
+ float: left;
276
+
277
+ label {
278
+ margin: .5rem;
279
+ display: inline-block;
280
+ box-sizing: border-box;
281
+ width: 0;
282
+ height: 1rem;
283
+ cursor: pointer;
284
+ border-color: transparent transparent transparent hsl($hue,50,40); // same color as i.selected
285
+
286
+ transition: 300ms all ease;
287
+ will-change: border-width;
288
+
289
+ // paused state
290
+ border-style: double;
291
+ border-width: 0 0 0 1rem;
292
+ }
293
+ input[type='checkbox'] {
294
+ display: none;
295
+ &:checked + label {
296
+ border-style: solid;
297
+ border-width: .5rem 0 .5rem 1rem;
298
+ }
299
+ }
300
+ }
301
+ }
302
+
303
+
249
304
  }
250
305
 
251
306
  div.gallery + p {
Binary file
@@ -0,0 +1,94 @@
1
+ (function () {
2
+ // "hydrate" div.gallery with play/pause and nav behaviors
3
+ var process_gallery = function (g) {
4
+ var
5
+ // milliseconds to wait before switch to next slide
6
+ NEXT_SLIDE_TIMEOUT = 5000;
7
+
8
+ var
9
+ // images in this gallery
10
+ images = g.querySelectorAll('.images img'),
11
+
12
+ // container for nav buttons
13
+ gallery_nav = g.querySelector('nav'),
14
+
15
+ // clickable buttons, one per image
16
+ // computed below
17
+ navs = [],
18
+
19
+ // index of the currently selected image
20
+ selected_index = 0,
21
+
22
+ // play control consists of a label and a checkbox
23
+ // defer computing because nav innerHTML gets clobbered
24
+ play_checkbox,
25
+
26
+ // handle to setInterval
27
+ play_interval;
28
+
29
+ // show image at index
30
+ // update nav controls accordingly
31
+ var select_image = function (index) {
32
+ // var image = images[index];
33
+ if (selected_index !== index) {
34
+ images[selected_index].style.display = 'none';
35
+ navs[selected_index].classList.remove('selected');
36
+ images[index].style.display = 'block';
37
+ navs[index].classList.add('selected');
38
+ selected_index = index;
39
+ }
40
+ }
41
+
42
+ // show next image
43
+ var next_image = function () {
44
+ if (selected_index >= images.length-1) {
45
+ select_image(0);
46
+ } else {
47
+ select_image(selected_index+1);
48
+ }
49
+ }
50
+
51
+ // handler for nav buttons
52
+ // selects an image corresponding to the clicked nav button
53
+ var nav_to_image = function () {
54
+ select_image(Array.from(navs).indexOf(this));
55
+ }
56
+
57
+ // play/pause slideshow
58
+ var toggle_play = function () {
59
+ if (play_checkbox.checked===true) {
60
+ clearInterval(play_interval);
61
+ } else {
62
+ play_interval = setInterval(next_image, NEXT_SLIDE_TIMEOUT);
63
+ }
64
+ }
65
+
66
+ var navHtml = '';
67
+
68
+ for (var i=0; i<images.length; ++i) {
69
+ var image = images[i]
70
+ image.addEventListener('click', next_image)
71
+ navHtml += '<i class="' + (i===0? 'selected' : '') + '" data-target="' + image.id + '"></i>'
72
+ }
73
+
74
+ gallery_nav.innerHTML += navHtml;
75
+
76
+ navs = gallery_nav.querySelectorAll('i');
77
+
78
+ for (var i=0; i<navs.length; ++i) {
79
+ var nav = navs[i];
80
+ nav.addEventListener('click', nav_to_image)
81
+ }
82
+
83
+ play_checkbox = g.querySelector('.play input[type=checkbox]');
84
+
85
+ play_checkbox.addEventListener('change', toggle_play);
86
+ }
87
+
88
+ var galleries = document.getElementsByClassName('gallery');
89
+
90
+ for (var i=0; i<galleries.length; ++i) {
91
+ var g = galleries[i];
92
+ process_gallery(g);
93
+ }
94
+ })();
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-isabelline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.21
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rouslan Zenetl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-05 00:00:00.000000000 Z
11
+ date: 2020-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -79,11 +79,15 @@ files:
79
79
  - _sass/_syntax.scss
80
80
  - assets/.DS_Store
81
81
  - assets/blog/example/Quarter_Horse_Buckskin.jpg
82
+ - assets/blog/example/gallery/1/lanius_isabellinus1.jpg
82
83
  - assets/blog/example/gallery/Lanius_isabellinus1.jpg
83
84
  - assets/blog/example/gallery/dusan-smetana-ah7KHxYg6Ow-unsplash.jpg
84
85
  - assets/blog/example/gallery/jay-ruzesky-h13Y8vyIXNU-unsplash.jpg
85
86
  - assets/blog/example/gallery/maurits-bausenhart-OkYjLpB2gzA-unsplash.jpg
86
87
  - assets/blog/example/gallery/sneaky-elbow-h00rqvO5A-M-unsplash.jpg
88
+ - assets/blog/example/gallery2/Quarter_Horse_Buckskin.jpg
89
+ - assets/blog/example/gallery2/dusan-smetana-ah7KHxYg6Ow-unsplash.jpg
90
+ - assets/blog/example/gallery2/jay-ruzesky-h13Y8vyIXNU-unsplash.jpg
87
91
  - assets/blog/getting-started/undraw_browsing_online_sr8c.svg
88
92
  - assets/css/style.scss
89
93
  - assets/favicon/README.md
@@ -113,6 +117,7 @@ files:
113
117
  - assets/fonts/Noto Serif/ga6Iaw1J5X9T9RW6j9bNfFoWaDq8fMVxMw.woff2
114
118
  - assets/fonts/Noto Serif/ga6Iaw1J5X9T9RW6j9bNfFsWaDq8fMVxMw.woff2
115
119
  - assets/js/clipboard.js
120
+ - assets/js/gallery.js
116
121
  - assets/js/slides.js
117
122
  - assets/js/snackbar.js
118
123
  - build/Dockerfile
@@ -139,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
144
  - !ruby/object:Gem::Version
140
145
  version: '0'
141
146
  requirements: []
142
- rubygems_version: 3.0.6
147
+ rubygems_version: 3.1.4
143
148
  signing_key:
144
149
  specification_version: 4
145
150
  summary: Simple clean mobile-friendly theme for long form note taking. Works for blogging