jekyll-theme-conference 3.2.0 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -25
  3. data/_includes/js/conference.js +28 -17
  4. data/_includes/js/init.js +37 -0
  5. data/_includes/js/{bootstrap.js → lib/bootstrap.js} +0 -0
  6. data/_includes/js/{jquery-3.5.1.min.js → lib/jquery-3.5.1.min.js} +0 -0
  7. data/_includes/js/{leaflet-easybutton.js → lib/leaflet-easybutton.js} +0 -0
  8. data/_includes/js/{leaflet-locatecontrol.js → lib/leaflet-locatecontrol.js} +0 -0
  9. data/_includes/js/{leaflet-providers.js → lib/leaflet-providers.js} +0 -0
  10. data/_includes/js/{leaflet.js → lib/leaflet.js} +0 -0
  11. data/_includes/js/{popper.min.js → lib/popper.min.js} +0 -0
  12. data/_includes/js/{syncscroll.js → lib/syncscroll.js} +0 -0
  13. data/_includes/js/live.js +718 -0
  14. data/_includes/js/map.js +38 -0
  15. data/_includes/js/{conference-modal.js → modal.js} +13 -15
  16. data/_includes/js/{conference-program.js → program.js} +10 -17
  17. data/_includes/partials/checks.html +1 -1
  18. data/_includes/partials/footer.html +1 -1
  19. data/_includes/partials/get_enable_map.html +11 -0
  20. data/_includes/partials/get_live_timestamps.html +1 -1
  21. data/_includes/partials/get_page_description.html +23 -0
  22. data/_includes/partials/get_page_title.html +33 -0
  23. data/_includes/partials/get_talk_timestamp.html +2 -2
  24. data/_includes/partials/header.html +7 -4
  25. data/_includes/partials/list_page_meta.html +23 -0
  26. data/_includes/partials/list_speakers.html +11 -5
  27. data/_includes/partials/modal_live.html +3 -2
  28. data/_includes/partials/navbar.html +1 -1
  29. data/_includes/partials/navbar_rooms.html +5 -1
  30. data/_includes/partials/show_live_button.html +2 -2
  31. data/_layouts/config.html +78 -0
  32. data/_layouts/data.html +20 -2
  33. data/_layouts/home.html +1 -1
  34. data/_layouts/location.html +1 -1
  35. data/_layouts/page.html +4 -0
  36. data/_layouts/stream-overview.html +1 -1
  37. data/assets/js/config.json +3 -0
  38. metadata +24 -17
  39. data/_includes/js/conference-live.js +0 -701
  40. data/_includes/js/conference-map.js +0 -45
@@ -0,0 +1,38 @@
1
+ window.conference.mapConfig = (() => {
2
+ let config;
3
+ let lang;
4
+
5
+ let map;
6
+
7
+ const setup = (elId) => {
8
+ map = L.map(elId).setView(config.map.home_coord, config.map.default_zoom);
9
+
10
+ L.tileLayer.provider(config.map.map_provider).addTo(map);
11
+
12
+ L.easyButton('far fa-star', () => {
13
+ map.flyTo(config.map.home_coord, config.map.default_zoom);
14
+ }, lang.location.focus_conf).addTo(map);
15
+
16
+ L.control.locate({
17
+ flyTo: true,
18
+ strings: {
19
+ title: lang.location.focus_me
20
+ }
21
+ }).addTo(map);
22
+ };
23
+
24
+ const init = (c, l) => {
25
+ config = c;
26
+ lang = l;
27
+
28
+ const elId = 'map';
29
+
30
+ if (document.getElementById(elId)) {
31
+ setup(elId);
32
+ }
33
+ };
34
+
35
+ return {
36
+ init: init
37
+ };
38
+ })();
@@ -1,15 +1,15 @@
1
- window.conference.modal = (function () {
1
+ window.conference.modal = (() => {
2
2
 
3
- let show = function (el, event) {
4
- let button = $(event.relatedTarget);
3
+ const show = (el, event) => {
4
+ const button = $(event.relatedTarget);
5
5
 
6
- let href = button.data('href');
7
- let format = button.data('format');
8
- let title = button.data('title');
9
- let subtitle = button.data('subtitle');
10
- let footer = button.data('footer');
6
+ const href = button.data('href');
7
+ const format = button.data('format');
8
+ const title = button.data('title');
9
+ const subtitle = button.data('subtitle');
10
+ const footer = button.data('footer');
11
11
 
12
- let modal = $(el);
12
+ const modal = $(el);
13
13
  modal.find('iframe').attr('src', href);
14
14
 
15
15
  if (title) {
@@ -51,8 +51,8 @@ window.conference.modal = (function () {
51
51
  }
52
52
  };
53
53
 
54
- let hide = function (el) {
55
- let modal = $(el);
54
+ const hide = (el) => {
55
+ const modal = $(el);
56
56
 
57
57
  modal.find('.modal-title h3').text('');
58
58
  modal.find('.modal-title h5').text('').addClass('d-none');
@@ -60,8 +60,8 @@ window.conference.modal = (function () {
60
60
  modal.find('.modal-footer p').html('');
61
61
  };
62
62
 
63
- let init = function() {
64
- let elSel = '#link-modal';
63
+ const init = () => {
64
+ const elSel = '#link-modal';
65
65
 
66
66
  $(elSel).on('show.bs.modal', function (event) {
67
67
  show(this, event);
@@ -76,5 +76,3 @@ window.conference.modal = (function () {
76
76
  };
77
77
 
78
78
  })();
79
-
80
- window.conference.modal.init();
@@ -1,30 +1,25 @@
1
- // Vertical Scroll Sync
2
- {% include js/syncscroll.js %}
3
-
4
- window.conference.program = (function() {
5
- let updateHash = function (hash) {
6
- let scrollPosition = $('body').scrollTop() || $('html').scrollTop();
1
+ window.conference.program = (() => {
2
+ const updateHash = (hash) => {
3
+ const scrollPosition = document.documentElement.scrollTop;
7
4
  window.location.hash = hash;
8
- $('html,body').scrollTop(scrollPosition);
5
+ document.documentElement.scrollTop = scrollPosition;
9
6
  };
10
7
 
11
- let init = function () {
8
+ const init = () => {
12
9
  if ($('#day-list')) {
13
10
  // Switch to day if page load with hash
14
- var hash = window.location.hash;
11
+ const hash = window.location.hash;
15
12
  if (hash) {
16
13
  $('#day-list a[href="' + hash + '"]').tab('show');
17
14
  }
15
+
18
16
  // Switch to day if today
19
17
  else {
20
- let d = new Date();
21
- let dStr = d.getFullYear() +"-"+ (d.getMonth()+1) +"-"+ d.getDate()
22
- // since a timezone compensation is added when passed as string, today's date has also
23
- // to be passed as string (as it is done below)
24
- let today = new Date(dStr);
18
+ let today = new Date();
19
+ today.setHours(0,0,0,0);
25
20
 
26
21
  $('a[data-toggle="tab"]').each(function () {
27
- let d = new Date($(this).data('date'));
22
+ const d = new Date($(this).data('date'));
28
23
 
29
24
  if (today.getTime() === d.getTime()) {
30
25
  $(this).tab('show');
@@ -44,5 +39,3 @@ window.conference.program = (function() {
44
39
  init: init
45
40
  };
46
41
  })();
47
-
48
- window.conference.program.init();
@@ -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 != 6 -%}
7
+ {%- elsif site.data.lang.version != 7 -%}
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" -%}
@@ -4,7 +4,7 @@
4
4
 
5
5
  {%- include partials/modal_link.html -%}
6
6
 
7
- {%- if site.conference.live.streaming -%}
7
+ {%- if site.conference.live.streaming.enable -%}
8
8
  {%- include partials/modal_live.html -%}
9
9
  {%- endif -%}
10
10
 
@@ -0,0 +1,11 @@
1
+ {%- if site.conference.location.map -%}
2
+ {%- assign enable_map = true -%}
3
+ {%- else -%}
4
+ {%- assign enable_map = false -%}
5
+ {%- for page in site.pages -%}
6
+ {%- if page.map -%}
7
+ {%- assign enable_map = true -%}
8
+ {%- break -%}
9
+ {%- endif -%}
10
+ {%- endfor -%}
11
+ {%- endif -%}
@@ -1,7 +1,7 @@
1
1
  {%- assign min_pause = site.conference.live.time_stop | default: 240 -%}
2
2
  {%- assign min_pause = min_pause | times: 60 -%}
3
3
 
4
- {%- if site.conference.live.streaming -%}
4
+ {%- if site.conference.live.streaming.enable -%}
5
5
  {%- assign offset_start = site.conference.live.streaming.time_prepend | default: 5 -%}
6
6
  {%- assign offset_end = site.conference.live.streaming.time_extend | default: 5 -%}
7
7
  {%- else -%}
@@ -0,0 +1,23 @@
1
+ {%- unless site.preposition == empty -%}
2
+ {%- assign preposition = site.preposition -%}
3
+ {%- else -%}
4
+ {%- assign preposition = '-' -%}
5
+ {%- endunless -%}
6
+
7
+ {%- capture page_description -%}
8
+ {%- if page.layout == 'talk' -%}
9
+ {{ site.data.lang[site.conference.lang].talk.title | default: 'Talk' }} {{ site.data.lang[site.conference.lang].pronoun.by | default: 'by'}} {% include partials/list_speakers.html text_only=true %} {{ preposition }} {{ site.title }}
10
+ {%- elsif page.layout == 'speaker' -%}
11
+ {{ site.data.lang[site.conference.lang].speaker.title | default: 'Speaker' }} {{ preposition }} {{ site.title }}
12
+ {%- elsif site.description -%}
13
+ {{ site.description }}
14
+ {%- endif -%}
15
+ {%- endcapture -%}
16
+
17
+ {%- if page_description.empty and include.default -%}
18
+ {%- assign page_description = include.default -%}
19
+ {%- endif -%}
20
+
21
+ {%- if include.replace_quotes -%}
22
+ {%- assign page_description = page_description | replace: '"', "'" -%}
23
+ {%- endif -%}
@@ -0,0 +1,33 @@
1
+ {%- capture page_title -%}
2
+ {%- if page.layout == 'room' -%}
3
+ {{- page.name -}}
4
+ {%- elsif page.layout == 'speaker' -%}
5
+ {{- page.first_name }} {{ page.last_name -}}
6
+ {%- elsif page.layout == 'talk' -%}
7
+ {{- page.name -}}
8
+
9
+ {%- elsif page.title -%}
10
+ {{- page.title -}}
11
+
12
+ {%- else -%}
13
+ {%- if page.layout == 'location' -%}
14
+ {{- site.data.lang[site.conference.lang].location.title | default: "Location" -}}
15
+ {%- elsif page.layout == 'program' -%}
16
+ {{- site.data.lang[site.conference.lang].program.title | default: "Program" -}}
17
+ {%- elsif page.layout == 'speaker-overview' -%}
18
+ {{- site.data.lang[site.conference.lang].speaker.overview | default: "Speakers" -}}
19
+ {%- elsif page.layout == 'stream-overview' -%}
20
+ {{ site.data.lang[site.conference.lang].live.stream | default: "Live Streams" }}
21
+ {%- elsif page.layout == 'talk-overview' -%}
22
+ {{- site.data.lang[site.conference.lang].talk.overview | default: "Talks" -}}
23
+ {%- endif -%}
24
+ {%- endif -%}
25
+ {%- endcapture -%}
26
+
27
+ {%- if page_title == empty and include.default -%}
28
+ {%- assign page_title = include.default -%}
29
+ {%- endif -%}
30
+
31
+ {%- if include.replace_quotes -%}
32
+ {%- assign page_title = page_title | replace: '"', "'" -%}
33
+ {%- endif -%}
@@ -1,9 +1,9 @@
1
1
  {%- include partials/get_talk_time.html -%}
2
2
 
3
- {%- assign datetime_start = d.date | append: " " | append: time_start -%}
3
+ {%- assign datetime_start = d.date | append: " " | append: talk_start -%}
4
4
  {%- assign add_days_start = talk_start_day | times: 24 | times: 60 | times: 60 -%}
5
5
  {%- assign timestamp_start = datetime_start | date: "%s" | plus: add_days_start | date: "%s" -%}
6
6
 
7
- {%- assign datetime_end = d.date | append: " " | append: time_end -%}
7
+ {%- assign datetime_end = d.date | append: " " | append: talk_end -%}
8
8
  {%- assign add_days_end = talk_end_day | times: 24 | times: 60 | times: 60 -%}
9
9
  {%- assign timestamp_end = datetime_end | date: "%s" | plus: add_days_end | date: "%s" -%}
@@ -5,21 +5,24 @@
5
5
  <meta charset="utf-8" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
 
8
+ {% include partials/get_page_title.html -%}
8
9
  <title>
9
- {% unless page.name contains '.' %}{{ page.name }} - {% else %}{% if page.title %}{{ page.title }} - {% endif %}{% endunless %}{{ site.title }}
10
+ {{- page_title -}}
11
+ {%- unless page_title == empty %} - {% endunless -%}
12
+ {{- site.title -}}
10
13
  </title>
11
- <meta name="description" content="{{ site.description }}" />
14
+ {% include partials/list_page_meta.html %}
12
15
 
13
16
  <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css?t={{ site.time | date: "%s" }}" />
14
17
 
15
18
  <link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-regular-400.woff2" type="font/woff2" crossorigin="anonymous" />
16
19
  <link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-solid-900.woff2" type="font/woff2" crossorigin="anonymous" />
17
- {% if site.conference.live -%}
20
+ {%- if site.conference.live %}
18
21
  <link rel="prefetch" as="image" href="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml" crossorigin="anonymous" />
19
22
  <link rel="prefetch" as="fetch" href="{{ site.baseurl }}/assets/js/data.json" type="application/json" crossorigin="anonymous" />
20
23
  {%- endif %}
21
24
 
22
- {%- if site.conference.live.streaming -%}
25
+ {%- if site.conference.live.streaming.enable -%}
23
26
  {%- for room in site.rooms -%}
24
27
  {%- if room.live %}
25
28
  <link rel="preconnect" href="{{ room.live }}" />
@@ -0,0 +1,23 @@
1
+ {% unless site.conference.link_preview.disable -%}
2
+ {%- include partials/get_page_title.html default=site.title replace_quotes=true -%}
3
+ {%- include partials/get_page_description.html default=site.title replace_quotes=true -%}
4
+
5
+ <meta name="description" content="{{ page_description }}" />
6
+
7
+ <meta name="twitter:card" content="summary" />
8
+ {%- if site.conference.link_preview.img and site.conference.link_preview.img.twitter %}
9
+ <meta name="twitter:image" content="{{ site.conference.link_preview.img.twitter | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
10
+ {%- endif %}
11
+ <meta name="twitter:title" content="{{ page_title }}" />
12
+ <meta name="twitter:description" content="{{ page_description }}" />
13
+
14
+ <meta property="og:site_name" content="{{ site.title }}" />
15
+ {%- if site.conference.link_preview.img and site.conference.link_preview.img.open_graph %}
16
+ <meta property="og:image" content="{{ site.conference.link_preview.img.open_graph | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
17
+ {%- endif %}
18
+ <meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url }}" />
19
+ <meta property="og:title" content="{{ page_title }}" />
20
+ <meta property="og:description" content="{{ page_description }}" />
21
+ <meta property="og:type" content="website" />
22
+
23
+ {%- endunless %}
@@ -1,4 +1,4 @@
1
- {%- for speaker_name in talk.speakers -%}
1
+ {% for speaker_name in talk.speakers -%}
2
2
  {%- assign speaker = site.speakers | where: 'name', speaker_name | first -%}
3
3
  {%- if site.conference.speakers.show_firstname -%}
4
4
  {%- assign speaker_short = speaker.first_name | append: ' ' | append: speaker.last_name -%}
@@ -6,11 +6,17 @@
6
6
  {%- assign speaker_short = speaker.first_name | slice: 0 | append : '. ' | append: speaker.last_name -%}
7
7
  {%- endif -%}
8
8
 
9
- {%- if speaker.hide -%}
10
- {{ speaker_short }}
9
+ {%- if speaker.hide or include.text_only -%}
10
+ {{- speaker_short -}}
11
11
  {%- else -%}
12
- <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">{{ speaker_short }}</a>
12
+ <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">
13
+ {{- speaker_short -}}
14
+ </a>
13
15
  {%- endif -%}
14
- {%- if forloop.last != true %}, {% endif -%}
16
+
17
+ {%- unless forloop.last %}
18
+ {%- assign forloop_index_before_last = talk.speakers.size | minus: 1 -%}
19
+ {% if forloop.index == forloop_index_before_last and include.text_only %} {{ site.data.lang[site.conference.lang].pronoun.and | default: 'and' }} {% else %}, {% endif -%}
20
+ {%- endunless -%}
15
21
 
16
22
  {%- endfor -%}
@@ -26,17 +26,18 @@
26
26
  </p>
27
27
  <p class="font-weight-light mb-0" id="stream-info-speakers"></p>
28
28
  </div>
29
+ <div class="align-self-center m-0 mt-1" id="stream-info-links"></div>
29
30
  </div>
30
31
 
31
32
  <div class="modal-footer justify-content-around">
32
- {%- for room in site.rooms -%}
33
+ {% for room in site.rooms -%}
33
34
  <a id="stream-button{{ forloop.index }}" href="#" class="btn btn-outline-primary d-none d-sm-inline {% unless room.live %}disabled{% endunless %}" role="button" data-room="{{ room.name }}">
34
35
  {{ room.name }}
35
36
  </a>
36
37
  {%- endfor %}
37
38
  <div class="form-group w-100 d-block d-sm-none">
38
39
  <select class="form-control" id="stream-select">
39
- {%- for room in site.rooms -%}
40
+ {% for room in site.rooms -%}
40
41
  <option value="{{ forloop.index }}" {% unless room.live %}disabled{% endunless %}>{{ room.name }}</option>
41
42
  {%- endfor %}
42
43
  </select>
@@ -40,7 +40,7 @@
40
40
  {%- endif -%}
41
41
 
42
42
  <li class="nav-item live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
43
- {%- if site.conference.live.streaming %}
43
+ {%- if site.conference.live.streaming.enable %}
44
44
  <a class="nav-link" title="
45
45
  {%- if link.name -%}
46
46
  {{- link.name -}}
@@ -1,7 +1,11 @@
1
1
  <ul class="nav nav-pills d-print-none mb-3">
2
2
  <li class="nav-item">
3
3
  <a class="nav-link {% if page.name contains 'index' %}active{% endif %}" href="{{ site.conference.location.url | prepend: site.baseurl }}">
4
- {{ site.data.lang[site.conference.lang].location.directions | default: "Directions" }}
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 %}
5
9
  </a>
6
10
  </li>
7
11
  {%- for room in site.rooms -%}
@@ -1,7 +1,7 @@
1
1
  {%- if site.conference.live -%}
2
2
  {%- include partials/get_talk_timestamp.html -%}
3
3
 
4
- {%- if site.conference.live.streaming -%}
4
+ {%- if site.conference.live.streaming.enable -%}
5
5
  <a title="{{ link.name }}" {% if site.conference.live.streaming.external -%}
6
6
  href="{{ site.conference.live.streaming.external }}"
7
7
  {%- else -%}
@@ -12,7 +12,7 @@
12
12
  {%- endif %} class="live-show live-button badge badge-dark font-weight-normal text-center d-none {{ live_button_styleclass }}" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
13
13
  <object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
14
14
  {{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
15
- {%- if site.conference.live.streaming -%}
15
+ {%- if site.conference.live.streaming.enable -%}
16
16
  </a>
17
17
  {%- else -%}
18
18
  </span>
@@ -0,0 +1,78 @@
1
+ {
2
+ {%- include partials/get_enable_map.html -%}
3
+ {%- if enable_map %}
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 }}
8
+ },
9
+ {%- endif %}
10
+
11
+ {% if site.conference.live -%}
12
+ "live": {
13
+ "time": {
14
+ {% assign d = site.data.program.days | first -%}
15
+ {%- include partials/get_day_time.html -%}
16
+ {%- assign t = day_start_talk -%}
17
+
18
+ {%- include partials/get_talk_timestamp.html -%}
19
+ {%- assign conf_start = timestamp_start -%}
20
+
21
+ {%- assign d = site.data.program.days | last -%}
22
+ {%- include partials/get_day_time.html -%}
23
+ {%- assign t = day_end_talk -%}
24
+
25
+ {%- include partials/get_talk_timestamp.html -%}
26
+ {%- assign conf_end = timestamp_end -%}
27
+
28
+ "start": {{ conf_start }},
29
+ "end": {{ conf_end }}
30
+ },
31
+
32
+ "streaming": {
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 }}
37
+ },
38
+
39
+ "demo": {
40
+ "enable": {{ site.conference.live.demo.enable | default: "false" }},
41
+ "duration": {{ site.conference.live.demo.duration | default: 300 }},
42
+ "pause": {{ site.conference.live.demo.pause | default: 10 }}
43
+ }
44
+ },
45
+ {%- endif %}
46
+
47
+ "lang": {
48
+ {%- if enable_map %}
49
+ "map": {
50
+ "focus_conf": "{{ site.data.lang[site.conference.lang].location.focus_conf | default: "Center map on conference location" }}",
51
+ "focus_me": "{{ site.data.lang[site.conference.lang].location.focus_me | default: "Show me where I am" }}"
52
+ }
53
+ {%- endif -%}
54
+
55
+ {%- if site.conference.live and site.conference.live.streaming.enable -%}
56
+ {%- if enable_map %},{% endif %}
57
+ "live": {
58
+ "pre_stream": "{{ site.data.lang[site.conference.lang].live.pre_stream | default: "Live stream has not started yet." }}",
59
+ "post_stream": "{{ site.data.lang[site.conference.lang].live.post_stream | default: "Live stream has ended." }}",
60
+ "pause_stream": "{{ site.data.lang[site.conference.lang].live.pause_stream | default: "Live stream is currently paused." }}",
61
+ "time": {
62
+ "soon": "{{ site.data.lang[site.conference.lang].live.time.soon | default: "soon" }}",
63
+ "now": "{{ site.data.lang[site.conference.lang].live.time.now | default: "now" }}",
64
+ "in": "{{ site.data.lang[site.conference.lang].live.time.in | default: "in" }} ",
65
+ "since": "{{ site.data.lang[site.conference.lang].live.time.since | default: "since" }} ",
66
+ "weeks": "{{ site.data.lang[site.conference.lang].live.time.weeks | default: "weeks" }}",
67
+ "week": "{{ site.data.lang[site.conference.lang].live.time.week | default: "week" }}",
68
+ "days": "{{ site.data.lang[site.conference.lang].live.time.days | default: "days" }}",
69
+ "day": "{{ site.data.lang[site.conference.lang].live.time.day | default: "day" }}",
70
+ "hours": "{{ site.data.lang[site.conference.lang].live.time.hours | default: "hours" }}",
71
+ "hour": "{{ site.data.lang[site.conference.lang].live.time.hour | default: "hour" }}",
72
+ "minutes": "{{ site.data.lang[site.conference.lang].live.time.minutes | default: "minutes" }}",
73
+ "minute": "{{ site.data.lang[site.conference.lang].live.time.minute | default: "minute" }}"
74
+ }
75
+ }
76
+ {%- endif %}
77
+ }
78
+ }
data/_layouts/data.html CHANGED
@@ -1,5 +1,5 @@
1
- {% if site.conference.live and site.conference.live.streaming -%}
2
1
  {
2
+ {% if site.conference.live and site.conference.live.streaming.enable -%}
3
3
  "days": [
4
4
  {%- for d in site.data.program.days %}
5
5
  {
@@ -88,6 +88,23 @@
88
88
  {%- include partials/get_talk_timestamp.html %}
89
89
  "start": {{ timestamp_start }},
90
90
  "end": {{ timestamp_end }}
91
+
92
+ {%- if talk.live.links -%},
93
+ "live_links": [
94
+ {%- for link in talk.live.links %}
95
+ {
96
+ "name": "{{ link.name | replace: '"', '\"' }}",
97
+ "href": "{{ link.absolute_url | replace: '"', '%22' }}"
98
+ {%- if link.icon -%},
99
+ "icon": "{{ link.icon | replace: '"', '\"' }}"
100
+ {%- endif %}
101
+ {%- if link.disabled -%},
102
+ "disabled": true
103
+ {%- endif %}
104
+ }{%- unless forloop.last -%},{%- endunless -%}
105
+ {%- endfor %}
106
+ ]
107
+ {%- endif %}
91
108
  }{%- unless forloop.last -%},{%- endunless -%}
92
109
  {%- endfor -%}
93
110
  {%- endif -%}
@@ -99,5 +116,6 @@
99
116
  {%- endunless -%}
100
117
  {%- endfor %}
101
118
  }
119
+
120
+ {%- endif %}
102
121
  }
103
- {%- endif -%}
data/_layouts/home.html CHANGED
@@ -59,7 +59,7 @@
59
59
  {%- endif -%}
60
60
 
61
61
  <span class="live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
62
- {% if site.conference.live.streaming %}
62
+ {% if site.conference.live.streaming.enable %}
63
63
  <a class="{{ btn_default }}" title="{{ link_name }}" data-toggle="modal" data-target="#stream-modal" data-room="" href="#">
64
64
  {% else %}
65
65
  {% assign link_styleclass = "{{ btn_default }}" %}
@@ -18,7 +18,7 @@
18
18
 
19
19
  {{ content }}
20
20
 
21
- {% if site.conference.location.map.enable %}
21
+ {% if site.conference.location.map %}
22
22
  <div id="map" class="mt-4 mb-3"></div>
23
23
  {% endif %}
24
24
 
data/_layouts/page.html CHANGED
@@ -6,4 +6,8 @@
6
6
 
7
7
  {{ content }}
8
8
 
9
+ {% if page.map %}
10
+ <div id="map" class="mt-4 mb-3"></div>
11
+ {% endif %}
12
+
9
13
  {% include partials/footer.html %}
@@ -18,7 +18,7 @@
18
18
  <div class="row">
19
19
  {%- endif %}
20
20
 
21
- <div class="col-md">
21
+ <div class="col-md mb-4">
22
22
  <h3>{{ room.name }}</h3>
23
23
  <div class="embed-responsive embed-responsive-16by9">
24
24
  <iframe class="embed-responsive-item" src="{{ room.live }}" allowfullscreen></iframe>
@@ -0,0 +1,3 @@
1
+ ---
2
+ layout: config
3
+ ---