jekyll-theme-conference 3.5.0 → 3.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3463207643540289c9e9bc5f6c7bf57a63d0b1f48f3dc72e4a0dac3f98d2034
4
- data.tar.gz: 1c475f305b05cea1a9866f025e2d215320b1b20a7c8ce8a79769d3e310732d3e
3
+ metadata.gz: 64608f074739a5b9544e9c1e620c7801330e4a22ea778b940018f493b6334100
4
+ data.tar.gz: 5d74b4841bbfcc28f740a9b5464fbde28b8257dd98499c77e938c56865b15378
5
5
  SHA512:
6
- metadata.gz: a250438190ceec15cfc5bebf1d73dffa1a07c0f3c5056b39ff180273abdd37dc16c0b8e2a69e16f7493730ac4cb017b86a08c6890933f714fc91010742a15e12
7
- data.tar.gz: d1fec1808da818d9d241ecd3dede1253f60f4e4d2fde4b260433b32d57b8e0bc4714c1afa00a0746e7317fadb0de61f323f48ca7443b9d80610d5781bfd635d3
6
+ metadata.gz: 5ebd2f83933b0aed0216e34cc7ed10896531dd24c897d465af591cbeecaf8763027358570163b94bf9d920406f4b8268acda84fc72733882ea5904ade4f58ac6
7
+ data.tar.gz: 0d2c4d6c3e3ee34a390889d1b59153816ac6cdcc0f4a7c1a298e9f79f6b4fbada379b7e0d2335c9c5b3af2d781b69b32e8c4add0162c082400ce7722c6c0c1d0
data/README.md CHANGED
@@ -110,7 +110,7 @@ To install:
110
110
  bundle
111
111
  ```
112
112
 
113
- 4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@2.0.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
113
+ 4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@v3.6.1"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
114
114
 
115
115
  5. Continue with the _Setup_ section further below to customize the theme and add some content for your conference
116
116
 
@@ -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
  }
data/_includes/js/map.js CHANGED
@@ -1,16 +1,16 @@
1
- window.conference.mapConfig = (() => {
1
+ window.conference.map = (() => {
2
2
  let config;
3
3
  let lang;
4
4
 
5
5
  let map;
6
6
 
7
7
  const setup = (elId) => {
8
- map = L.map(elId).setView(config.map.home_coord, config.map.default_zoom);
8
+ map = L.map(elId).setView(config.home_coord, config.default_zoom);
9
9
 
10
- L.tileLayer.provider(config.map.map_provider).addTo(map);
10
+ L.tileLayer.provider(config.map_provider).addTo(map);
11
11
 
12
12
  L.easyButton('far fa-star', () => {
13
- map.flyTo(config.map.home_coord, config.map.default_zoom);
13
+ map.flyTo(config.home_coord, config.default_zoom);
14
14
  }, lang.location.focus_conf).addTo(map);
15
15
 
16
16
  L.control.locate({
@@ -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
@@ -2,9 +2,9 @@
2
2
  {%- include partials/get_enable_map.html -%}
3
3
  {%- if enable_map %}
4
4
  "map": {
5
- "map_provider": "{{ site.conference.map.map_provider | default: 'OpenStreetMap.Mapnik' }}",
6
- "home_coord": [{{ site.conference.map.home_coord }}],
7
- "default_zoom": {{ site.conference.map.default_zoom | default: 17 }}
5
+ "map_provider": "{{ site.conference.location.map.map_provider | default: 'OpenStreetMap.Mapnik' }}",
6
+ "home_coord": [{{ site.conference.location.map.home_coord | default: '47.3744489, 47.3744489' }}],
7
+ "default_zoom": {{ site.conference.location.map.default_zoom | default: 17 }}
8
8
  },
9
9
  {%- endif %}
10
10
 
@@ -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 %}
File without changes
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.1
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-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -244,9 +244,9 @@ files:
244
244
  - _sass/font-awesome/scss/v4-shims.scss
245
245
  - _sass/font-awesome/solid.scss
246
246
  - _sass/font-awesome/v4-shims.scss
247
- - _sass/leaflet/leaflet-easybutton.css
248
- - _sass/leaflet/leaflet-locatecontrol.css
249
- - _sass/leaflet/leaflet.css
247
+ - _sass/leaflet/leaflet-easybutton.scss
248
+ - _sass/leaflet/leaflet-locatecontrol.scss
249
+ - _sass/leaflet/leaflet.scss
250
250
  - assets/css/main.scss
251
251
  - assets/icons/live.svg
252
252
  - assets/js/config.json
@@ -286,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
286
  - !ruby/object:Gem::Version
287
287
  version: '0'
288
288
  requirements: []
289
- rubygems_version: 3.2.32
289
+ rubygems_version: 3.3.7
290
290
  signing_key:
291
291
  specification_version: 4
292
292
  summary: Jekyll template for a conference website containing program, speaker, talks