jekyll-theme-conference 3.5.0 → 3.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3463207643540289c9e9bc5f6c7bf57a63d0b1f48f3dc72e4a0dac3f98d2034
4
- data.tar.gz: 1c475f305b05cea1a9866f025e2d215320b1b20a7c8ce8a79769d3e310732d3e
3
+ metadata.gz: 0da457627a261ffda7837260a6b66294a383971e653ea3e3f05299cb8f672f8f
4
+ data.tar.gz: b02dc7da45e1e76386635952414d57c0c22727fa6e4c6e0968e5e55db58266d3
5
5
  SHA512:
6
- metadata.gz: a250438190ceec15cfc5bebf1d73dffa1a07c0f3c5056b39ff180273abdd37dc16c0b8e2a69e16f7493730ac4cb017b86a08c6890933f714fc91010742a15e12
7
- data.tar.gz: d1fec1808da818d9d241ecd3dede1253f60f4e4d2fde4b260433b32d57b8e0bc4714c1afa00a0746e7317fadb0de61f323f48ca7443b9d80610d5781bfd635d3
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 (`time_stop`),
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 (`time_prepend`),
391
- + how many minutes the stream stays active after a talk (`time_extend`),
392
- + how long a pause between two consecutive talks has to be for the stream to pause (`time_pause`), and
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
- time_stop: 240 # in minutes
402
+ stop: 240 # in minutes
403
403
  streaming:
404
404
  enable: true
405
- time_pause: 60 # in minutes
406
- time_prepend: 5 # in minutes
407
- time_extend: 5 # in minutes
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 (`live`, see the section _Live Indications & Streaming_ above).
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
- // Grey out when in past
310
- if (!livePast[i].classList.contains('text-secondary')) {
311
- livePast[i].classList.add('text-secondary');
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 < roomStart - streamPrepend*60) {
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 > roomEnd + streamExtend*60) {
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
- linksStr += '<a href="' + link.href + '" class="btn btn-light m-1'
544
- if (link.disabled) {
545
- linksStr += ' disabled';
558
+ // Skip empty links
559
+ if ((link.name == '' && !link.icon) || link.href == '') {
560
+ continue;
546
561
  }
547
- linksStr += '">';
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>&nbsp;';
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
  }
@@ -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
- const d = new Date($(this).data('date'));
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 -%}
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.time_stop | default: 240 -%}
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.time_prepend | default: 5 -%}
6
- {%- assign offset_end = site.conference.live.streaming.time_extend | default: 5 -%}
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.title | default: "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.time_pause | default: 60 }},
35
- "prepend": {{ site.conference.live.streaming.time_prepend | default: 5 }},
36
- "extend": {{ site.conference.live.streaming.time_extend | default: 5 }}
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": "{{ room.live }}"
34
+ "href": "{{ room_live_href }}"
27
35
  }
28
36
  {%- endif -%}
29
37
  {%- endfor %}
@@ -6,7 +6,7 @@
6
6
  {% if page.title %}
7
7
  {{ page.title }}
8
8
  {% else %}
9
- {{ site.data.lang[site.conference.lang].location.title | default: "Location" }}
9
+ {{ site.data.lang[site.conference.lang].location.directions | default: "Directions" }}
10
10
  {% endif %}
11
11
  </h1>
12
12
 
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.title | default: "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.5.0
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-19 00:00:00.000000000 Z
11
+ date: 2022-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll