jekyll-theme-conference 3.5.0 → 3.6.1

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: 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