jekyll-theme-conference 2.4.1 → 2.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env bash
2
+
3
+ {% if site.conference.location.hide -%}
4
+ rm -r _site/rooms
5
+ rm -r _site/{{ site.conference.location.url | default: "location" }}
6
+ {% else -%}
7
+ {%- for room in site.rooms -%}
8
+ {%- if room.hide -%}
9
+ rm -r _site/{{ room.url | slice: 1, room.url.size }}
10
+ {% endif -%}
11
+ {%- endfor -%}
12
+ {%- endif -%}
13
+
14
+ {%- for speaker in site.speakers -%}
15
+ {%- if speaker.hide -%}
16
+ rm -r _site/{{ speaker.url | slice: 1, speaker.url.size }}
17
+ {% endif -%}
18
+ {%- endfor -%}
19
+
20
+ {%- for talk in site.talks -%}
21
+ {%- if talk.hide -%}
22
+ rm -r _site/{{ talk.url | slice: 1, talk.url.size }}
23
+ {% endif -%}
24
+ {%- endfor %}
25
+ rm _site/delete_hidden.sh
@@ -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,14 +18,12 @@
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 %}
24
24
  <li class="mb-1 ml-2">
25
25
  {{ link_tag }}
26
- <i class="fas fa-{{ link_icon }} pr-1"></i>
27
- {{ link.name }}
26
+ <i class="fas fa-{{ link_icon }} pr-1"></i>&nbsp;{{ link.name }}
28
27
  </a>
29
28
  </li>
30
29
  {% endif %}
@@ -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>
@@ -97,9 +99,9 @@
97
99
 
98
100
  <p class="d-print-none mt-5">
99
101
  <a href="{{ page.collection | prepend: '/' | prepend: site.baseurl }}" class="btn btn-light">
100
- <i class="fas fa-users"></i>
101
- {{ site.data.lang[site.conference.lang].overview | default: "Overview" }}
102
+ <i class="fas fa-users"></i>&nbsp;{{ site.data.lang[site.conference.lang].overview | default: "Overview" }}
102
103
  </a>
103
104
  </p>
104
105
 
105
- {% include partials/footer.html %}
106
+ {%- include partials/footer.html -%}
107
+ {%- 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" }}
@@ -67,8 +80,7 @@
67
80
  {% if link_icon %}
68
81
  <li class="mb-1 ml-2">
69
82
  {{ link_tag }}
70
- <i class="fas fa-{{ link_icon }} pr-1 text-{{ main_cat_color }}"></i>
71
- {{ link.name }}
83
+ <i class="fas fa-{{ link_icon }} pr-1 text-{{ main_cat_color }}"></i>&nbsp;{{ link.name }}
72
84
  </a>
73
85
  </li>
74
86
  {% endif %}
@@ -97,14 +109,13 @@
97
109
 
98
110
  <p class="d-print-none mt-5">
99
111
  <a href="{{ page.collection | prepend: '/' | prepend: site.baseurl }}" class="btn btn-light">
100
- <i class="fas fa-bullhorn"></i>
101
- {{ site.data.lang[site.conference.lang].overview | default: "Overview" }}
112
+ <i class="fas fa-bullhorn"></i>&nbsp;{{ site.data.lang[site.conference.lang].overview | default: "Overview" }}
102
113
  </a>
103
114
 
104
115
  <a href="{{ site.conference.program.url | prepend: site.baseurl }}" class="btn btn-light">
105
- <i class="far fa-calendar-alt"></i>
106
- {{ site.data.lang[site.conference.lang].program.title | default: "Program" }}
116
+ <i class="far fa-calendar-alt"></i>&nbsp;{{ site.data.lang[site.conference.lang].program.title | default: "Program" }}
107
117
  </a>
108
118
  </p>
109
119
 
110
- {% include partials/footer.html %}
120
+ {%- include partials/footer.html -%}
121
+ {%- 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>