jekyll-theme-conference 3.2.0 → 3.5.0
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 +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>
|