jekyll-theme-conference 3.1.1 → 3.1.2

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: d6dfd46bcf846b9381cf7a9f0b88a063339e1ba62ca33bfd979c56b2ffb20621
4
+ data.tar.gz: 9d6fb33e2b5d0c1c690af32947d7c93f8ae3003f78b0c179d28ed7e3dfe825c9
5
5
  SHA512:
6
- metadata.gz: c2e410318beee836c5d3371185d5e5386f24a28c34061eeb0fc407ec68715326e55f9344021b93c2ded7631df376c45723fbeac84a3e7ae9c5f7a781e981abcc
7
- data.tar.gz: a3a3fefe3e080e42fdf24923fe36189593aeaafd87a2e90624ce42a2fa6ba766a5436201cbb63a5e7b34fba71ea695e05a9ddbadf13352fddc4792c8423444f9
6
+ metadata.gz: 8b8ace8e151d2bac7f2a4f2624f8ab947cbb255c4c40de094e60ebb0205d87a5047bb33de6faea4deff3276ba6e6d0cea9f1bc920c0bacbc7946bcf999a251de
7
+ data.tar.gz: 96ee3c142c692447badd23a59244614d272f34ff86092fbe138465ac4257484de610ea3b2db9718b4fe7fbe7ff8179d7e69969818e1eba947c58cf3b7a7cfbb5
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
 
@@ -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
  }
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
  }
metadata CHANGED
@@ -1,7 +1,7 @@
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.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorenz Schmid