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