jekyll-theme-conference 3.6.1 → 3.6.3

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: 64608f074739a5b9544e9c1e620c7801330e4a22ea778b940018f493b6334100
4
- data.tar.gz: 5d74b4841bbfcc28f740a9b5464fbde28b8257dd98499c77e938c56865b15378
3
+ metadata.gz: 61b7f9271a152b1368fb216342281bceed52d157e63866a0af293ff9e2c19686
4
+ data.tar.gz: 193a60a8ea2c1559279dfdd05262681d1df8cc1e1e990d8a76bbdccc4f8a987f
5
5
  SHA512:
6
- metadata.gz: 5ebd2f83933b0aed0216e34cc7ed10896531dd24c897d465af591cbeecaf8763027358570163b94bf9d920406f4b8268acda84fc72733882ea5904ade4f58ac6
7
- data.tar.gz: 0d2c4d6c3e3ee34a390889d1b59153816ac6cdcc0f4a7c1a298e9f79f6b4fbada379b7e0d2335c9c5b3af2d781b69b32e8c4add0162c082400ce7722c6c0c1d0
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 JavaScript Library [Leaflet](https://leafletjs.com/) and can be customized by editing the `assets/js/main.js` file, e.g. adding additional layers with markers, text, or shapes to the map. To start, copy simply the file from this repository and make use of the initialized global variable `window.conference.map` pointing to the Leaflet container.
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
- Example:
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
 
@@ -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
- {% include js/lib/leaflet.js %}
26
- {% include js/lib/leaflet-easybutton.js %}
27
- {% include js/lib/leaflet-locatecontrol.js %}
28
- {% include js/lib/leaflet-providers.js %}
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
- {% include js/map.js %}
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
- {% include js/live.js %}
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 (name == 'config') {
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
- // Return room object for given room name
363
- if (roomName in data.rooms) {
364
- return data.rooms[roomName];
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
- return data.rooms[Object.keys(data.rooms)[0]];
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 data.talks) {
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 false;
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 false;
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
- if (talksHere) {
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 data.talks) {
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 (roomStart == 0 || roomStart > crntRoomStart) {
460
- roomStart = crntRoomStart;
461
- }
462
- if (roomEnd == 0 || roomEnd < crntRoomEnd) {
463
- roomEnd = crntRoomEnd;
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
- setStreamIframeSrc(room.href);
506
-
507
- if (!freezeTime) {
508
- if (pauseNext) {
509
- streamVideoTimer = setTimeout(setStreamVideo, delayStart(pauseNext.start + streamExtend*60) * 1000, roomName);
510
- }
511
- else {
512
- streamVideoTimer = setTimeout(setStreamVideo, delayStart(roomEnd + streamExtend*60) * 1000, roomName);
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 = data.speakers[talkNext.speakers[i]];
543
- if (speaker.href == '') {
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
- roomName = room.name;
648
+ if (room !== {}) {
649
+ roomName = room.name;
607
650
 
608
- setStreamVideo(roomName);
609
- setStreamInfo(roomName);
651
+ setStreamVideo(roomName);
652
+ setStreamInfo(roomName);
610
653
 
611
- streamModal.find('#stream-button' + room.id).addClass('active');
612
- streamModal.find('#stream-select').val(room.id);
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.location.focus_conf).addTo(map);
14
+ }, lang.focus_conf).addTo(map);
15
15
 
16
16
  L.control.locate({
17
17
  flyTo: true,
18
18
  strings: {
19
- title: lang.location.focus_me
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/master/_data/lang.yml) to you local website folder?" -%}
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/master/_data/lang.yml)." -%}
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
- <link rel="preconnect" href="{{ room.live }}" />
29
- {%- endif -%}
30
- {%- endfor -%}
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
- <ul class="nav nav-pills d-print-none mb-3">
2
- <li class="nav-item">
3
- <a class="nav-link {% if page.name contains 'index' %}active{% endif %}" href="{{ site.conference.location.url | prepend: site.baseurl }}">
4
- {% if site.conference.location.navbar_title -%}
5
- {{- site.conference.location.navbar_title -}}
6
- {%- else -%}
7
- {{- site.data.lang[site.conference.lang].location.directions | default: "Directions" -}}
8
- {%- endif %}
9
- </a>
10
- </li>
11
- {%- for room in site.rooms -%}
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
- {%- if room.hide %}
14
- <span class="nav-item nav-link disabled">
15
- {{ room.name }}
16
- </span>
17
- {%- else %}
18
- <a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
19
- {{ room.name }}
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
- {%- endfor -%}
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
- {%- if room.hide or site.conference.location.hide %}
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
- {%- endunless -%}
47
- {%- endfor %}
48
- </ul>
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
- {%- 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 -%}
18
+ {%- include partials/get_room_live_href.html -%}
19
+ {%- unless room_live_href -%}
23
20
  {%- continue -%}
24
- {%- endif -%}
21
+ {%- endunless -%}
25
22
 
26
23
  {%- unless first_room -%}
27
24
  ,
data/_layouts/page.html CHANGED
@@ -1,7 +1,7 @@
1
1
  {% include partials/header.html %}
2
2
 
3
3
  {% if page.title -%}
4
- <h1 class="font-weight-light mb-2">{{ page.title }}</h1>
4
+ <h1 class="display-5 mb-3">{{ page.title }}</h1>
5
5
  {%- endif %}
6
6
 
7
7
  {{ content }}
@@ -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
- <iframe class="embed-responsive-item" src="{{ room.live }}" allowfullscreen></iframe>
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 master list
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.1
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: 2022-11-20 00:00:00.000000000 Z
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.2.32
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.2.32
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.7
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