jekyll-theme-conference 3.1.1 → 3.2.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 +4 -2
- data/_includes/js/conference-live.js +41 -10
- data/_includes/partials/checks.html +1 -1
- data/_includes/partials/get_day_time.html +4 -2
- data/_includes/partials/get_talk_time.html +18 -3
- data/_includes/partials/get_talk_timestamp.html +9 -4
- data/_includes/partials/modal_live.html +1 -1
- data/_layouts/data.html +21 -9
- data/_layouts/page.html +4 -0
- data/_layouts/program.html +14 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4f5a6058ed0096854e4b7d4714298ea9bc253a394b8170d3ae2d280bec3913e
|
4
|
+
data.tar.gz: 5ed07180716fc59636f3b5a9634fd7d430166796285566751a927ce9f15be913
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08f8a0a6c90e0c23ee563b18200cbbd902385d388373c5b77ad05c6fda440914825b685771907947f7f2165378e2edd13ef7421d75133bf3e6d38f3ea6c75d8b'
|
7
|
+
data.tar.gz: 7095bab0d1cd826c3f1921d203ff67ae51f69c0d218196a0e45530cc227d2c3bab3e3b10529ffa27e840980fef9f9e6ed7cc5c6c3aa111a43ba2d7363bd54ddc
|
data/README.md
CHANGED
@@ -165,7 +165,7 @@ There exists a Python file in this repository, `_tools/create_entries.py`, which
|
|
165
165
|
|
166
166
|
In case you do not want to install the entire Ruby/Jekyll toolchain on your machine you can make use of [GitHub Actions](https://github.com/features/actions), Github's continuous integration platform. This repository contains multiple example Github Action configuration files in the `_tools/` folder:
|
167
167
|
|
168
|
-
- `build.yml`: automatically builds and minimizes the website upon adding a new tag starting with a `v` (e.g. `v2020.01.01`). It then attaches the generated website as an archive to a release for easy downloading.
|
168
|
+
- `build.yml`: automatically builds and minimizes the website upon adding a new tag starting with a `v` (e.g. `v2020.01.01`). It then attaches the generated website as an archive to a release for easy downloading. Requires `purgecss.config.js` to be copied to the project's root too.
|
169
169
|
- `test.yml`: automatically tries to build the website upon a new pull request. It can thus be used as status check before merging.
|
170
170
|
- `schedule.yml`: automatically generates the schedule and content files when a new pull request contains a `schedule.json` file (see the _Automatic Import_subsection above). Thus, it allows quick updates of the site's content from [pretalx.com](https://pretalx.com/p/about/) exports.
|
171
171
|
|
@@ -514,7 +514,7 @@ The order of the rooms in the list defines the order of the rooms as shown in th
|
|
514
514
|
Each talk consists of
|
515
515
|
|
516
516
|
- a `name` (must correspond to one of the talk identifier),
|
517
|
-
- a starting time `time_start` given as `H:M` ([`strftime`](http://www.strfti.me) formated), and
|
517
|
+
- a starting time `time_start` given as `H:M` ([`strftime`](http://www.strfti.me) formated) or `H:M +∆` whereby ∆ is the day offset in relation to the date given for the given day, and
|
518
518
|
- an end time `time_end`.
|
519
519
|
|
520
520
|
The list of talks should (manually) be ordered by time, i.e. the first occurring talk should be listed first.
|
@@ -563,6 +563,8 @@ Each speaker is represented by a file in the `_speakers/` directory. It must beg
|
|
563
563
|
- optionally a list of `links` (see the _Links_ subsection below for the available properties per link; links with icons are treated separately), and
|
564
564
|
- optionally `hide: true` if the speaker's page should not be linked to.
|
565
565
|
|
566
|
+
If the speaker's name consists only out of one word, populate the `last_name` property and leave the `first_name` property empty. The last name is generally used for sorting the speakers.
|
567
|
+
|
566
568
|
### Rooms
|
567
569
|
|
568
570
|
Each room is represented by a file in the `_rooms/` directory. It must begin with valid [YAML Front Matter](https://jekyllrb.com/docs/frontmatter/) containing
|
@@ -363,12 +363,21 @@ window.conference.live = (function() {
|
|
363
363
|
}
|
364
364
|
};
|
365
365
|
|
366
|
+
let getTalks = function (roomName) {
|
367
|
+
if (roomName in data.talks) {
|
368
|
+
return data.talks[roomName];
|
369
|
+
}
|
370
|
+
else {
|
371
|
+
return false;
|
372
|
+
}
|
373
|
+
};
|
374
|
+
|
366
375
|
let getNextTalk = function (roomName) {
|
367
376
|
// Get talk object for next talk in given room
|
368
377
|
let timeNow = time();
|
369
|
-
let talksHere =
|
378
|
+
let talksHere = getTalks(roomName);
|
370
379
|
|
371
|
-
if (
|
380
|
+
if (talksHere) {
|
372
381
|
if (timeNow < talksHere[talksHere.length-1].end) {
|
373
382
|
for (var i = 0; i < talksHere.length; i++) {
|
374
383
|
if (timeNow < talksHere[i].end) {
|
@@ -383,9 +392,9 @@ window.conference.live = (function() {
|
|
383
392
|
let getNextPause = function (roomName) {
|
384
393
|
// Get time object for next pause in given room
|
385
394
|
let timeNow = time();
|
386
|
-
let talksHere =
|
395
|
+
let talksHere = getTalks(roomName);
|
387
396
|
|
388
|
-
if (
|
397
|
+
if (talksHere) {
|
389
398
|
if (timeNow < talksHere[talksHere.length-1].end) {
|
390
399
|
for (var i = 1; i < talksHere.length; i++) {
|
391
400
|
if (timeNow < talksHere[i].start && streamPause*60 <= talksHere[i].start - talksHere[i-1].end) {
|
@@ -420,9 +429,29 @@ window.conference.live = (function() {
|
|
420
429
|
// Show stream with start/pause/end message (for given room) and keep updated
|
421
430
|
let timeNow = time();
|
422
431
|
|
423
|
-
let talksHere =
|
424
|
-
let roomStart
|
425
|
-
|
432
|
+
let talksHere = getTalks(roomName);
|
433
|
+
let roomStart, roomEnd;
|
434
|
+
if (talksHere) {
|
435
|
+
roomStart = talksHere[0].start;
|
436
|
+
roomEnd = talksHere[talksHere.length-1].end;
|
437
|
+
}
|
438
|
+
else {
|
439
|
+
// If no program for given room, take overall first and last talk
|
440
|
+
roomStart = 0;
|
441
|
+
roomEnd = 0;
|
442
|
+
for (let roomNameTalk in data.talks) {
|
443
|
+
talksHere = getTalks(roomNameTalk);
|
444
|
+
let crntRoomStart = talksHere[0].start;
|
445
|
+
let crntRoomEnd = talksHere[talksHere.length-1].end;
|
446
|
+
|
447
|
+
if (roomStart == 0 || roomStart > crntRoomStart) {
|
448
|
+
roomStart = crntRoomStart;
|
449
|
+
}
|
450
|
+
if (roomEnd == 0 || roomEnd < crntRoomEnd) {
|
451
|
+
roomEnd = crntRoomEnd;
|
452
|
+
}
|
453
|
+
}
|
454
|
+
}
|
426
455
|
|
427
456
|
if (typeof streamVideoTimer !== "undefined") {
|
428
457
|
clearInterval(streamVideoTimer);
|
@@ -485,7 +514,7 @@ window.conference.live = (function() {
|
|
485
514
|
clearInterval(streamInfoTimer);
|
486
515
|
}
|
487
516
|
|
488
|
-
if (timeNow >= talkNext.start - streamPause*60) {
|
517
|
+
if (talkNext && timeNow >= talkNext.start - streamPause*60) {
|
489
518
|
document.getElementById('stream-info').dataset.time = talkNext.start;
|
490
519
|
document.getElementById('stream-info-time').dataset.time = talkNext.start;
|
491
520
|
updateLive();
|
@@ -524,8 +553,10 @@ window.conference.live = (function() {
|
|
524
553
|
streamInfoTimer = setTimeout(setStreamInfo, delayStart(talkNext.start - streamPause*60) * 1000, roomName);
|
525
554
|
}
|
526
555
|
else if (demo) {
|
527
|
-
let talksHere =
|
528
|
-
|
556
|
+
let talksHere = getTalks(roomName);
|
557
|
+
if (talksHere) {
|
558
|
+
streamInfoTimer = setTimeout(setStreamInfo, delayStart(talksHere[0].start - streamPrepend*60) * 1000, roomName);
|
559
|
+
}
|
529
560
|
}
|
530
561
|
}
|
531
562
|
}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
{%- unless site.conference.lang == "en" -%}
|
5
5
|
{%- assign errors = errors | push : "The internationalization file containing different strings for this template seems to be missing. Have you copied the `_data/lang.yml` file from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/master/_data/lang.yml) to you local website folder?" -%}
|
6
6
|
{%- endunless -%}
|
7
|
-
{%- elsif site.data.lang.version
|
7
|
+
{%- elsif site.data.lang.version != 6 -%}
|
8
8
|
{%- assign errors = errors | push : "The internationalization file in `_data/lang.yml` seems to be outdated and does not correspond to the current version of the theme. Grab the current version from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/master/_data/lang.yml)." -%}
|
9
9
|
{%- endunless -%}
|
10
10
|
{%- unless site.conference.lang == "en" or site.conference.lang == "de" or site.conference.lang == "fr" or site.conference.lang == "pt" -%}
|
@@ -2,8 +2,9 @@
|
|
2
2
|
{%- assign t = r.talks | first -%}
|
3
3
|
{%- include partials/get_talk_time.html -%}
|
4
4
|
|
5
|
-
{%- if forloop.index == 1 or talk_start_hour < day_start_hour or talk_start_hour == day_start_hour and talk_start_min < day_start_min-%}
|
5
|
+
{%- if forloop.index == 1 or talk_start_day < day_start_day or talk_start_day == day_start_day and talk_start_hour < day_start_hour or talk_start_hour == day_start_hour and talk_start_min < day_start_min-%}
|
6
6
|
{%- assign day_start_talk = t -%}
|
7
|
+
{%- assign day_start_day = talk_start_day -%}
|
7
8
|
{%- assign day_start_hour = talk_start_hour -%}
|
8
9
|
{%- assign day_start_min = talk_start_min -%}
|
9
10
|
{%- endif -%}
|
@@ -11,8 +12,9 @@
|
|
11
12
|
{%- assign t = r.talks | last -%}
|
12
13
|
{%- include partials/get_talk_time.html -%}
|
13
14
|
|
14
|
-
{%- if forloop.index == 1 or talk_end_hour > day_end_hour or talk_end_hour == day_end_hour and talk_end_min > day_end_min-%}
|
15
|
+
{%- if forloop.index == 1 or talk_end_day > day_end_day or talk_end_day == day_end_day and talk_end_hour > day_end_hour or talk_end_hour == day_end_hour and talk_end_min > day_end_min-%}
|
15
16
|
{%- assign day_end_talk = t -%}
|
17
|
+
{%- assign day_end_day = talk_end_day -%}
|
16
18
|
{%- assign day_end_hour = talk_end_hour -%}
|
17
19
|
{%- assign day_end_min = talk_end_min -%}
|
18
20
|
{%- endif -%}
|
@@ -1,9 +1,24 @@
|
|
1
1
|
{%- assign talk_start = t.time_start -%}
|
2
2
|
{%- assign talk_end = t.time_end -%}
|
3
3
|
|
4
|
-
{%-
|
4
|
+
{%- if talk_start contains ' +' -%}
|
5
|
+
{%- assign talk_start_day = talk_start | split: ' +' | last | plus: 0 -%}
|
6
|
+
{%- assign talk_start = talk_start | split: ' +' | first -%}
|
7
|
+
{%- else -%}
|
8
|
+
{%- assign talk_start_day = 0 -%}
|
9
|
+
{%- endif -%}
|
10
|
+
{%- if talk_end contains ' +' -%}
|
11
|
+
{%- assign talk_end_day = talk_end | split: ' +' | last | plus: 0 -%}
|
12
|
+
{%- assign talk_end = talk_end | split: ' +' | first -%}
|
13
|
+
{%- else -%}
|
14
|
+
{%- assign talk_end_day = 0 -%}
|
15
|
+
{%- endif -%}
|
16
|
+
|
17
|
+
{%- assign talk_start_hour = talk_start | split: ':' | first | plus: 0 -%}
|
5
18
|
{%- assign talk_start_min = talk_start | split: ':' | last | divided_by: site.conference.program.time_steps | floor | times: site.conference.program.time_steps -%}
|
6
|
-
{%- assign talk_end_hour = talk_end | split: ':' | first -%}
|
19
|
+
{%- assign talk_end_hour = talk_end | split: ':' | first | plus: 0 -%}
|
7
20
|
{%- assign talk_end_min = talk_end | split: ':' | last | divided_by: site.conference.program.time_steps | ceil | times: site.conference.program.time_steps -%}
|
8
21
|
|
9
|
-
{%- assign
|
22
|
+
{%- assign talk_start_hour_24h = talk_start_day | times: 24 | plus: talk_start_hour -%}
|
23
|
+
{%- assign talk_end_hour_24h = talk_end_day | times: 24 | plus: talk_end_hour -%}
|
24
|
+
{%- assign talk_duration_min = talk_end_hour_24h | minus: talk_start_hour_24h | times: 60 | minus: talk_start_min | plus: talk_end_min -%}
|
@@ -1,4 +1,9 @@
|
|
1
|
-
{%-
|
2
|
-
|
3
|
-
{%- assign
|
4
|
-
{%- assign
|
1
|
+
{%- include partials/get_talk_time.html -%}
|
2
|
+
|
3
|
+
{%- assign datetime_start = d.date | append: " " | append: time_start -%}
|
4
|
+
{%- assign add_days_start = talk_start_day | times: 24 | times: 60 | times: 60 -%}
|
5
|
+
{%- assign timestamp_start = datetime_start | date: "%s" | plus: add_days_start | date: "%s" -%}
|
6
|
+
|
7
|
+
{%- assign datetime_end = d.date | append: " " | append: time_end -%}
|
8
|
+
{%- assign add_days_end = talk_end_day | times: 24 | times: 60 | times: 60 -%}
|
9
|
+
{%- assign timestamp_end = datetime_end | date: "%s" | plus: add_days_end | date: "%s" -%}
|
@@ -12,7 +12,7 @@
|
|
12
12
|
</div>
|
13
13
|
|
14
14
|
<div class="modal-body embed-responsive embed-responsive-16by9">
|
15
|
-
<iframe class="embed-responsive-item" src="" allowfullscreen></iframe>
|
15
|
+
<iframe class="embed-responsive-item" src="" frameborder="none" allowfullscreen="allowfullscreen" seamless="seamless" scrolling="no"></iframe>
|
16
16
|
<div id="stream-placeholder" class="embed-responsive-item d-none justify-content-center align-items-center">
|
17
17
|
<div></div>
|
18
18
|
</div>
|
data/_layouts/data.html
CHANGED
@@ -12,13 +12,19 @@
|
|
12
12
|
],
|
13
13
|
|
14
14
|
"rooms": {
|
15
|
+
{%- assign first_room = true -%}
|
15
16
|
{%- for room in site.rooms %}
|
16
|
-
{%- if room.live
|
17
|
+
{%- if room.live -%}
|
18
|
+
{%- unless first_room -%}
|
19
|
+
,
|
20
|
+
{%- else -%}
|
21
|
+
{%- assign first_room = false -%}
|
22
|
+
{%- endunless %}
|
17
23
|
"{{ room.name }}": {
|
18
24
|
"id": {{ forloop.index }},
|
19
25
|
"name": "{{ room.name }}",
|
20
26
|
"href": "{{ room.live }}"
|
21
|
-
}
|
27
|
+
}
|
22
28
|
{%- endif -%}
|
23
29
|
{%- endfor %}
|
24
30
|
},
|
@@ -41,18 +47,24 @@
|
|
41
47
|
},
|
42
48
|
|
43
49
|
"talks": {
|
50
|
+
{%- assign first_room = true -%}
|
44
51
|
{%- for room in site.rooms -%}
|
45
|
-
{%- assign
|
52
|
+
{%- assign first_talk = true -%}
|
46
53
|
{%- for d in site.data.program.days -%}
|
47
54
|
{%- for r in d.rooms -%}
|
48
55
|
{%- if room.name == r.name and room.live %}
|
49
56
|
|
50
|
-
{%-
|
57
|
+
{%- if first_talk -%}
|
58
|
+
{%- unless first_room -%}
|
59
|
+
,
|
60
|
+
{%- else -%}
|
61
|
+
{%- assign first_room = false -%}
|
62
|
+
{%- endunless %}
|
51
63
|
"{{ room.name | replace: '"', '\"' }}": [
|
52
|
-
{%- assign
|
64
|
+
{%- assign first_talk = false %}
|
53
65
|
{%- else -%}
|
54
66
|
,
|
55
|
-
{%-
|
67
|
+
{%- endif -%}
|
56
68
|
|
57
69
|
{%- for t in r.talks %}
|
58
70
|
{%- assign talk = site.talks | where: 'name', t.name | first %}
|
@@ -82,9 +94,9 @@
|
|
82
94
|
{%- endfor -%}
|
83
95
|
{%- endfor -%}
|
84
96
|
|
85
|
-
{%-
|
86
|
-
]
|
87
|
-
{%-
|
97
|
+
{%- unless first_talk %}
|
98
|
+
]
|
99
|
+
{%- endunless -%}
|
88
100
|
{%- endfor %}
|
89
101
|
}
|
90
102
|
}
|
data/_layouts/page.html
CHANGED
data/_layouts/program.html
CHANGED
@@ -61,6 +61,10 @@
|
|
61
61
|
<tbody>
|
62
62
|
{%- include partials/get_day_time.html -%}
|
63
63
|
|
64
|
+
{%- if day_end_day > day_start_day -%}
|
65
|
+
{%- assign day_end_hour = day_end_day | minus: day_start_day | times: 24 | plus: day_end_hour -%}
|
66
|
+
{%- endif -%}
|
67
|
+
|
64
68
|
{%- assign day_duration_min = day_end_hour | minus: day_start_hour | times: 60 | minus: day_start_min | plus: day_end_min -%}
|
65
69
|
{%- assign nbr_steps = day_duration_min | divided_by: site.conference.program.time_steps -%}
|
66
70
|
|
@@ -74,7 +78,12 @@
|
|
74
78
|
{%- assign z-index-max = 999 -%}
|
75
79
|
|
76
80
|
{%- for i in (1..nbr_steps) -%}
|
77
|
-
{%- assign
|
81
|
+
{%- assign current_day = 0 -%}
|
82
|
+
{%- assign current_hour = i | minus: 1 | times: site.conference.program.time_steps | plus: day_start_min | divided_by: 60 | floor | plus: day_start_hour -%}
|
83
|
+
{%- if current_hour >= 24 -%}
|
84
|
+
{%- assign current_day = current_hour | divided_by: 24 | floor -%}
|
85
|
+
{%- assign current_hour = current_hour | modulo: 24 -%}
|
86
|
+
{%- endif -%}
|
78
87
|
{%- assign current_min = i | minus: 1 | times: site.conference.program.time_steps | plus: day_start_min | modulo: 60 -%}
|
79
88
|
{%- if current_min < 10 -%}
|
80
89
|
{%- assign current_time = current_hour | append: ':0' | append: current_min -%}
|
@@ -106,9 +115,9 @@
|
|
106
115
|
|
107
116
|
{%- include partials/get_talk_time.html -%}
|
108
117
|
|
109
|
-
{%- assign d_start_hour = current_hour | minus: talk_start_hour -%}
|
118
|
+
{%- assign d_start_hour = current_day | minus: talk_start_day | times: 24 | plus: current_hour | minus: talk_start_hour -%}
|
110
119
|
{%- assign d_start_min = current_min | minus: talk_start_min -%}
|
111
|
-
{%- assign d_end_hour = current_hour | minus: talk_end_hour -%}
|
120
|
+
{%- assign d_end_hour = current_day | minus: talk_end_day | times: 24 | plus: current_hour | minus: talk_end_hour -%}
|
112
121
|
{%- assign d_end_min = current_min | minus: talk_end_min -%}
|
113
122
|
|
114
123
|
{%- assign has_started = false -%}
|
@@ -127,7 +136,7 @@
|
|
127
136
|
{%- assign has_ended = true -%}
|
128
137
|
{%- endif -%}
|
129
138
|
|
130
|
-
{%- if has_started and has_ended == false -%}
|
139
|
+
{%- if has_started == true and has_ended == false -%}
|
131
140
|
{%- assign active_talk = true -%}
|
132
141
|
{%- endif -%}
|
133
142
|
|
@@ -156,7 +165,7 @@
|
|
156
165
|
|
157
166
|
{%- endfor %}
|
158
167
|
|
159
|
-
{%- unless active_talk %}
|
168
|
+
{%- unless active_talk == true %}
|
160
169
|
<td class="p-0"></td>
|
161
170
|
{%- endunless -%}
|
162
171
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-conference
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorenz Schmid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|