jekyll-theme-conference 2.3.1 → 2.5.2

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.
@@ -22,13 +22,63 @@
22
22
  {{ content }}
23
23
 
24
24
  {% if site.conference.main.links %}
25
- <p class="lead d-print-none">
25
+ <div class="lead d-print-none">
26
26
  {% for link in site.conference.main.links %}
27
- {% assign link_styleclass = "btn btn-outline-primary btn-lg mt-2" %}
28
- {% include partials/get_link.html %}
29
- {{ link_tag }}
30
- {{ link.name }}
31
- </a>
27
+
28
+ {% if link.menu %}
29
+ <div class="dropdown d-inline">
30
+ <a class="btn btn-outline-primary btn-lg mt-2 dropdown-toggle" href="#" role="button" id="main-dropdown{{ forloop.index0 }}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
31
+ {{ link.name }}
32
+ </a>
33
+ <div class="dropdown-menu" aria-labelledby="main-dropdown{{ forloop.index0 }}">
34
+ {% assign parent_link = link %}
35
+ {% for link in parent_link.menu %}
36
+ {% assign link_styleclass = "dropdown-item" %}
37
+ {% include partials/get_link.html %}
38
+ {{ link_tag }}
39
+ {{ link.name }}
40
+ </a>
41
+ {% endfor %}
42
+ </div>
43
+ </div>
44
+
45
+ {% elsif link.live %}
46
+ {% include partials/get_conf_time.html %}
47
+ {% assign time_start = conf_start %}
48
+ {% assign time_end = conf_end %}
49
+ {% include partials/get_timestamp.html %}
50
+
51
+ {% assign offset_start = site.conference.live.streaming.start_early | default: 0 %}
52
+ {% assign offset_end = site.conference.live.streaming.end_late | default: 0 %}
53
+ {% assign timestamp_start = offset_start | times: -60 | plus: timestamp_start %}
54
+ {% assign timestamp_end = offset_end | times: 60 | plus: timestamp_end %}
55
+
56
+ {% if link.name %}
57
+ {% assign link_name = link.name %}
58
+ {% else %}
59
+ {% assign link_name = site.data.lang[site.conference.lang].live.streaming | default: "Live Stream" %}
60
+ {% endif %}
61
+
62
+ <span class="live-show d-none" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
63
+ {% if site.conference.live.streaming %}
64
+ <a class="btn btn-outline-primary btn-lg mt-2" title="{{ link_name }}" data-toggle="modal" data-target="#stream-modal" data-room="" href="#">
65
+ {% else %}
66
+ {% assign link_styleclass = "btn btn-outline-primary btn-lg mt-2" %}
67
+ {% include partials/get_link.html %}
68
+ {{ link_tag }}
69
+ {% endif %}
70
+
71
+ {{ link_name }}
72
+ </a>
73
+ </span>
74
+
75
+ {% else %}
76
+ {% assign link_styleclass = "btn btn-outline-primary btn-lg mt-2" %}
77
+ {% include partials/get_link.html %}
78
+ {{ link_tag }}
79
+ {{ link.name }}
80
+ </a>
81
+ {% endif %}
32
82
  {% endfor %}
33
83
  </p>
34
84
  {% endif %}
@@ -1,50 +1,7 @@
1
1
  {% include partials/header.html %}
2
2
 
3
- {% for room in site.data.program %}
4
- {% assign t = room.talks | first %}
5
- {% include partials/get_talk_time.html %}
6
-
7
- {% assign update_var = false %}
8
-
9
- {% unless start_hour %}
10
- {% assign update_var = true %}
11
- {% else %}
12
- {% if talk_start_hour < start_hour %}
13
- {% assign update_var = true %}
14
- {% elsif talk_start_hour == start_hour and talk_start_min < start_min %}
15
- {% assign update_var = true %}
16
- {% endif %}
17
- {% endunless %}
18
-
19
- {% if update_var %}
20
- {% assign start_hour = talk_start_hour %}
21
- {% assign start_min = talk_start_min %}
22
- {% endif %}
23
-
24
- {% assign t = room.talks | last %}
25
- {% include partials/get_talk_time.html %}
26
-
27
- {% assign update_var = false %}
28
-
29
- {% unless end_hour %}
30
- {% assign update_var = true %}
31
- {% else %}
32
- {% if talk_end_hour > end_hour %}
33
- {% assign update_var = true %}
34
- {% elsif talk_end_hour == end_hour and talk_end_min > end_min %}
35
- {% assign update_var = true %}
36
- {% endif %}
37
- {% endunless %}
38
-
39
- {% if update_var %}
40
- {% assign end_hour = talk_end_hour %}
41
- {% assign end_min = talk_end_min %}
42
- {% endif %}
43
- {% endfor %}
44
-
45
- {% assign total_duration_min = end_hour | minus: start_hour | times: 60 | minus: start_min | plus: end_min %}
46
- {% assign nbr_steps = total_duration_min | divided_by: site.conference.program.time_steps %}
47
-
3
+ {% include partials/get_conf_time.html %}
4
+ {% assign nbr_steps = conf_duration_min | divided_by: site.conference.program.time_steps %}
48
5
 
49
6
  <h1 class="display-5 mb-4">
50
7
  {% if page.title %}
@@ -94,8 +51,8 @@
94
51
  {% assign z-index-max = 999 %}
95
52
 
96
53
  {% for i in (1..nbr_steps) %}
97
- {% assign current_hour = i | minus: 1 | times: site.conference.program.time_steps | plus: start_min | divided_by: 60 | floor | plus: start_hour | modulo: 24 %}
98
- {% assign current_min = i | minus: 1 | times: site.conference.program.time_steps | plus: start_min | modulo: 60 %}
54
+ {% assign current_hour = i | minus: 1 | times: site.conference.program.time_steps | plus: conf_start_min | divided_by: 60 | floor | plus: conf_start_hour | modulo: 24 %}
55
+ {% assign current_min = i | minus: 1 | times: site.conference.program.time_steps | plus: conf_start_min | modulo: 60 %}
99
56
  {% if current_min < 10 %}
100
57
  {% assign current_time = current_hour | append: ':0' | append: current_min %}
101
58
  {% else %}
@@ -157,6 +114,9 @@
157
114
  {% include partials/get_main_category.html %}
158
115
  <td rowspan="{{ talk_nbr_steps }}" class="alert alert-{{ main_cat_color }} shadow-sm" style="z-index: {{ z-index-max | minus: i }}">
159
116
 
117
+ {% assign live_button_styleclass = "mb-2" %}
118
+ {% include partials/live_button.html %}
119
+
160
120
  <p class="mb-2">
161
121
  {% include partials/show_talk.html %}
162
122
  </p>
@@ -1,4 +1,7 @@
1
- {% include partials/header.html %}
1
+ {%- assign this_room = page -%}
2
+
3
+ {%- unless this_room.hide or site.conference.location.hide -%}
4
+ {%- include partials/header.html -%}
2
5
 
3
6
  <!-- title for print: -->
4
7
  <h1 class="display-5 mb-3 d-none d-print-inline">
@@ -10,7 +13,6 @@
10
13
  {{ site.data.lang[site.conference.lang].location.title | default: "Location" }}
11
14
  </h1>
12
15
 
13
- {% assign this_room = page %}
14
16
  {% include partials/navbar_rooms.html %}
15
17
 
16
18
  {{ content }}
@@ -31,6 +33,9 @@
31
33
  <div class="flex-column">
32
34
  {% include partials/get_talk_time.html %}
33
35
  {% include partials/show_talk_time.html %}
36
+
37
+ {% assign live_button_styleclass = "mb-1" %}
38
+ {% include partials/live_button.html %}
34
39
  </div>
35
40
  <div class="flex-column ml-2 pl-2 mb-2 border-soft-{{ main_cat_color }}">
36
41
  <p class="mb-0">
@@ -57,4 +62,5 @@
57
62
 
58
63
  </ul>
59
64
 
60
- {% include partials/footer.html %}
65
+ {%- include partials/footer.html -%}
66
+ {%- endunless -%}
@@ -1,6 +1,7 @@
1
- {% include partials/header.html %}
1
+ {%- assign speaker = page -%}
2
2
 
3
- {% assign speaker = page %}
3
+ {%- unless speaker.hide -%}
4
+ {%- include partials/header.html -%}
4
5
 
5
6
  <p class="h6">
6
7
  {{ site.data.lang[site.conference.lang].speaker.title | default: "Speaker" }}
@@ -17,7 +18,6 @@
17
18
  {% if has_icon_links %}
18
19
  <ul class="list-unstyled">
19
20
  {% for link in speaker.links %}
20
- {% assign link_styleclass = "" %}
21
21
  {% include partials/get_link.html %}
22
22
 
23
23
  {% if link_icon %}
@@ -83,6 +83,9 @@
83
83
  <div class="flex-column ml-2 pl-2 mb-2 border-soft-{{ main_cat_color }}">
84
84
  <p class="mb-0">
85
85
  {% include partials/show_talk.html %}
86
+
87
+ {% assign live_button_styleclass = "ml-2" %}
88
+ {% include partials/live_button.html %}
86
89
  </p>
87
90
  </div>
88
91
  </li>
@@ -102,4 +105,5 @@
102
105
  </a>
103
106
  </p>
104
107
 
105
- {% include partials/footer.html %}
108
+ {%- include partials/footer.html -%}
109
+ {%- endunless -%}
@@ -29,6 +29,13 @@
29
29
  {% include partials/list_speakers.html %}
30
30
  </p>
31
31
  <p class="mb-0">
32
+ {% for r in site.data.program %}
33
+ {% for t in r.talks %}
34
+ {% if talk.name == t.name %}
35
+ {% include partials/live_button.html %}
36
+ {% endif %}
37
+ {% endfor %}
38
+ {% endfor %}
32
39
  {% include partials/list_sub_categories.html %}
33
40
 
34
41
  {% include partials/get_link_types.html %}
@@ -39,7 +46,7 @@
39
46
  {% include partials/get_link.html %}
40
47
  {% if link_icon %}
41
48
  {{ link_tag -}}
42
- <i class="fas fa-{{ link_icon }} pr-1"></i></a>
49
+ <i class="fas fa-{{ link_icon }} p-1"></i></a>
43
50
  {% endif %}
44
51
  {% endfor %}
45
52
  </span>
@@ -1,6 +1,7 @@
1
- {% include partials/header.html %}
1
+ {%- assign talk = page -%}
2
2
 
3
- {% assign talk = page %}
3
+ {%- unless talk.hide -%}
4
+ {%- include partials/header.html -%}
4
5
 
5
6
  <div class="d-flex flex-lg-row flex-column container-fluid mb-2 p-0">
6
7
  <div class="h6 mt-2 mb-0 mr-1 pr-1 pb-1">
@@ -32,12 +33,24 @@
32
33
  {% for t in r.talks %}
33
34
  {% if talk.name == t.name %}
34
35
 
36
+ {% if site.conference.live %}
37
+ {% assign time_start = t.time_start %}
38
+ {% assign time_end = t.time_end %}
39
+ {% include partials/get_timestamp.html %}
40
+ <span class="live-hide" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
41
+ {% endif %}
42
+
35
43
  {% include partials/get_talk_time.html %}
36
44
  <span class="d-none d-sm-inline">
37
45
  {{ site.data.lang[site.conference.lang].pronoun.at | default: "at" }}
38
46
  </span>
39
47
  {% include partials/show_talk_time.html %}
40
48
 
49
+ {% if site.conference.live %}
50
+ </span>
51
+ {% include partials/live_button.html %}
52
+ {% endif %}
53
+
41
54
  {% assign room = site.rooms | where: 'name', r.room | first %}
42
55
  <span class="d-none d-sm-inline ml-1">
43
56
  {{ site.data.lang[site.conference.lang].pronoun.in | default: "in" }}
@@ -107,4 +120,5 @@
107
120
  </a>
108
121
  </p>
109
122
 
110
- {% include partials/footer.html %}
123
+ {%- include partials/footer.html -%}
124
+ {%- endunless -%}
@@ -72,6 +72,17 @@ $fa-font-path: '/assets/webfonts' !default;
72
72
  margin-bottom: 0;
73
73
  }
74
74
 
75
+ // Live button icon
76
+ .live-button > object {
77
+ width: 0.85em;
78
+ height: 0.85em;
79
+ color: white;
80
+ }
81
+ // Live button font size in navigation bar
82
+ .nav-link .live-button {
83
+ font-size: 1em;
84
+ }
85
+
75
86
  // Program
76
87
 
77
88
  // Sticky header and first column
@@ -140,6 +151,10 @@ $fa-font-path: '/assets/webfonts' !default;
140
151
  // Program per Room
141
152
  .list-program li > div.flex-column:first-of-type {
142
153
  width: 4em;
154
+
155
+ & > * {
156
+ width: 4.6em;
157
+ }
143
158
  }
144
159
 
145
160
  // Speaker
@@ -163,28 +178,6 @@ $fa-font-path: '/assets/webfonts' !default;
163
178
  }
164
179
  }
165
180
 
166
- // Modal Iframe
167
- // Adapt iframe size to window while preserving video ratio
168
- .modal-body {
169
- position: relative;
170
- width: 100%;
171
- height: 0;
172
- padding-bottom: 56.25%;
173
-
174
- iframe {
175
- position: absolute;
176
- width: 100%;
177
- height: 100%;
178
- left: 0;
179
- top: 0;
180
- }
181
- }
182
-
183
- // Add pointer cursor to links opening modals
184
- .cursor-pointer {
185
- cursor: pointer;
186
- }
187
-
188
181
 
189
182
  // Print
190
183
  @media print {
@@ -214,4 +207,12 @@ $fa-font-path: '/assets/webfonts' !default;
214
207
  .table th {
215
208
  position: inherit;
216
209
  }
210
+
211
+ // Remove live buttons
212
+ .live-show {
213
+ display: none;
214
+ }
215
+ .live-hide {
216
+ display: inline-block !important;
217
+ }
217
218
  }
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!--
3
+ Original source of icon:
4
+ Font Awesome Free 5.15.1 by @fontawesome
5
+ https://fontawesome.com/license/free
6
+ CC BY 4.0 https://creativecommons.org/licenses/by/4.0/
7
+
8
+ Modified as following:
9
+ - Original path split from one into three separate paths (for each of the visual distinctive shapes)
10
+ - Animation of each path
11
+ - Removed attributes from SVG element to pass W3 validator
12
+ -->
13
+ <svg
14
+ focusable="false"
15
+ role="img"
16
+ viewBox="0 0 448 512"
17
+ xmlns="http://www.w3.org/2000/svg">
18
+ <path
19
+ id="dot"
20
+ fill="white"
21
+ d="M 128.081,415.959 C 128.081,451.328 99.409,480 64.04,480 28.671,480 0,451.328 0,415.959 0,380.59 28.672,351.918 64.041,351.918 c 35.369,0 64.04,28.673 64.04,64.041 z">
22
+ <animate
23
+ id="dot_hide"
24
+ attributeType="CSS"
25
+ attributeName="opacity"
26
+ from="0"
27
+ to="0"
28
+ dur="500ms"
29
+ begin="0s;dot_animate.end+7.35s" />
30
+ <animate
31
+ id="dot_animate"
32
+ attributeType="CSS"
33
+ attributeName="opacity"
34
+ from="0"
35
+ to="1"
36
+ dur="150ms"
37
+ begin="dot_hide.end" />
38
+ </path>
39
+ <path
40
+ id="arc_small"
41
+ fill="white"
42
+ d="M 303.741,463.209 C 295.387,308.609 171.556,184.622 16.791,176.259 7.656,175.765 0,183.105 0,192.253 v 48.069 c 0,8.415 6.49,15.472 14.887,16.018 111.832,7.284 201.473,96.702 208.772,208.772 0.547,8.397 7.604,14.887 16.018,14.887 h 48.069 c 9.149,10e-4 16.489,-7.655 15.995,-16.79 z">
43
+ <animate
44
+ id="arc_small_hide"
45
+ attributeType="CSS"
46
+ attributeName="opacity"
47
+ from="0"
48
+ to="0"
49
+ dur="650ms"
50
+ begin="dot_hide.begin" />
51
+ <animate
52
+ id="arc_small_animate"
53
+ attributeType="CSS"
54
+ attributeName="opacity"
55
+ from="0"
56
+ to="1"
57
+ dur="200ms"
58
+ begin="arc_small_hide.end" />
59
+ </path>
60
+ <path
61
+ id="arc_large"
62
+ fill="white"
63
+ d="M 447.99,463.497 C 439.596,229.677 251.465,40.445 16.503,32.01 7.473,31.686 0,38.981 0,48.016 v 48.068 c 0,8.625 6.835,15.645 15.453,15.999 191.179,7.839 344.627,161.316 352.465,352.465 0.353,8.618 7.373,15.453 15.999,15.453 h 48.068 c 9.034,-10e-4 16.329,-7.474 16.005,-16.504 z">
64
+ <animate
65
+ id="arc_large_hide"
66
+ attributeType="CSS"
67
+ attributeName="opacity"
68
+ from="0"
69
+ to="0"
70
+ dur="850ms"
71
+ begin="dot_hide.begin" />
72
+ <animate
73
+ id="arc_large_animate"
74
+ attributeType="CSS"
75
+ attributeName="opacity"
76
+ from="0"
77
+ to="1"
78
+ dur="250ms"
79
+ begin="arc_large_hide.end" />
80
+ </path>
81
+ </svg>
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: 2.3.1
4
+ version: 2.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorenz Schmid
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-03 00:00:00.000000000 Z
11
+ date: 2020-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -62,6 +62,7 @@ files:
62
62
  - LICENSE.md
63
63
  - README.md
64
64
  - _includes/js/bootstrap.js
65
+ - _includes/js/conference-live.js
65
66
  - _includes/js/conference-map.js
66
67
  - _includes/js/conference-modal.js
67
68
  - _includes/js/conference.js
@@ -74,15 +75,19 @@ files:
74
75
  - _includes/js/syncscroll.js
75
76
  - _includes/partials/checks.html
76
77
  - _includes/partials/footer.html
78
+ - _includes/partials/get_conf_time.html
77
79
  - _includes/partials/get_link.html
78
80
  - _includes/partials/get_link_types.html
79
81
  - _includes/partials/get_main_category.html
80
82
  - _includes/partials/get_talk_time.html
83
+ - _includes/partials/get_timestamp.html
81
84
  - _includes/partials/header.html
82
85
  - _includes/partials/info_bar.html
83
86
  - _includes/partials/list_categories.html
84
87
  - _includes/partials/list_speakers.html
85
88
  - _includes/partials/list_sub_categories.html
89
+ - _includes/partials/live-modal.html
90
+ - _includes/partials/live_button.html
86
91
  - _includes/partials/navbar.html
87
92
  - _includes/partials/navbar_rooms.html
88
93
  - _includes/partials/show_room.html
@@ -90,6 +95,7 @@ files:
90
95
  - _includes/partials/show_talk_duration.html
91
96
  - _includes/partials/show_talk_time.html
92
97
  - _layouts/default.html
98
+ - _layouts/delete_hidden.html
93
99
  - _layouts/home.html
94
100
  - _layouts/location.html
95
101
  - _layouts/page.html
@@ -230,6 +236,7 @@ files:
230
236
  - _sass/leaflet/leaflet-locatecontrol.css
231
237
  - _sass/leaflet/leaflet.css
232
238
  - assets/css/main.scss
239
+ - assets/icons/live.svg
233
240
  - assets/js/main.js
234
241
  - assets/webfonts/fa-brands-400.eot
235
242
  - assets/webfonts/fa-brands-400.svg