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.
@@ -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
 
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
 
@@ -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 }}" %}
@@ -0,0 +1,3 @@
1
+ ---
2
+ layout: config
3
+ ---
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.1
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-14 00:00:00.000000000 Z
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/jquery-3.5.1.min.js
71
- - _includes/js/leaflet-easybutton.js
72
- - _includes/js/leaflet-locatecontrol.js
73
- - _includes/js/leaflet-providers.js
74
- - _includes/js/leaflet.js
75
- - _includes/js/popper.min.js
76
- - _includes/js/syncscroll.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