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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 91444cf0a7c14c4e1d4a10547c95fd9c6a10b176db297a2071830f2a634052c0
4
- data.tar.gz: 5c16b5f374876f5bde05ff91c0e121133843f31ad42701ef8336b523933101ba
3
+ metadata.gz: d4f5a6058ed0096854e4b7d4714298ea9bc253a394b8170d3ae2d280bec3913e
4
+ data.tar.gz: 5ed07180716fc59636f3b5a9634fd7d430166796285566751a927ce9f15be913
5
5
  SHA512:
6
- metadata.gz: c2e410318beee836c5d3371185d5e5386f24a28c34061eeb0fc407ec68715326e55f9344021b93c2ded7631df376c45723fbeac84a3e7ae9c5f7a781e981abcc
7
- data.tar.gz: a3a3fefe3e080e42fdf24923fe36189593aeaafd87a2e90624ce42a2fa6ba766a5436201cbb63a5e7b34fba71ea695e05a9ddbadf13352fddc4792c8423444f9
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 = data.talks[roomName];
378
+ let talksHere = getTalks(roomName);
370
379
 
371
- if (typeof talksHere !== "undefined") {
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 = data.talks[roomName];
395
+ let talksHere = getTalks(roomName);
387
396
 
388
- if (typeof talksHere !== "undefined") {
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 = data.talks[roomName];
424
- let roomStart = talksHere[0].start;
425
- let roomEnd = talksHere[talksHere.length-1].end;
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 = data.talks[roomName];
528
- streamInfoTimer = setTimeout(setStreamInfo, delayStart(talksHere[0].start - streamPrepend*60) * 1000, roomName);
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 < 4 -%}
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
- {%- assign talk_start_hour = talk_start | split: ':' | first -%}
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 talk_duration_min = talk_end_hour | minus: talk_start_hour | times: 60 | minus: talk_start_min | plus: talk_end_min -%}
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
- {%- assign datetime_start = d.date | append: " " | append: t.time_start -%}
2
- {%- assign timestamp_start = datetime_start | date: "%s" -%}
3
- {%- assign datetime_end = d.date | append: " " | append: t.time_end -%}
4
- {%- assign timestamp_end = datetime_end | date: "%s" -%}
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
- }{%- unless forloop.last -%},{%- endunless %}
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 room_has_talks = false %}
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
- {%- unless room_has_talks %}
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 room_has_talks = true %}
64
+ {%- assign first_talk = false %}
53
65
  {%- else -%}
54
66
  ,
55
- {%- endunless -%}
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
- {%- if room_has_talks %}
86
- ]{%- unless forloop.last -%},{%- endunless -%}
87
- {%- endif -%}
97
+ {%- unless first_talk %}
98
+ ]
99
+ {%- endunless -%}
88
100
  {%- endfor %}
89
101
  }
90
102
  }
data/_layouts/page.html CHANGED
@@ -1,5 +1,9 @@
1
1
  {% include partials/header.html %}
2
2
 
3
+ {% if page.title -%}
4
+ <h1 class="font-weight-light mb-2">{{ page.title }}</h1>
5
+ {%- endif %}
6
+
3
7
  {{ content }}
4
8
 
5
9
  {% include partials/footer.html %}
@@ -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 current_hour = i | minus: 1 | times: site.conference.program.time_steps | plus: day_start_min | divided_by: 60 | floor | plus: day_start_hour | modulo: 24 -%}
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.1.1
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-02-15 00:00:00.000000000 Z
11
+ date: 2021-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll