jekyll-theme-conference 3.6.1 → 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 +12 -5
- data/_includes/js/conference.js +19 -6
- data/_includes/js/init.js +4 -2
- data/_includes/js/live.js +82 -38
- data/_includes/js/map.js +8 -3
- data/_includes/partials/checks.html +2 -2
- 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
- data/_sass/bootstrap/_variables.scss +1 -1
- metadata +6 -5
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
|
|
@@ -493,9 +495,14 @@ conference:
|
|
493
495
|
map: true
|
494
496
|
```
|
495
497
|
|
496
|
-
The map is based on the
|
498
|
+
The map is based on the [Leaflet](https://leafletjs.com/) JavaScript library. The map object can be customized by adding additional layers with markers, text, or shapes. To do so, one has to edit the main JavaScript file, `assets/js/main.js`:
|
497
499
|
|
498
|
-
|
500
|
+
1. Import the JavaScript library of the theme (via Jekyll `include` command)
|
501
|
+
2. Await the initialization of the theme's object
|
502
|
+
3. Fetch the map object and verify it is set (while the JavaScript code is imported and executed on each page, the map object will only exist on the location site)
|
503
|
+
4. Modify the map.
|
504
|
+
|
505
|
+
Following an example is given adding a simple marker to the map:
|
499
506
|
|
500
507
|
```javascript
|
501
508
|
---
|
@@ -503,8 +510,8 @@ Example:
|
|
503
510
|
|
504
511
|
{% include js/conference.js %}
|
505
512
|
|
506
|
-
(() => {
|
507
|
-
const map = window.conference.map;
|
513
|
+
window.conference.awaitReady().then(() => {
|
514
|
+
const map = window.conference.map.getMap();
|
508
515
|
|
509
516
|
if (typeof map !== 'undefined') {
|
510
517
|
let main_station = L.marker([47.37785, 8.54035], {
|
@@ -515,7 +522,7 @@ Example:
|
|
515
522
|
})
|
516
523
|
}).addTo(map);
|
517
524
|
}
|
518
|
-
})
|
525
|
+
});
|
519
526
|
|
520
527
|
```
|
521
528
|
|
data/_includes/js/conference.js
CHANGED
@@ -11,6 +11,19 @@
|
|
11
11
|
window.conference = {
|
12
12
|
config: {
|
13
13
|
baseurl: '{{ site.baseurl }}'
|
14
|
+
},
|
15
|
+
|
16
|
+
ready: false,
|
17
|
+
awaitReady: () => {
|
18
|
+
const poll = (resolve) => {
|
19
|
+
if(window.conference.ready === true) {
|
20
|
+
resolve();
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
setTimeout(() => poll(resolve), 500);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
return new Promise(poll);
|
14
27
|
}
|
15
28
|
};
|
16
29
|
|
@@ -22,12 +35,12 @@ window.conference = {
|
|
22
35
|
// Leaflet (Map Display)
|
23
36
|
{% include partials/get_enable_map.html %}
|
24
37
|
{% if enable_map %}
|
25
|
-
{
|
26
|
-
{
|
27
|
-
{
|
28
|
-
{
|
38
|
+
{%- include js/lib/leaflet.js %}
|
39
|
+
{%- include js/lib/leaflet-easybutton.js %}
|
40
|
+
{%- include js/lib/leaflet-locatecontrol.js %}
|
41
|
+
{%- include js/lib/leaflet-providers.js %}
|
29
42
|
|
30
|
-
{
|
43
|
+
{%- include js/map.js %}
|
31
44
|
{% endif %}
|
32
45
|
|
33
46
|
// Modals ("Popups")
|
@@ -35,7 +48,7 @@ window.conference = {
|
|
35
48
|
|
36
49
|
// Live and Streaming
|
37
50
|
{% if site.conference.live %}
|
38
|
-
{
|
51
|
+
{%- include js/live.js %}
|
39
52
|
{% endif %}
|
40
53
|
|
41
54
|
// Load configuration and start initialization
|
data/_includes/js/init.js
CHANGED
@@ -12,7 +12,7 @@ const init = () => {
|
|
12
12
|
|
13
13
|
// Execute initialization functions
|
14
14
|
for (const [name, module] of Object.entries(window.conference)) {
|
15
|
-
if (
|
15
|
+
if (['config','ready','awaitReady'].includes(name)) {
|
16
16
|
continue;
|
17
17
|
}
|
18
18
|
|
@@ -25,9 +25,11 @@ const init = () => {
|
|
25
25
|
l = config.lang[name];
|
26
26
|
}
|
27
27
|
|
28
|
-
module.init(c, l)
|
28
|
+
module.init(c, l);
|
29
29
|
}
|
30
30
|
|
31
|
+
}).then(() => {
|
32
|
+
window.conference.ready = true;
|
31
33
|
})
|
32
34
|
.catch((error) => {
|
33
35
|
console.log(error);
|
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 = () => {
|
data/_includes/js/map.js
CHANGED
@@ -11,12 +11,12 @@ window.conference.map = (() => {
|
|
11
11
|
|
12
12
|
L.easyButton('far fa-star', () => {
|
13
13
|
map.flyTo(config.home_coord, config.default_zoom);
|
14
|
-
}, lang.
|
14
|
+
}, lang.focus_conf).addTo(map);
|
15
15
|
|
16
16
|
L.control.locate({
|
17
17
|
flyTo: true,
|
18
18
|
strings: {
|
19
|
-
title: lang.
|
19
|
+
title: lang.focus_me
|
20
20
|
}
|
21
21
|
}).addTo(map);
|
22
22
|
};
|
@@ -32,7 +32,12 @@ window.conference.map = (() => {
|
|
32
32
|
}
|
33
33
|
};
|
34
34
|
|
35
|
+
const getMap = () => {
|
36
|
+
return map
|
37
|
+
};
|
38
|
+
|
35
39
|
return {
|
36
|
-
init: init
|
40
|
+
init: init,
|
41
|
+
getMap: getMap
|
37
42
|
};
|
38
43
|
})();
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
{%- unless site.data.lang.version -%}
|
4
4
|
{%- unless site.conference.lang == "en" -%}
|
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/
|
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/main/_data/lang.yml) to you local website folder?" -%}
|
6
6
|
{%- endunless -%}
|
7
7
|
{%- elsif site.data.lang.version != 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/
|
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/main/_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" -%}
|
11
11
|
{%- assign errors = errors | push : "Unknown language selected for `site.conference.lang` parameter. Supported are `en`, `de`, `fr`, and `pt`." -%}
|
@@ -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
|
|
@@ -677,7 +677,7 @@ $form-validation-states: map-merge(
|
|
677
677
|
$form-validation-states
|
678
678
|
);
|
679
679
|
|
680
|
-
// Z-index
|
680
|
+
// Z-index main list
|
681
681
|
//
|
682
682
|
// Warning: Avoid customizing these values. They're used for a bird's eye view
|
683
683
|
// of components dependent on the z-axis and are designed to all work together.
|
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:
|
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
|
@@ -286,7 +287,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
286
287
|
- !ruby/object:Gem::Version
|
287
288
|
version: '0'
|
288
289
|
requirements: []
|
289
|
-
rubygems_version: 3.3.
|
290
|
+
rubygems_version: 3.3.26
|
290
291
|
signing_key:
|
291
292
|
specification_version: 4
|
292
293
|
summary: Jekyll template for a conference website containing program, speaker, talks
|