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.
- checksums.yaml +4 -4
- data/README.md +107 -25
- data/_includes/js/conference.js +28 -17
- data/_includes/js/init.js +37 -0
- data/_includes/js/{bootstrap.js → lib/bootstrap.js} +0 -0
- data/_includes/js/{jquery-3.5.1.min.js → lib/jquery-3.5.1.min.js} +0 -0
- data/_includes/js/{leaflet-easybutton.js → lib/leaflet-easybutton.js} +0 -0
- data/_includes/js/{leaflet-locatecontrol.js → lib/leaflet-locatecontrol.js} +0 -0
- data/_includes/js/{leaflet-providers.js → lib/leaflet-providers.js} +0 -0
- data/_includes/js/{leaflet.js → lib/leaflet.js} +0 -0
- data/_includes/js/{popper.min.js → lib/popper.min.js} +0 -0
- data/_includes/js/{syncscroll.js → lib/syncscroll.js} +0 -0
- data/_includes/js/live.js +718 -0
- data/_includes/js/map.js +38 -0
- data/_includes/js/{conference-modal.js → modal.js} +13 -15
- data/_includes/js/{conference-program.js → program.js} +10 -17
- data/_includes/partials/checks.html +1 -1
- data/_includes/partials/footer.html +1 -1
- data/_includes/partials/get_enable_map.html +11 -0
- data/_includes/partials/get_live_timestamps.html +1 -1
- data/_includes/partials/get_page_description.html +23 -0
- data/_includes/partials/get_page_title.html +33 -0
- data/_includes/partials/get_talk_timestamp.html +2 -2
- data/_includes/partials/header.html +7 -4
- data/_includes/partials/list_page_meta.html +23 -0
- data/_includes/partials/list_speakers.html +11 -5
- data/_includes/partials/modal_live.html +3 -2
- data/_includes/partials/navbar.html +1 -1
- data/_includes/partials/navbar_rooms.html +5 -1
- data/_includes/partials/show_live_button.html +2 -2
- data/_layouts/config.html +78 -0
- data/_layouts/data.html +20 -2
- data/_layouts/home.html +1 -1
- data/_layouts/location.html +1 -1
- data/_layouts/page.html +4 -0
- data/_layouts/stream-overview.html +1 -1
- data/assets/js/config.json +3 -0
- metadata +24 -17
- data/_includes/js/conference-live.js +0 -701
- data/_includes/js/conference-map.js +0 -45
data/_includes/js/map.js
ADDED
@@ -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 = (
|
1
|
+
window.conference.modal = (() => {
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
const show = (el, event) => {
|
4
|
+
const button = $(event.relatedTarget);
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
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
|
-
|
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
|
-
|
55
|
-
|
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
|
-
|
64
|
-
|
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
|
-
|
2
|
-
|
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
|
-
|
5
|
+
document.documentElement.scrollTop = scrollPosition;
|
9
6
|
};
|
10
7
|
|
11
|
-
|
8
|
+
const init = () => {
|
12
9
|
if ($('#day-list')) {
|
13
10
|
// Switch to day if page load with hash
|
14
|
-
|
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
|
21
|
-
|
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
|
-
|
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 !=
|
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" -%}
|
@@ -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:
|
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:
|
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
|
-
{
|
10
|
+
{{- page_title -}}
|
11
|
+
{%- unless page_title == empty %} - {% endunless -%}
|
12
|
+
{{- site.title -}}
|
10
13
|
</title>
|
11
|
-
|
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
|
-
{
|
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
|
-
{
|
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 }}">
|
12
|
+
<a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">
|
13
|
+
{{- speaker_short -}}
|
14
|
+
</a>
|
13
15
|
{%- endif -%}
|
14
|
-
|
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
|
-
{
|
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
|
-
{
|
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
|
-
{
|
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 }}" %}
|
data/_layouts/location.html
CHANGED
data/_layouts/page.html
CHANGED
@@ -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>
|