jekyll-theme-conference 3.4.1 → 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 +16 -8
- data/_includes/js/conference.js +26 -16
- 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/footer.html +1 -1
- data/_includes/partials/get_live_timestamps.html +1 -1
- data/_includes/partials/header.html +1 -1
- data/_includes/partials/navbar.html +1 -1
- data/_includes/partials/show_live_button.html +2 -2
- data/_layouts/config.html +78 -0
- data/_layouts/data.html +3 -2
- data/_layouts/home.html +1 -1
- data/assets/js/config.json +3 -0
- metadata +17 -14
- data/_includes/js/conference-live.js +0 -720
- 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();
|
@@ -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 -%}
|
@@ -22,7 +22,7 @@
|
|
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 -%}
|
25
|
+
{%- if site.conference.live.streaming.enable -%}
|
26
26
|
{%- for room in site.rooms -%}
|
27
27
|
{%- if room.live %}
|
28
28
|
<link rel="preconnect" href="{{ room.live }}" />
|
@@ -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,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
|
{
|
@@ -116,5 +116,6 @@
|
|
116
116
|
{%- endunless -%}
|
117
117
|
{%- endfor %}
|
118
118
|
}
|
119
|
+
|
120
|
+
{%- endif %}
|
119
121
|
}
|
120
|
-
{%- 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 }}" %}
|
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.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorenz Schmid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -61,19 +61,20 @@ extra_rdoc_files: []
|
|
61
61
|
files:
|
62
62
|
- LICENSE.md
|
63
63
|
- README.md
|
64
|
-
- _includes/js/bootstrap.js
|
65
|
-
- _includes/js/conference-live.js
|
66
|
-
- _includes/js/conference-map.js
|
67
|
-
- _includes/js/conference-modal.js
|
68
|
-
- _includes/js/conference-program.js
|
69
64
|
- _includes/js/conference.js
|
70
|
-
- _includes/js/
|
71
|
-
- _includes/js/
|
72
|
-
- _includes/js/
|
73
|
-
- _includes/js/leaflet-
|
74
|
-
- _includes/js/leaflet.js
|
75
|
-
- _includes/js/
|
76
|
-
- _includes/js/
|
65
|
+
- _includes/js/init.js
|
66
|
+
- _includes/js/lib/bootstrap.js
|
67
|
+
- _includes/js/lib/jquery-3.5.1.min.js
|
68
|
+
- _includes/js/lib/leaflet-easybutton.js
|
69
|
+
- _includes/js/lib/leaflet-locatecontrol.js
|
70
|
+
- _includes/js/lib/leaflet-providers.js
|
71
|
+
- _includes/js/lib/leaflet.js
|
72
|
+
- _includes/js/lib/popper.min.js
|
73
|
+
- _includes/js/lib/syncscroll.js
|
74
|
+
- _includes/js/live.js
|
75
|
+
- _includes/js/map.js
|
76
|
+
- _includes/js/modal.js
|
77
|
+
- _includes/js/program.js
|
77
78
|
- _includes/partials/checks.html
|
78
79
|
- _includes/partials/footer.html
|
79
80
|
- _includes/partials/get_day_hash.html
|
@@ -103,6 +104,7 @@ files:
|
|
103
104
|
- _includes/partials/show_talk.html
|
104
105
|
- _includes/partials/show_talk_duration.html
|
105
106
|
- _includes/partials/show_talk_time.html
|
107
|
+
- _layouts/config.html
|
106
108
|
- _layouts/data.html
|
107
109
|
- _layouts/default.html
|
108
110
|
- _layouts/home.html
|
@@ -247,6 +249,7 @@ files:
|
|
247
249
|
- _sass/leaflet/leaflet.css
|
248
250
|
- assets/css/main.scss
|
249
251
|
- assets/icons/live.svg
|
252
|
+
- assets/js/config.json
|
250
253
|
- assets/js/data.json
|
251
254
|
- assets/js/main.js
|
252
255
|
- assets/webfonts/fa-brands-400.eot
|