jekyll-theme-conference 3.6.2 → 3.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/_includes/js/live.js +82 -38
- data/_includes/partials/get_room_live_href.html +8 -0
- data/_includes/partials/header.html +8 -5
- data/_includes/partials/navbar_rooms.html +25 -37
- data/_layouts/data.html +3 -6
- data/_layouts/page.html +1 -1
- data/_layouts/stream-overview.html +2 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 61b7f9271a152b1368fb216342281bceed52d157e63866a0af293ff9e2c19686
|
4
|
+
data.tar.gz: 193a60a8ea2c1559279dfdd05262681d1df8cc1e1e990d8a76bbdccc4f8a987f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c5002b5e3808191703950acb3d9b5b1fa64038b25f7abf873f97e77ded566cac6bce8983ff6bd0d94cf264c550e9e2ec9402dc4a93bc545eb09d1322fa65045
|
7
|
+
data.tar.gz: 66e00cd41d3e99897a9959d4ef1976f5f3a48ecf747155eb05649b6fbf7d2c1257713a6efac8972e8b50ddb883607441433833dba33a962229533960ff3f97a0
|
data/README.md
CHANGED
@@ -176,6 +176,8 @@ To get started, simply copy the desired workflow file to your repository and ada
|
|
176
176
|
|
177
177
|
- `_tools/build.yml` -> `.github/workflows/build.yml`
|
178
178
|
|
179
|
+
Please note that the `Gemfile.lock` of your project must be adapted to include specific versions required by Github's workflow server, i.e. run `bundle lock --add-platform x86_64-linux` to add support for them.
|
180
|
+
|
179
181
|
|
180
182
|
## Configuration
|
181
183
|
|
data/_includes/js/live.js
CHANGED
@@ -2,7 +2,7 @@ window.conference.live = (() => {
|
|
2
2
|
let config;
|
3
3
|
let lang;
|
4
4
|
|
5
|
-
let data;
|
5
|
+
let data = {};
|
6
6
|
|
7
7
|
let confStart;
|
8
8
|
let confEnd;
|
@@ -117,6 +117,11 @@ window.conference.live = (() => {
|
|
117
117
|
// Set and pause app time
|
118
118
|
pauseTime();
|
119
119
|
|
120
|
+
if (!('days' in data)) {
|
121
|
+
console.log('Data is not loaded yet!')
|
122
|
+
return
|
123
|
+
}
|
124
|
+
|
120
125
|
let dayIdx;
|
121
126
|
if (!newDay) {
|
122
127
|
dayIdx = 0;
|
@@ -359,17 +364,34 @@ window.conference.live = (() => {
|
|
359
364
|
};
|
360
365
|
|
361
366
|
const getRoom = (roomName) => {
|
362
|
-
//
|
363
|
-
if (
|
364
|
-
|
367
|
+
// Verify if data is already loaded and object populated
|
368
|
+
if ('rooms' in data && Object.keys(data.rooms).length > 0) {
|
369
|
+
// Return room object for given room name
|
370
|
+
if (roomName in data.rooms) {
|
371
|
+
return data.rooms[roomName];
|
372
|
+
}
|
373
|
+
else {
|
374
|
+
return data.rooms[Object.keys(data.rooms)[0]];
|
375
|
+
}
|
365
376
|
}
|
366
377
|
else {
|
367
|
-
|
378
|
+
console.log('Cannot read rooms as data is not loaded yet!')
|
379
|
+
return {}
|
380
|
+
}
|
381
|
+
};
|
382
|
+
|
383
|
+
const getAllTalks = () => {
|
384
|
+
if ('talks' in data && Object.keys(data.talks).length > 0) {
|
385
|
+
return data.talks
|
386
|
+
}
|
387
|
+
else {
|
388
|
+
console.log('Cannot read talks as data is not loaded yet!')
|
389
|
+
return {}
|
368
390
|
}
|
369
391
|
};
|
370
392
|
|
371
393
|
const getTalks = (roomName) => {
|
372
|
-
if (roomName in
|
394
|
+
if (roomName in getAllTalks()) {
|
373
395
|
return data.talks[roomName].map((talk) => {
|
374
396
|
// For talks with live links, add some grace period to the end
|
375
397
|
// time in order to prevent that the next talk is announced
|
@@ -380,7 +402,7 @@ window.conference.live = (() => {
|
|
380
402
|
});
|
381
403
|
}
|
382
404
|
else {
|
383
|
-
return
|
405
|
+
return [];
|
384
406
|
}
|
385
407
|
};
|
386
408
|
|
@@ -389,7 +411,7 @@ window.conference.live = (() => {
|
|
389
411
|
const timeNow = time();
|
390
412
|
const talksHere = getTalks(roomName);
|
391
413
|
|
392
|
-
if (talksHere) {
|
414
|
+
if (talksHere.length > 0) {
|
393
415
|
if (timeNow < talksHere[talksHere.length-1].end) {
|
394
416
|
for (let i = 0; i < talksHere.length; i++) {
|
395
417
|
if (timeNow < talksHere[i].end) {
|
@@ -398,7 +420,18 @@ window.conference.live = (() => {
|
|
398
420
|
}
|
399
421
|
}
|
400
422
|
}
|
401
|
-
return
|
423
|
+
return {};
|
424
|
+
};
|
425
|
+
|
426
|
+
const getSpeaker = (speakerName) => {
|
427
|
+
if ('speakers' in data && Object.keys(data.speakers).length > 0) {
|
428
|
+
if (speakerName in data.speakers) {
|
429
|
+
return data.speakers[speakerName]
|
430
|
+
}
|
431
|
+
}
|
432
|
+
|
433
|
+
console.log('Cannot read speakers as data is not loaded yet!')
|
434
|
+
return {}
|
402
435
|
};
|
403
436
|
|
404
437
|
const getNextPause = (roomName) => {
|
@@ -406,7 +439,7 @@ window.conference.live = (() => {
|
|
406
439
|
const timeNow = time();
|
407
440
|
const talksHere = getTalks(roomName);
|
408
441
|
|
409
|
-
if (talksHere) {
|
442
|
+
if (talksHere.length > 0) {
|
410
443
|
if (timeNow < talksHere[talksHere.length-1].end) {
|
411
444
|
for (let i = 1; i < talksHere.length; i++) {
|
412
445
|
if (timeNow < talksHere[i].start && streamPause*60 <= talksHere[i].start - talksHere[i-1].end) {
|
@@ -440,10 +473,10 @@ window.conference.live = (() => {
|
|
440
473
|
// Update stream modal iframe:
|
441
474
|
// Show stream with start/pause/end message (for given room) and keep updated
|
442
475
|
const timeNow = time();
|
443
|
-
|
444
|
-
const talksHere = getTalks(roomName);
|
445
476
|
let roomStart, roomEnd;
|
446
|
-
|
477
|
+
|
478
|
+
let talksHere = getTalks(roomName);
|
479
|
+
if (talksHere.length > 0) {
|
447
480
|
roomStart = talksHere[0].start;
|
448
481
|
roomEnd = talksHere[talksHere.length-1].end;
|
449
482
|
}
|
@@ -451,16 +484,19 @@ window.conference.live = (() => {
|
|
451
484
|
// If no program for given room, take overall first and last talk
|
452
485
|
roomStart = 0;
|
453
486
|
roomEnd = 0;
|
454
|
-
for (let roomNameTalk in
|
487
|
+
for (let roomNameTalk in getAllTalks()) {
|
455
488
|
talksHere = getTalks(roomNameTalk);
|
456
|
-
const crntRoomStart = talksHere[0].start;
|
457
|
-
const crntRoomEnd = talksHere[talksHere.length-1].end;
|
458
489
|
|
459
|
-
if (
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
490
|
+
if (talksHere.length > 0) {
|
491
|
+
const crntRoomStart = talksHere[0].start;
|
492
|
+
const crntRoomEnd = talksHere[talksHere.length-1].end;
|
493
|
+
|
494
|
+
if (roomStart == 0 || roomStart > crntRoomStart) {
|
495
|
+
roomStart = crntRoomStart;
|
496
|
+
}
|
497
|
+
if (roomEnd == 0 || roomEnd < crntRoomEnd) {
|
498
|
+
roomEnd = crntRoomEnd;
|
499
|
+
}
|
464
500
|
}
|
465
501
|
}
|
466
502
|
}
|
@@ -502,14 +538,16 @@ window.conference.live = (() => {
|
|
502
538
|
// Currently a talk is active
|
503
539
|
else {
|
504
540
|
const room = getRoom(roomName);
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
if (
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
541
|
+
if (room !== {}) {
|
542
|
+
setStreamIframeSrc(room.href);
|
543
|
+
|
544
|
+
if (!freezeTime) {
|
545
|
+
if (pauseNext) {
|
546
|
+
streamVideoTimer = setTimeout(setStreamVideo, delayStart(pauseNext.start + streamExtend*60) * 1000, roomName);
|
547
|
+
}
|
548
|
+
else {
|
549
|
+
streamVideoTimer = setTimeout(setStreamVideo, delayStart(roomEnd + streamExtend*60) * 1000, roomName);
|
550
|
+
}
|
513
551
|
}
|
514
552
|
}
|
515
553
|
}
|
@@ -526,7 +564,7 @@ window.conference.live = (() => {
|
|
526
564
|
clearInterval(streamInfoTimer);
|
527
565
|
}
|
528
566
|
|
529
|
-
if (talkNext && timeNow >= talkNext.start - streamPause*60) {
|
567
|
+
if (talkNext !== {} && timeNow >= talkNext.start - streamPause*60) {
|
530
568
|
document.getElementById('stream-info').dataset.time = talkNext.start;
|
531
569
|
document.getElementById('stream-info-time').dataset.time = talkNext.start;
|
532
570
|
|
@@ -539,8 +577,12 @@ window.conference.live = (() => {
|
|
539
577
|
|
540
578
|
let speakerStr = '';
|
541
579
|
for (let i = 0; i < talkNext.speakers.length; i++) {
|
542
|
-
let speaker =
|
543
|
-
|
580
|
+
let speaker = getSpeaker(talkNext.speakers[i]);
|
581
|
+
|
582
|
+
if (speaker == {}) {
|
583
|
+
speakerStr += talkNext.speakers[i] +', '
|
584
|
+
}
|
585
|
+
else if (speaker.href == '') {
|
544
586
|
speakerStr += speaker.name +', '
|
545
587
|
}
|
546
588
|
else {
|
@@ -588,7 +630,7 @@ window.conference.live = (() => {
|
|
588
630
|
}
|
589
631
|
else if (demo) {
|
590
632
|
let talksHere = getTalks(roomName);
|
591
|
-
if (talksHere) {
|
633
|
+
if (talksHere.length > 0) {
|
592
634
|
streamInfoTimer = setTimeout(setStreamInfo, delayStart(talksHere[0].start - streamPrepend*60) * 1000, roomName);
|
593
635
|
}
|
594
636
|
}
|
@@ -603,13 +645,15 @@ window.conference.live = (() => {
|
|
603
645
|
|
604
646
|
// Recover room name in case of empty default
|
605
647
|
const room = getRoom(roomName);
|
606
|
-
|
648
|
+
if (room !== {}) {
|
649
|
+
roomName = room.name;
|
607
650
|
|
608
|
-
|
609
|
-
|
651
|
+
setStreamVideo(roomName);
|
652
|
+
setStreamInfo(roomName);
|
610
653
|
|
611
|
-
|
612
|
-
|
654
|
+
streamModal.find('#stream-button' + room.id).addClass('active');
|
655
|
+
streamModal.find('#stream-select').val(room.id);
|
656
|
+
}
|
613
657
|
};
|
614
658
|
|
615
659
|
const updateStream = () => {
|
@@ -0,0 +1,8 @@
|
|
1
|
+
{% assign room_live_href = '' -%}
|
2
|
+
{%- if room.live -%}
|
3
|
+
{%- if room.live.absolute_url -%}
|
4
|
+
{%- assign room_live_href = room.live.absolute_url -%}
|
5
|
+
{%- elsif room.live.relative_url -%}
|
6
|
+
{%- assign room_live_href = room.live.relative_url | prepend: site.baseurl -%}
|
7
|
+
{%- endif -%}
|
8
|
+
{%- endif -%}
|
@@ -22,12 +22,15 @@
|
|
22
22
|
<link rel="prefetch" as="fetch" href="{{ site.baseurl }}/assets/js/data.json" type="application/json" crossorigin="anonymous" />
|
23
23
|
{%- endif %}
|
24
24
|
|
25
|
-
{%- if site.conference.live.streaming.enable
|
26
|
-
{%- for room in site.rooms
|
25
|
+
{%- if site.conference.live.streaming.enable %}
|
26
|
+
{%- for room in site.rooms %}
|
27
27
|
{%- if room.live %}
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
{%- include partials/get_room_live_href.html %}
|
29
|
+
{%- if room_live_href %}
|
30
|
+
<link rel="preconnect" href="{{ room_live_href }}" />
|
31
|
+
{%- endif %}
|
32
|
+
{%- endif %}
|
33
|
+
{%- endfor %}
|
31
34
|
{%- endif %}
|
32
35
|
</head>
|
33
36
|
|
@@ -1,48 +1,36 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
{
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
{% assign all_hidden = true -%}
|
2
|
+
{% unless site.conference.location.hide %}
|
3
|
+
{% for room in site.rooms %}
|
4
|
+
{% unless room.hide %}
|
5
|
+
{% assign all_hidden = false %}
|
6
|
+
{% break %}
|
7
|
+
{% endunless %}
|
8
|
+
{% endfor %}
|
9
|
+
{% endunless %}
|
10
|
+
|
11
|
+
{% unless all_hidden %}
|
12
|
+
<ul class="nav nav-pills d-print-none mb-3">
|
12
13
|
<li class="nav-item">
|
13
|
-
{
|
14
|
-
|
15
|
-
{{
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
</a>
|
21
|
-
{%- endif %}
|
14
|
+
<a class="nav-link {% if page.name contains 'index' %}active{% endif %}" href="{{ site.conference.location.url | prepend: site.baseurl }}">
|
15
|
+
{% if site.conference.location.navbar_title -%}
|
16
|
+
{{- site.conference.location.navbar_title -}}
|
17
|
+
{%- else -%}
|
18
|
+
{{- site.data.lang[site.conference.lang].location.directions | default: "Directions" -}}
|
19
|
+
{%- endif %}
|
20
|
+
</a>
|
22
21
|
</li>
|
23
|
-
|
24
|
-
{%- for room in site.rooms -%}
|
25
|
-
{%- assign room_displayed = false -%}
|
26
|
-
{%- for d in site.data.program.days -%}
|
27
|
-
{%- for r in d.rooms -%}
|
28
|
-
{%- if room.name == r.name -%}
|
29
|
-
{%- assign room_displayed = true -%}
|
30
|
-
{%- break -%}
|
31
|
-
{%- endif -%}
|
32
|
-
{%- endfor -%}
|
33
|
-
{%- endfor -%}
|
34
|
-
{%- unless room_displayed %}
|
22
|
+
{% for room in site.rooms or site.conference.location.hide -%}
|
35
23
|
<li class="nav-item">
|
36
|
-
{
|
24
|
+
{% if room.hide -%}
|
37
25
|
<span class="nav-item nav-link disabled">
|
38
26
|
{{ room.name }}
|
39
27
|
</span>
|
40
|
-
{%- else
|
28
|
+
{%- else -%}
|
41
29
|
<a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
|
42
30
|
{{ room.name }}
|
43
31
|
</a>
|
44
32
|
{%- endif %}
|
45
33
|
</li>
|
46
|
-
{%-
|
47
|
-
|
48
|
-
|
34
|
+
{%- endfor %}
|
35
|
+
</ul>
|
36
|
+
{% endunless %}
|
data/_layouts/data.html
CHANGED
@@ -15,13 +15,10 @@
|
|
15
15
|
{%- assign first_room = true -%}
|
16
16
|
{%- for room in site.rooms %}
|
17
17
|
{%- if room.live -%}
|
18
|
-
{%-
|
19
|
-
|
20
|
-
{%- elsif room.live.relative_url -%}
|
21
|
-
{%- assign room_live_href = room.live.relative_url | prepend: site.baseurl -%}
|
22
|
-
{%- else -%}
|
18
|
+
{%- include partials/get_room_live_href.html -%}
|
19
|
+
{%- unless room_live_href -%}
|
23
20
|
{%- continue -%}
|
24
|
-
{%-
|
21
|
+
{%- endunless -%}
|
25
22
|
|
26
23
|
{%- unless first_room -%}
|
27
24
|
,
|
data/_layouts/page.html
CHANGED
@@ -21,7 +21,8 @@
|
|
21
21
|
<div class="col-md mb-4">
|
22
22
|
<h3>{{ room.name }}</h3>
|
23
23
|
<div class="embed-responsive embed-responsive-16by9">
|
24
|
-
|
24
|
+
{%- include partials/get_room_live_href.html %}
|
25
|
+
<iframe class="embed-responsive-item" src="{{ room_live_href }}" allowfullscreen></iframe>
|
25
26
|
</div>
|
26
27
|
</div>
|
27
28
|
|
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.6.
|
4
|
+
version: 3.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorenz Schmid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
33
|
+
version: '2.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
40
|
+
version: '2.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,6 +86,7 @@ files:
|
|
86
86
|
- _includes/partials/get_main_category.html
|
87
87
|
- _includes/partials/get_page_description.html
|
88
88
|
- _includes/partials/get_page_title.html
|
89
|
+
- _includes/partials/get_room_live_href.html
|
89
90
|
- _includes/partials/get_talk_time.html
|
90
91
|
- _includes/partials/get_talk_timestamp.html
|
91
92
|
- _includes/partials/get_time_pronoun.html
|