jekyll-theme-conference 3.6.2 → 3.6.3
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 +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
|