jekyll-theme-conference 2.2.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  {% if room.hide or site.conference.location.hide %}
2
- <span class="badge badge-light font-weight-normal"><i class="far fa-square"></i> {{ room.name }}</span><!--
2
+ <span class="badge badge-light font-weight-normal text-left"><i class="far fa-square"></i> {{ room.name }}</span><!--
3
3
  {% else %}
4
4
  <a href="{{ room.url | prepend: site.baseurl }}" class="badge badge-light font-weight-normal"><i class="far fa-square"></i> {{ room.name }}</a><!--
5
5
  {% endif %}-->
@@ -1,3 +1,3 @@
1
- <span class="badge badge-light font-weight-normal">
1
+ <span class="badge badge-light font-weight-normal text-left">
2
2
  <i class="fas fa-stopwatch"></i> {{ talk_duration_min }}min
3
3
  </span>
@@ -1,3 +1,3 @@
1
- <a href="{{ site.conference.program.url | prepend: site.baseurl }}" class="badge badge-light font-weight-normal">
1
+ <a href="{{ site.conference.program.url | prepend: site.baseurl }}" class="badge badge-light font-weight-normal text-left">
2
2
  <i class="far fa-clock"></i> {{ talk_start_hour }}:{% if talk_start_min == 0 %}0{%endif %}{{ talk_start_min }}
3
3
  </a>
@@ -6,7 +6,7 @@
6
6
  {% if page.title %}
7
7
  {{ page.title }}
8
8
  {% else %}
9
- {{ site.data.lang[site.conference.lang].location.title }}
9
+ {{ site.data.lang[site.conference.lang].location.title | default: "Location" }}
10
10
  {% endif %}
11
11
  </h1>
12
12
 
@@ -1,63 +1,20 @@
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 %}
51
8
  {{ page.title }}
52
9
  {% else %}
53
- {{ site.data.lang[site.conference.lang].program.title }}
10
+ {{ site.data.lang[site.conference.lang].program.title | default: "Program" }}
54
11
  {% endif %}
55
12
  </h1>
56
13
 
57
14
  {{ content }}
58
15
 
59
16
  <div class="sticky-top syncscroll overflow-hidden" name="sync-table">
60
- <table class="table">
17
+ <table class="table mb-0">
61
18
  <thead>
62
19
  <tr>
63
20
  <th scope="col" class="text-center">#</th>
@@ -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>
@@ -190,7 +150,7 @@
190
150
  </div>
191
151
 
192
152
  {% if site.conference.talks.main_categories %}
193
- <h5 class="mt-4">{{ site.data.lang[site.conference.lang].talks.legend }}</h5>
153
+ <h5 class="mt-4">{{ site.data.lang[site.conference.lang].program.legend | default: "Caption" }}</h5>
194
154
  {% for main_cat in site.conference.talks.main_categories %}
195
155
  <div class="d-block d-sm-inline-block m-1 p-1 pl-2 pr-2 border-soft-{{ main_cat.color }} bg-soft-{{ main_cat.color }} font-weight-normal">
196
156
  {{ main_cat.name }}
@@ -7,7 +7,7 @@
7
7
 
8
8
  <!-- title shown in browser: -->
9
9
  <h1 class="display-5 mb-3 d-print-none">
10
- {{ site.data.lang[site.conference.lang].location.title }}
10
+ {{ site.data.lang[site.conference.lang].location.title | default: "Location" }}
11
11
  </h1>
12
12
 
13
13
  {% assign this_room = page %}
@@ -16,7 +16,7 @@
16
16
  {{ content }}
17
17
 
18
18
  <h5 class="mt-4 mb-2">
19
- {{ site.data.lang[site.conference.lang].location.talks }}:
19
+ {{ site.data.lang[site.conference.lang].location.talks | default: "Talks in this room" }}:
20
20
  </h5>
21
21
  <ul class="list-program list-unstyled">
22
22
  {% for r in site.data.program %}
@@ -31,6 +31,9 @@
31
31
  <div class="flex-column">
32
32
  {% include partials/get_talk_time.html %}
33
33
  {% include partials/show_talk_time.html %}
34
+
35
+ {% assign live_button_styleclass = "mb-1" %}
36
+ {% include partials/live_button.html %}
34
37
  </div>
35
38
  <div class="flex-column ml-2 pl-2 mb-2 border-soft-{{ main_cat_color }}">
36
39
  <p class="mb-0">
@@ -51,7 +54,7 @@
51
54
  {% endfor %}
52
55
  {% unless room_talks %}
53
56
  <li>
54
- <em>{{ site.data.lang[site.conference.lang].location.no_talks }}</em>
57
+ <em>{{ site.data.lang[site.conference.lang].location.no_talks | default: "no talks planned" }}</em>
55
58
  </li>
56
59
  {% endunless %}
57
60
 
@@ -4,7 +4,7 @@
4
4
  {% if page.title %}
5
5
  {{ page.title }}
6
6
  {% else %}
7
- {{ site.data.lang[site.conference.lang].speaker.overview }}
7
+ {{ site.data.lang[site.conference.lang].speaker.overview | default: "Speakers" }}
8
8
  {% endif %}
9
9
  </h1>
10
10
 
@@ -3,7 +3,7 @@
3
3
  {% assign speaker = page %}
4
4
 
5
5
  <p class="h6">
6
- {{ site.data.lang[site.conference.lang].speaker.title }}
6
+ {{ site.data.lang[site.conference.lang].speaker.title | default: "Speaker" }}
7
7
  </p>
8
8
 
9
9
  <h1 class="font-weight-light mb-3">
@@ -17,7 +17,6 @@
17
17
  {% if has_icon_links %}
18
18
  <ul class="list-unstyled">
19
19
  {% for link in speaker.links %}
20
- {% assign link_styleclass = "" %}
21
20
  {% include partials/get_link.html %}
22
21
 
23
22
  {% if link_icon %}
@@ -33,7 +32,7 @@
33
32
  {% endif %}
34
33
 
35
34
  {% if has_regular_links %}
36
- <h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].more_information }}:</h5>
35
+ <h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].more_information | default: "More Information" }}:</h5>
37
36
 
38
37
  <ul class="list-unstyled">
39
38
  {% for link in speaker.links %}
@@ -62,7 +61,7 @@
62
61
  {% endfor %}
63
62
 
64
63
  {% if active_speaker %}
65
- <h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].speaker.talks }}:</h5>
64
+ <h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].speaker.talks | default: "Talks at this conference" }}:</h5>
66
65
 
67
66
  <ul class="list-program list-unstyled">
68
67
  {% for r in site.data.program %}
@@ -83,6 +82,9 @@
83
82
  <div class="flex-column ml-2 pl-2 mb-2 border-soft-{{ main_cat_color }}">
84
83
  <p class="mb-0">
85
84
  {% include partials/show_talk.html %}
85
+
86
+ {% assign live_button_styleclass = "ml-2" %}
87
+ {% include partials/live_button.html %}
86
88
  </p>
87
89
  </div>
88
90
  </li>
@@ -98,7 +100,7 @@
98
100
  <p class="d-print-none mt-5">
99
101
  <a href="{{ page.collection | prepend: '/' | prepend: site.baseurl }}" class="btn btn-light">
100
102
  <i class="fas fa-users"></i>
101
- {{ site.data.lang[site.conference.lang].overview }}
103
+ {{ site.data.lang[site.conference.lang].overview | default: "Overview" }}
102
104
  </a>
103
105
  </p>
104
106
 
@@ -4,7 +4,7 @@
4
4
  {% if page.title %}
5
5
  {{ page.title }}
6
6
  {% else %}
7
- {{ site.data.lang[site.conference.lang].talk.overview }}
7
+ {{ site.data.lang[site.conference.lang].talk.overview | default: "Talks" }}
8
8
  {% endif %}
9
9
  </h1>
10
10
 
@@ -29,13 +29,20 @@
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 %}
35
42
  {% if has_icon_links and site.conference.talks.hide_icons != true %}
36
- <span class="{% if has_sub_categories %}ml-1{% endif %}">
43
+ <span class="ml-1">
37
44
  {% for link in talk.links %}
38
- {% assign link_styleclass = "" %}
45
+ {% assign link_styleclass = "text-secondary" %}
39
46
  {% include partials/get_link.html %}
40
47
  {% if link_icon %}
41
48
  {{ link_tag -}}
@@ -58,9 +65,9 @@
58
65
  {% endfor %}
59
66
  {% endfor %}
60
67
 
61
- {{ site.data.lang[site.conference.lang].pronoun.at }} {% include partials/show_talk_time.html %}
68
+ {{ site.data.lang[site.conference.lang].pronoun.at | default: "at" }} {% include partials/show_talk_time.html %}
62
69
 
63
- {{ site.data.lang[site.conference.lang].pronoun.in }} {% include partials/show_room.html %}
70
+ {{ site.data.lang[site.conference.lang].pronoun.in | default: "in" }} {% include partials/show_room.html %}
64
71
  </p>
65
72
  {% endif %}
66
73
 
@@ -32,20 +32,32 @@
32
32
  {% for t in r.talks %}
33
33
  {% if talk.name == t.name %}
34
34
 
35
+ {% if site.conference.live %}
36
+ {% assign time_start = t.time_start %}
37
+ {% assign time_end = t.time_end %}
38
+ {% include partials/get_timestamp.html %}
39
+ <span class="live-hide" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
40
+ {% endif %}
41
+
35
42
  {% include partials/get_talk_time.html %}
36
43
  <span class="d-none d-sm-inline">
37
- {{ site.data.lang[site.conference.lang].pronoun.at }}
44
+ {{ site.data.lang[site.conference.lang].pronoun.at | default: "at" }}
38
45
  </span>
39
46
  {% include partials/show_talk_time.html %}
40
47
 
48
+ {% if site.conference.live %}
49
+ </span>
50
+ {% include partials/live_button.html %}
51
+ {% endif %}
52
+
41
53
  {% assign room = site.rooms | where: 'name', r.room | first %}
42
54
  <span class="d-none d-sm-inline ml-1">
43
- {{ site.data.lang[site.conference.lang].pronoun.in }}
55
+ {{ site.data.lang[site.conference.lang].pronoun.in | default: "in" }}
44
56
  </span>
45
57
  {% include partials/show_room.html %}
46
58
 
47
59
  <span class="d-none d-sm-inline ml-1">
48
- {{ site.data.lang[site.conference.lang].pronoun.for }}
60
+ {{ site.data.lang[site.conference.lang].pronoun.for | default: "for" }}
49
61
  </span>
50
62
  {% include partials/show_talk_duration.html %}
51
63
 
@@ -61,13 +73,13 @@
61
73
  {% if has_icon_links %}
62
74
  <ul class="list-unstyled">
63
75
  {% for link in talk.links %}
64
- {% assign link_styleclass = "" %}
76
+ {% assign link_styleclass = "text-reset" %}
65
77
  {% include partials/get_link.html %}
66
78
 
67
79
  {% if link_icon %}
68
80
  <li class="mb-1 ml-2">
69
81
  {{ link_tag }}
70
- <i class="fas fa-{{ link_icon }} pr-1"></i>
82
+ <i class="fas fa-{{ link_icon }} pr-1 text-{{ main_cat_color }}"></i>
71
83
  {{ link.name }}
72
84
  </a>
73
85
  </li>
@@ -77,7 +89,7 @@
77
89
  {% endif %}
78
90
 
79
91
  {% if has_regular_links %}
80
- <h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].more_information }}:</h5>
92
+ <h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].more_information | default: "More information" }}:</h5>
81
93
 
82
94
  <ul class="list-unstyled">
83
95
  {% for link in talk.links %}
@@ -85,7 +97,7 @@
85
97
  {% include partials/get_link.html %}
86
98
 
87
99
  {% unless link_icon %}
88
- <li class="mb-1 ml-2 pl-2 border-soft-primary">
100
+ <li class="mb-1 ml-2 pl-2 border-soft-{{ main_cat_color }}">
89
101
  {{ link_tag }}
90
102
  {{ link.name }}
91
103
  </a>
@@ -98,12 +110,12 @@
98
110
  <p class="d-print-none mt-5">
99
111
  <a href="{{ page.collection | prepend: '/' | prepend: site.baseurl }}" class="btn btn-light">
100
112
  <i class="fas fa-bullhorn"></i>
101
- {{ site.data.lang[site.conference.lang].overview }}
113
+ {{ site.data.lang[site.conference.lang].overview | default: "Overview" }}
102
114
  </a>
103
115
 
104
116
  <a href="{{ site.conference.program.url | prepend: site.baseurl }}" class="btn btn-light">
105
117
  <i class="far fa-calendar-alt"></i>
106
- {{ site.data.lang[site.conference.lang].program.title }}
118
+ {{ site.data.lang[site.conference.lang].program.title | default: "Program" }}
107
119
  </a>
108
120
  </p>
109
121
 
@@ -67,11 +67,27 @@ $fa-font-path: '/assets/webfonts' !default;
67
67
 
68
68
  // General
69
69
 
70
+ // Show pointer cursor on links opening modals
71
+ .cursor-pointer {
72
+ cursor: pointer;
73
+ }
74
+
70
75
  // No bottom margin on info-bar
71
76
  .alert > p:last-of-type {
72
77
  margin-bottom: 0;
73
78
  }
74
79
 
80
+ // Live button icon
81
+ .live-button > object {
82
+ width: 0.85em;
83
+ height: 0.85em;
84
+ color: white;
85
+ }
86
+ // Live button font size in navigation bar
87
+ .nav-link .live-button {
88
+ font-size: 1em;
89
+ }
90
+
75
91
  // Program
76
92
 
77
93
  // Sticky header and first column
@@ -140,6 +156,10 @@ $fa-font-path: '/assets/webfonts' !default;
140
156
  // Program per Room
141
157
  .list-program li > div.flex-column:first-of-type {
142
158
  width: 4em;
159
+
160
+ & > * {
161
+ width: 4.6em;
162
+ }
143
163
  }
144
164
 
145
165
  // Speaker
@@ -163,28 +183,6 @@ $fa-font-path: '/assets/webfonts' !default;
163
183
  }
164
184
  }
165
185
 
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
186
 
189
187
  // Print
190
188
  @media print {
@@ -214,4 +212,12 @@ $fa-font-path: '/assets/webfonts' !default;
214
212
  .table th {
215
213
  position: inherit;
216
214
  }
215
+
216
+ // Remove live buttons
217
+ .live-show {
218
+ display: none;
219
+ }
220
+ .live-hide {
221
+ display: inline-block !important;
222
+ }
217
223
  }
@@ -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="0.5s"
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="0.15s"
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="0.65s"
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="0.2s"
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="0.85s"
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="0.25s"
79
+ begin="arc_large_hide.end" />
80
+ </path>
81
+ </svg>