jekyll-theme-conference 3.5.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +24 -9
- data/_includes/js/live.js +30 -13
- data/_includes/js/program.js +2 -1
- data/_includes/partials/checks.html +1 -1
- data/_includes/partials/get_live_timestamps.html +3 -3
- data/_includes/partials/get_page_title.html +1 -1
- data/_layouts/config.html +3 -3
- data/_layouts/data.html +9 -1
- data/_layouts/location.html +1 -1
- data/_layouts/room.html +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0da457627a261ffda7837260a6b66294a383971e653ea3e3f05299cb8f672f8f
|
4
|
+
data.tar.gz: b02dc7da45e1e76386635952414d57c0c22727fa6e4c6e0968e5e55db58266d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23c9ce1a8794dc7f25d5973c3ce70fd1c3dbb599ffc73c5a5e9fe4135a001e4ca173671d2433f66b15dd0bdc517fee1637a52325a2f233107d0590b1f554563e
|
7
|
+
data.tar.gz: ab334e1c2cd367f9ff3eebbc4d00760fc19a0ea0a1a7ea20df8d3bcc8ed0740a73464bb4b29db87452c780c4ade88b094766cff5377166a0249272105c5f50ee
|
data/README.md
CHANGED
@@ -384,12 +384,12 @@ This can be further extended if some of the talks have an associated live stream
|
|
384
384
|
|
385
385
|
In order to activate these functionalities, each day in the `program.yml` file must contain a `date` property (see section _Content_ > _Schedule / Program_ below) and the `live` property has to be set in the configuration file containing
|
386
386
|
|
387
|
-
- how long a pause between two consecutive talks has to be for the live indication to pause (`
|
387
|
+
- how long a pause between two consecutive talks has to be for the live indication to pause (`stop`),
|
388
388
|
- optionally under the `streaming` property:
|
389
389
|
+ if streaming should be enabled (`enable`), and if enabled
|
390
|
-
+ how many minutes the stream goes active before a talk (`
|
391
|
-
+ how many minutes the stream stays active after a talk (`
|
392
|
-
+ how long a pause between two consecutive talks has to be for the stream to pause (`
|
390
|
+
+ how many minutes the stream goes active before a talk (`prepend`),
|
391
|
+
+ how many minutes the stream stays active after a talk (`extend`),
|
392
|
+
+ how long a pause between two consecutive talks has to be for the stream to pause (`pause`), and
|
393
393
|
+ optionally an external (absolute) link to which the user will be redirected instead of opening the modal (`external`),
|
394
394
|
- optionally under the `demo` property:
|
395
395
|
+ if a demonstration mode should be enabled (`enable`), whereby the JavaScript function cycles continuously through the entire program in a few minutes, and if enabled
|
@@ -399,12 +399,12 @@ In order to activate these functionalities, each day in the `program.yml` file m
|
|
399
399
|
```yaml
|
400
400
|
conference:
|
401
401
|
live:
|
402
|
-
|
402
|
+
stop: 240 # in minutes
|
403
403
|
streaming:
|
404
404
|
enable: true
|
405
|
-
|
406
|
-
|
407
|
-
|
405
|
+
pause: 60 # in minutes
|
406
|
+
prepend: 5 # in minutes
|
407
|
+
extend: 5 # in minutes
|
408
408
|
demo:
|
409
409
|
enable: false
|
410
410
|
duration: 300 # in seconds
|
@@ -620,7 +620,22 @@ Each room is represented by a file in the `_rooms/` directory. It must begin wit
|
|
620
620
|
|
621
621
|
- the room's `name`
|
622
622
|
- optionally `hide: true` if the room's page should not be linked to, and
|
623
|
-
- optionally a URL pointing to a live stream for the given room during the conference (
|
623
|
+
- optionally under the `live` property a URL pointing to a live stream for the given room during the conference (see the section _Live Indications & Streaming_ above), either:
|
624
|
+
* as an `absolute_url`, or
|
625
|
+
* a `relative_url`.
|
626
|
+
|
627
|
+
Example:
|
628
|
+
|
629
|
+
```yaml
|
630
|
+
---
|
631
|
+
name: The Room
|
632
|
+
hide: false
|
633
|
+
live:
|
634
|
+
absolute_url: https://github.com
|
635
|
+
---
|
636
|
+
|
637
|
+
...
|
638
|
+
```
|
624
639
|
|
625
640
|
### Links
|
626
641
|
|
data/_includes/js/live.js
CHANGED
@@ -27,6 +27,8 @@ window.conference.live = (() => {
|
|
27
27
|
let streamVideoTimer;
|
28
28
|
let streamInfoTimer;
|
29
29
|
|
30
|
+
let streamModal;
|
31
|
+
|
30
32
|
const loadData = () => {
|
31
33
|
// Load schedule
|
32
34
|
const request = new Request(window.conference.config.baseurl + '/assets/js/data.json');
|
@@ -306,13 +308,22 @@ window.conference.live = (() => {
|
|
306
308
|
let tRel = tNow - t;
|
307
309
|
|
308
310
|
if (tRel < 0) {
|
309
|
-
|
310
|
-
|
311
|
-
livePast[i].classList.
|
311
|
+
if (livePast[i].nodeName == 'A' || livePast[i].nodeName == 'BUTTON') {
|
312
|
+
// Disable when in past
|
313
|
+
if (!livePast[i].classList.contains('disabled')) {
|
314
|
+
livePast[i].classList.add('disabled');
|
315
|
+
}
|
316
|
+
}
|
317
|
+
else {
|
318
|
+
// Grey out when in past
|
319
|
+
if (!livePast[i].classList.contains('text-secondary')) {
|
320
|
+
livePast[i].classList.add('text-secondary');
|
321
|
+
}
|
312
322
|
}
|
313
323
|
}
|
314
324
|
else {
|
315
325
|
// Show normal otherwise
|
326
|
+
livePast[i].classList.remove('disabled');
|
316
327
|
livePast[i].classList.remove('text-secondary');
|
317
328
|
}
|
318
329
|
}
|
@@ -347,8 +358,6 @@ window.conference.live = (() => {
|
|
347
358
|
}
|
348
359
|
};
|
349
360
|
|
350
|
-
let streamModal;
|
351
|
-
|
352
361
|
const getRoom = (roomName) => {
|
353
362
|
// Return room object for given room name
|
354
363
|
if (roomName in data.rooms) {
|
@@ -361,7 +370,14 @@ window.conference.live = (() => {
|
|
361
370
|
|
362
371
|
const getTalks = (roomName) => {
|
363
372
|
if (roomName in data.talks) {
|
364
|
-
return data.talks[roomName]
|
373
|
+
return data.talks[roomName].map((talk) => {
|
374
|
+
// For talks with live links, add some grace period to the end
|
375
|
+
// time in order to prevent that the next talk is announced
|
376
|
+
// immediately
|
377
|
+
const end = talk.live_links && talk.live_links.length > 0 ?
|
378
|
+
talk.end + streamExtend * 60 : talk.end;
|
379
|
+
return { ...talk, end };
|
380
|
+
});
|
365
381
|
}
|
366
382
|
else {
|
367
383
|
return false;
|
@@ -454,7 +470,7 @@ window.conference.live = (() => {
|
|
454
470
|
}
|
455
471
|
|
456
472
|
// Conference not yet started
|
457
|
-
if (timeNow
|
473
|
+
if (timeNow <= roomStart - streamPrepend*60) {
|
458
474
|
setStreamIframeContent(lang.pre_stream);
|
459
475
|
|
460
476
|
if (!freezeTime) {
|
@@ -463,7 +479,7 @@ window.conference.live = (() => {
|
|
463
479
|
}
|
464
480
|
|
465
481
|
// Conference is over
|
466
|
-
else if (timeNow
|
482
|
+
else if (timeNow >= roomEnd + streamExtend*60) {
|
467
483
|
setStreamIframeContent(lang.post_stream);
|
468
484
|
|
469
485
|
if (!freezeTime && demo) {
|
@@ -513,7 +529,6 @@ window.conference.live = (() => {
|
|
513
529
|
if (talkNext && timeNow >= talkNext.start - streamPause*60) {
|
514
530
|
document.getElementById('stream-info').dataset.time = talkNext.start;
|
515
531
|
document.getElementById('stream-info-time').dataset.time = talkNext.start;
|
516
|
-
updateLive();
|
517
532
|
|
518
533
|
streamModal.find('#stream-info-color').removeClass((index, className) => {
|
519
534
|
return (className.match(/(^|\s)border-soft-\S+/g) || []).join(' ');
|
@@ -540,11 +555,12 @@ window.conference.live = (() => {
|
|
540
555
|
for (let i = 0; i < talkNext.live_links.length; i++) {
|
541
556
|
const link = talkNext.live_links[i];
|
542
557
|
|
543
|
-
|
544
|
-
if (link.
|
545
|
-
|
558
|
+
// Skip empty links
|
559
|
+
if ((link.name == '' && !link.icon) || link.href == '') {
|
560
|
+
continue;
|
546
561
|
}
|
547
|
-
|
562
|
+
|
563
|
+
linksStr += '<a href="' + link.href + '" class="btn btn-light m-1 live-past" data-time="'+ talkNext.start +'">';
|
548
564
|
if (link.icon) {
|
549
565
|
linksStr += '<i class="fas fa-' + link.icon + '"></i> ';
|
550
566
|
}
|
@@ -558,6 +574,7 @@ window.conference.live = (() => {
|
|
558
574
|
|
559
575
|
streamModal.find('#stream-info').removeClass('d-none');
|
560
576
|
|
577
|
+
updateLive();
|
561
578
|
if (!freezeTime) {
|
562
579
|
streamInfoTimer = setTimeout(setStreamInfo, delayStart(talkNext.end) * 1000, roomName);
|
563
580
|
}
|
data/_includes/js/program.js
CHANGED
@@ -19,7 +19,8 @@ window.conference.program = (() => {
|
|
19
19
|
today.setHours(0,0,0,0);
|
20
20
|
|
21
21
|
$('a[data-toggle="tab"]').each(function () {
|
22
|
-
|
22
|
+
let d = new Date($(this).data('date'));
|
23
|
+
d.setHours(0,0,0,0);
|
23
24
|
|
24
25
|
if (today.getTime() === d.getTime()) {
|
25
26
|
$(this).tab('show');
|
@@ -4,7 +4,7 @@
|
|
4
4
|
{%- unless site.conference.lang == "en" -%}
|
5
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/master/_data/lang.yml) to you local website folder?" -%}
|
6
6
|
{%- endunless -%}
|
7
|
-
{%- elsif site.data.lang.version !=
|
7
|
+
{%- elsif site.data.lang.version != 8 -%}
|
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/master/_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" -%}
|
@@ -1,9 +1,9 @@
|
|
1
|
-
{%- assign min_pause = site.conference.live.
|
1
|
+
{%- assign min_pause = site.conference.live.stop | default: 240 -%}
|
2
2
|
{%- assign min_pause = min_pause | times: 60 -%}
|
3
3
|
|
4
4
|
{%- if site.conference.live.streaming.enable -%}
|
5
|
-
{%- assign offset_start = site.conference.live.streaming.
|
6
|
-
{%- assign offset_end = site.conference.live.streaming.
|
5
|
+
{%- assign offset_start = site.conference.live.streaming.prepend | default: 5 -%}
|
6
|
+
{%- assign offset_end = site.conference.live.streaming.extend | default: 5 -%}
|
7
7
|
{%- else -%}
|
8
8
|
{%- assign offset_start = 0 -%}
|
9
9
|
{%- assign offset_end = 0 -%}
|
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
{%- else -%}
|
13
13
|
{%- if page.layout == 'location' -%}
|
14
|
-
{{- site.data.lang[site.conference.lang].location.
|
14
|
+
{{- site.data.lang[site.conference.lang].location.rooms | default: "Rooms" -}}
|
15
15
|
{%- elsif page.layout == 'program' -%}
|
16
16
|
{{- site.data.lang[site.conference.lang].program.title | default: "Program" -}}
|
17
17
|
{%- elsif page.layout == 'speaker-overview' -%}
|
data/_layouts/config.html
CHANGED
@@ -31,9 +31,9 @@
|
|
31
31
|
|
32
32
|
"streaming": {
|
33
33
|
"enable": {{ site.conference.live.streaming.enable | default: "false" }},
|
34
|
-
"pause": {{ site.conference.live.streaming.
|
35
|
-
"prepend": {{ site.conference.live.streaming.
|
36
|
-
"extend": {{ site.conference.live.streaming.
|
34
|
+
"pause": {{ site.conference.live.streaming.pause | default: 60 }},
|
35
|
+
"prepend": {{ site.conference.live.streaming.prepend | default: 5 }},
|
36
|
+
"extend": {{ site.conference.live.streaming.extend | default: 5 }}
|
37
37
|
},
|
38
38
|
|
39
39
|
"demo": {
|
data/_layouts/data.html
CHANGED
@@ -15,6 +15,14 @@
|
|
15
15
|
{%- assign first_room = true -%}
|
16
16
|
{%- for room in site.rooms %}
|
17
17
|
{%- if room.live -%}
|
18
|
+
{%- if room.live.absolute_url -%}
|
19
|
+
{%- assign room_live_href = room.live.absolute_url -%}
|
20
|
+
{%- elsif room.live.relative_url -%}
|
21
|
+
{%- assign room_live_href = room.live.relative_url | prepend: site.baseurl -%}
|
22
|
+
{%- else -%}
|
23
|
+
{%- continue -%}
|
24
|
+
{%- endif -%}
|
25
|
+
|
18
26
|
{%- unless first_room -%}
|
19
27
|
,
|
20
28
|
{%- else -%}
|
@@ -23,7 +31,7 @@
|
|
23
31
|
"{{ room.name }}": {
|
24
32
|
"id": {{ forloop.index }},
|
25
33
|
"name": "{{ room.name }}",
|
26
|
-
"href": "{{
|
34
|
+
"href": "{{ room_live_href }}"
|
27
35
|
}
|
28
36
|
{%- endif -%}
|
29
37
|
{%- endfor %}
|
data/_layouts/location.html
CHANGED
data/_layouts/room.html
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
<!-- title shown in browser: -->
|
12
12
|
<h1 class="display-5 mb-3 d-print-none">
|
13
|
-
{{ site.data.lang[site.conference.lang].location.
|
13
|
+
{{ site.data.lang[site.conference.lang].location.rooms | default: "Rooms" }}
|
14
14
|
</h1>
|
15
15
|
|
16
16
|
{% include partials/navbar_rooms.html %}
|
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.
|
4
|
+
version: 3.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorenz Schmid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|