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