jekyll-theme-conference 2.5.4 → 3.0.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -40
  3. data/_includes/js/conference-live.js +188 -102
  4. data/_includes/js/conference-program.js +48 -0
  5. data/_includes/js/conference.js +11 -11
  6. data/_includes/js/jquery-3.5.1.min.js +2 -0
  7. data/_includes/partials/checks.html +66 -31
  8. data/_includes/partials/footer.html +3 -3
  9. data/_includes/partials/get_day_hash.html +20 -0
  10. data/_includes/partials/get_day_time.html +19 -0
  11. data/_includes/partials/get_link.html +41 -41
  12. data/_includes/partials/get_link_types.html +14 -14
  13. data/_includes/partials/get_live_timestamps.html +49 -0
  14. data/_includes/partials/get_main_category.html +9 -9
  15. data/_includes/partials/get_talk_time.html +7 -7
  16. data/_includes/partials/get_talk_timestamp.html +4 -0
  17. data/_includes/partials/get_time_pronoun.html +6 -0
  18. data/_includes/partials/header.html +15 -12
  19. data/_includes/partials/info_bar.html +22 -22
  20. data/_includes/partials/list_categories.html +2 -2
  21. data/_includes/partials/list_speakers.html +14 -18
  22. data/_includes/partials/list_sub_categories.html +7 -7
  23. data/_includes/partials/{live-modal.html → live_modal.html} +4 -7
  24. data/_includes/partials/navbar.html +25 -33
  25. data/_includes/partials/navbar_rooms.html +21 -20
  26. data/_includes/partials/{live_button.html → show_live_button.html} +6 -8
  27. data/_includes/partials/show_room.html +5 -5
  28. data/_includes/partials/show_talk.html +3 -3
  29. data/_includes/partials/show_talk_time.html +16 -2
  30. data/_layouts/data.html +91 -0
  31. data/_layouts/home.html +2 -10
  32. data/_layouts/program.html +179 -148
  33. data/_layouts/room.html +42 -38
  34. data/_layouts/speaker.html +40 -36
  35. data/_layouts/talk-overview.html +83 -53
  36. data/_layouts/talk.html +36 -34
  37. data/_sass/conference.scss +29 -7
  38. data/assets/icons/live.svg +33 -57
  39. data/assets/js/data.json +3 -0
  40. data/assets/js/main.js +0 -6
  41. metadata +13 -9
  42. data/_includes/js/conference-data.js +0 -87
  43. data/_includes/js/jquery-3.2.1.slim.min.js +0 -4
  44. data/_includes/partials/get_conf_time.html +0 -54
  45. data/_includes/partials/get_timestamp.html +0 -4
  46. data/_layouts/delete_hidden.html +0 -25
@@ -1,5 +1,5 @@
1
- {% if talk.hide %}
1
+ {%- if talk.hide -%}
2
2
  {{ talk.name }}
3
- {% else %}
3
+ {%- else -%}
4
4
  <a class="text-reset" href="{{ talk.url | prepend: site.baseurl }}">{{ talk.name }}</a>
5
- {% endif %}
5
+ {%- endif -%}
@@ -1,3 +1,17 @@
1
- <a href="{{ site.conference.program.url | prepend: site.baseurl }}" class="badge badge-light font-weight-normal text-left">
2
- <i class="far fa-clock"></i>&nbsp;{{ talk_start_hour }}:{% if talk_start_min == 0 %}0{%endif %}{{ talk_start_min }}
1
+ {%- assign nbr_days = site.data.program.days | size -%}
2
+
3
+ <a href="
4
+ {{- site.conference.program.url | prepend: site.baseurl -}}
5
+ {%- if nbr_days > 1 and day_hash -%}
6
+ #{{ day_hash }}
7
+ {%- endif -%}
8
+ " class="badge badge-light font-weight-normal text-left {{ talk_time_styleclass }}">
9
+ <i class="far fa-clock"></i>&nbsp;
10
+ {%- if nbr_days > 1 and day_abbr -%}
11
+ {%- unless talk_day_hide -%} {{ day_abbr }}, {% endunless -%}
12
+ {%- assign talk_day_hide = false -%}
13
+ {% endif -%}
14
+ {{- talk_start_hour -}}:{%- if talk_start_min == 0 -%}0{%- endif -%}{{- talk_start_min -}}
3
15
  </a>
16
+
17
+ {%- assign talk_time_styleclass = "" -%}
@@ -0,0 +1,91 @@
1
+ {% if site.conference.live and site.conference.live.streaming -%}
2
+ {
3
+ "days": [
4
+ {%- for d in site.data.program.days %}
5
+ {
6
+ {%- include partials/get_day_hash.html %}
7
+ "name": "{{ day_name }}",
8
+ "hash": "{{ day_hash }}",
9
+ "date": "{{ d.date }}"
10
+ }{%- unless forloop.last -%},{%- endunless %}
11
+ {%- endfor %}
12
+ ],
13
+
14
+ "rooms": {
15
+ {%- for room in site.rooms %}
16
+ {%- if room.live %}
17
+ "{{ room.name }}": {
18
+ "id": {{ forloop.index }},
19
+ "name": "{{ room.name }}",
20
+ "href": "{{ room.live }}"
21
+ }{%- unless forloop.last -%},{%- endunless %}
22
+ {%- endif -%}
23
+ {%- endfor %}
24
+ },
25
+
26
+ "speakers": {
27
+ {%- for speaker in site.speakers %}
28
+ "{{ speaker.name }}" : {
29
+ {%- if site.conference.speakers.show_firstname %}
30
+ "name": "{{ speaker.first_name | append: ' ' | append: speaker.last_name }}",
31
+ {%- else %}
32
+ "name": "{{ speaker.first_name | slice: 0 | append : '. ' | append: speaker.last_name }}",
33
+ {%- endif -%}
34
+ {%- if speaker.hide %}
35
+ "href": ""
36
+ {%- else %}
37
+ "href": "{{ speaker.url | prepend: site.baseurl }}"
38
+ {%- endif %}
39
+ }{%- unless forloop.last -%},{%- endunless %}
40
+ {%- endfor %}
41
+ },
42
+
43
+ "talks": {
44
+ {%- for room in site.rooms -%}
45
+ {%- assign room_has_talks = false %}
46
+ {%- for d in site.data.program.days -%}
47
+ {%- for r in d.rooms -%}
48
+ {%- if room.name == r.name and room.live %}
49
+
50
+ {%- unless room_has_talks %}
51
+ "{{ room.name | replace: '"', '\"' }}": [
52
+ {%- assign room_has_talks = true %}
53
+ {%- else -%}
54
+ ,
55
+ {%- endunless -%}
56
+
57
+ {%- for t in r.talks %}
58
+ {%- assign talk = site.talks | where: 'name', t.name | first %}
59
+ {
60
+ "name": "{{ talk.name | replace: '"', '\"' }}",
61
+
62
+ {%- unless talk.hide %}
63
+ "href": "{{ talk.url | prepend: site.baseurl }}",
64
+ {%- else %}
65
+ "href": "",
66
+ {%- endunless -%}
67
+
68
+ {%- include partials/get_main_category.html %}
69
+ "color": "{{ main_cat_color }}",
70
+ "speakers": [
71
+ {%- for speaker_name in talk.speakers %}
72
+ "{{ speaker_name}}"{%- unless forloop.last -%},{%- endunless -%}
73
+ {%- endfor %}
74
+ ],
75
+
76
+ {%- include partials/get_talk_timestamp.html %}
77
+ "start": {{ timestamp_start }},
78
+ "end": {{ timestamp_end }}
79
+ }{%- unless forloop.last -%},{%- endunless -%}
80
+ {%- endfor -%}
81
+ {%- endif -%}
82
+ {%- endfor -%}
83
+ {%- endfor -%}
84
+
85
+ {%- if room_has_talks %}
86
+ ]{%- unless forloop.last -%},{%- endunless -%}
87
+ {%- endif -%}
88
+ {%- endfor %}
89
+ }
90
+ }
91
+ {%- endif -%}
@@ -43,15 +43,7 @@
43
43
  </div>
44
44
 
45
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 %}
46
+ {%- include partials/get_live_timestamps.html -%}
55
47
 
56
48
  {% if link.name %}
57
49
  {% assign link_name = link.name %}
@@ -59,7 +51,7 @@
59
51
  {% assign link_name = site.data.lang[site.conference.lang].live.streaming | default: "Live Stream" %}
60
52
  {% endif %}
61
53
 
62
- <span class="live-show d-none" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
54
+ <span class="live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
63
55
  {% if site.conference.live.streaming %}
64
56
  <a class="btn btn-outline-primary btn-lg mt-2" title="{{ link_name }}" data-toggle="modal" data-target="#stream-modal" data-room="" href="#">
65
57
  {% else %}
@@ -1,161 +1,192 @@
1
1
  {% include partials/header.html %}
2
-
3
- {% include partials/get_conf_time.html %}
4
- {% assign nbr_steps = conf_duration_min | divided_by: site.conference.program.time_steps %}
5
-
6
- <h1 class="display-5 mb-4">
7
- {% if page.title %}
8
- {{ page.title }}
9
- {% else %}
10
- {{ site.data.lang[site.conference.lang].program.title | default: "Program" }}
11
- {% endif %}
2
+ {% assign nbr_days = site.data.program.days | size -%}
3
+
4
+ <h1 class="display-5 {% if nbr_days > 1 -%} mb-2 {%- else -%} mb-4 {%- endif %}">
5
+ {%- if page.title -%}
6
+ {{- page.title -}}
7
+ {%- else -%}
8
+ {{- site.data.lang[site.conference.lang].program.title | default: "Program" -}}
9
+ {%- endif -%}
12
10
  </h1>
13
11
 
14
12
  {{ content }}
15
13
 
16
- <div class="sticky-top syncscroll overflow-hidden" name="sync-table">
17
- <table class="table mb-0">
18
- <thead>
19
- <tr>
20
- <th scope="col" class="text-center">#</th>
21
- <th class="p-0" scope="col"></th>
22
- {% assign nbr_rooms = site.data.program | size %}
23
- {% for r in site.data.program %}
24
- {% assign room = site.rooms | where: 'name', r.room | first %}
25
- <th scope="col" class="text-center">
26
- {% if room.hide or site.conference.location.hide %}
27
- {{ room.name }}
28
- {% else %}
29
- <a class="text-reset" href="{{ room.url | prepend: site.baseurl }}">{{ room.name }}</a>
30
- {% endif %}
31
- </th>
32
- {% if forloop.last != true %}
33
- <th class="p-0" scope="col"></th>
34
- {% endif %}
35
- {% endfor %}
36
- </tr>
37
- </thead>
38
- </table>
39
- </div>
40
-
41
- <div class="syncscroll overflow-y-hidden" name="sync-table">
42
- <table class="table">
43
- <tbody>
44
- <!--
45
- The shadow of a previous program block should be above a later program block, thus
46
- the earlier a program block the higher its z-index (opposite to the actual rendering).
47
-
48
- Bootstrap uses as lowest z-index for its overlapping elements a z-index of 1000 (for
49
- $zindex-dropdown).
50
- -->
51
- {% assign z-index-max = 999 %}
52
-
53
- {% for i in (1..nbr_steps) %}
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 %}
56
- {% if current_min < 10 %}
57
- {% assign current_time = current_hour | append: ':0' | append: current_min %}
58
- {% else %}
59
- {% assign current_time = current_hour | append: ':' | append: current_min %}
60
- {% endif %}
61
-
14
+ {%- if nbr_days > 1 %}
15
+ <ul class="nav justify-content-center mb-3 btn-group" id="day-list" role="tablist">
16
+ {%- for d in site.data.program.days -%}
17
+ {%- include partials/get_day_hash.html %}
18
+ <li class="nav-item" role="presentation">
19
+ <a class="nav-link btn btn-outline-secondary {%- if forloop.index == 1 %} active{% endif %}" id="tab-{{ day_hash }}" data-toggle="tab" {%- if d.date %} data-date="{{ d.date }}" {%- endif %} href="#{{ day_hash }}" role="tab" aria-controls="{{ day_hash }}" aria-selected="{% if forloop.index == 1 %}true{% else %}false{% endif %}">{{ day_name }}</a>
20
+ </li>
21
+ {%- endfor %}
22
+ </ul>
23
+ <div class="tab-content" id="day-content">
24
+ {%- endif %}
25
+
26
+ {%- for d in site.data.program.days -%}
27
+ {%- if nbr_days > 1 -%}
28
+ {%- include partials/get_day_hash.html %}
29
+ <div class="tab-pane {%- if forloop.index == 1 %} active{% endif %}" id="{{ day_hash }}" role="tabpanel" aria-labelledby="tab-{{ day_hash }}">
30
+ {%- endif %}
31
+
32
+ <div class="sticky-top syncscroll overflow-hidden" name="sync-table">
33
+ <table class="table mb-0">
34
+ <thead>
62
35
  <tr>
63
-
64
- {% if current_min == 0 %}
65
- <th scope="row" class="text-center" style="z-index: {{ z-index-max }}">
66
- {{ current_time }}
36
+ <th scope="col" class="text-right">#<span class="invisible">I0</span></th>
37
+ <th class="p-0" scope="col"></th>
38
+ {%- assign nbr_rooms = d.rooms | size -%}
39
+ {%- for r in d.rooms -%}
40
+ {%- assign room = site.rooms | where: 'name', r.name | first %}
41
+ <th scope="col" class="text-center">
42
+ {%- if room.hide or site.conference.location.hide -%}
43
+ {{- room.name -}}
44
+ {%- else -%}
45
+ <a class="text-reset" href="{{ room.url | prepend: site.baseurl }}">
46
+ {{- room.name -}}
47
+ </a>
48
+ {%- endif -%}
67
49
  </th>
68
- {% elsif site.conference.program.show_alltimes %}
69
- <th scope="row" class="text-center text-muted" style="z-index: {{ z-index-max }}">
70
- <span class="invisible">{{ current_hour }}</span><span class="font-weight-normal">:{{ current_min }}</span>
71
- </th>
72
- {% else %}
73
- <th scope="row" style="z-index: {{ z-index-max }}"></th>
74
- {% endif %}
75
- <td class="p-0"></td>
76
-
77
- {% for r in site.data.program %}
78
- {% assign room = site.rooms | where: 'name', r.room | first %}
79
-
80
- {% assign active_talk = false %}
81
- {% for t in r.talks %}
82
- {% assign talk = site.talks | where: 'name', t.name | first %}
83
-
84
- {% include partials/get_talk_time.html %}
85
-
86
- {% assign d_start_hour = current_hour | minus: talk_start_hour %}
87
- {% assign d_start_min = current_min | minus: talk_start_min %}
88
- {% assign d_end_hour = current_hour | minus: talk_end_hour %}
89
- {% assign d_end_min = current_min | minus: talk_end_min %}
90
-
91
- {% assign has_started = false %}
92
- {% if d_start_hour == 0 and d_start_min > 0 %}
93
- {% assign has_started = true %}
94
- {% endif %}
95
- {% if d_start_hour > 0 %}
96
- {% assign has_started = true %}
97
- {% endif %}
98
-
99
- {% assign has_ended = false %}
100
- {% if d_end_hour == 0 and d_end_min >= 0 %}
101
- {% assign has_ended = true %}
102
- {% endif %}
103
- {% if d_end_hour > 0 %}
104
- {% assign has_ended = true %}
105
- {% endif %}
106
-
107
- {% if has_started and has_ended == false %}
108
- {% assign active_talk = true %}
109
- {% endif %}
110
-
111
- {% if d_start_hour == 0 and d_start_min == 0 %}
112
-
113
- {% assign talk_nbr_steps = talk_duration_min | divided_by: site.conference.program.time_steps %}
114
- {% include partials/get_main_category.html %}
115
- <td rowspan="{{ talk_nbr_steps }}" class="alert alert-{{ main_cat_color }} shadow-sm" style="z-index: {{ z-index-max | minus: i }}">
116
-
117
- {% assign live_button_styleclass = "mb-2" %}
118
- {% include partials/live_button.html %}
119
-
120
- <p class="mb-2">
121
- {% include partials/show_talk.html %}
122
- </p>
123
- <p class="font-weight-light mb-2">
124
- {% include partials/list_speakers.html %}
125
- </p>
126
- <p class="mb-1">
127
- {% include partials/list_sub_categories.html %}
128
- </p>
129
- </td>
130
- {% assign active_talk = true %}
131
-
132
- {% endif %}
133
-
134
- {% endfor %}
135
-
136
- {% unless active_talk %}
137
- <td class="p-0"></td>
138
- {% endunless %}
139
-
140
- {% if forloop.last != true %}
141
- <td class="p-0"></td>
142
- {% endif %}
143
-
144
- {% endfor %}
145
-
50
+ {%- unless forloop.last %}
51
+ <th class="p-0" scope="col"></th>
52
+ {%- endunless -%}
53
+ {%- endfor %}
146
54
  </tr>
147
- {% endfor %}
148
- </tbody>
149
- </table>
150
- </div>
151
-
152
- {% if site.conference.talks.main_categories %}
55
+ </thead>
56
+ </table>
57
+ </div>
58
+
59
+ <div class="syncscroll overflow-y-hidden" name="sync-table">
60
+ <table class="table">
61
+ <tbody>
62
+ {%- include partials/get_day_time.html -%}
63
+
64
+ {%- assign day_duration_min = day_end_hour | minus: day_start_hour | times: 60 | minus: day_start_min | plus: day_end_min -%}
65
+ {%- assign nbr_steps = day_duration_min | divided_by: site.conference.program.time_steps -%}
66
+
67
+ <!--
68
+ The shadow of a previous program block should be above a later program block, thus
69
+ the earlier a program block the higher its z-index (opposite to the actual rendering).
70
+
71
+ Bootstrap uses as lowest z-index for its overlapping elements a z-index of 1000 (for
72
+ $zindex-dropdown).
73
+ -->
74
+ {%- assign z-index-max = 999 -%}
75
+
76
+ {%- for i in (1..nbr_steps) -%}
77
+ {%- assign current_hour = i | minus: 1 | times: site.conference.program.time_steps | plus: day_start_min | divided_by: 60 | floor | plus: day_start_hour | modulo: 24 -%}
78
+ {%- assign current_min = i | minus: 1 | times: site.conference.program.time_steps | plus: day_start_min | modulo: 60 -%}
79
+ {%- if current_min < 10 -%}
80
+ {%- assign current_time = current_hour | append: ':0' | append: current_min -%}
81
+ {%- else -%}
82
+ {%- assign current_time = current_hour | append: ':' | append: current_min -%}
83
+ {%- endif -%}
84
+
85
+ <tr>
86
+
87
+ {%- if current_min == 0 -%}
88
+ <th scope="row" class="text-right" style="z-index: {{ z-index-max }}">
89
+ {{- current_time -}}
90
+ </th>
91
+ {%- elsif site.conference.program.show_alltimes -%}
92
+ <th scope="row" class="text-right text-muted font-weight-normal" style="z-index: {{ z-index-max }}">
93
+ :{{ current_min }}
94
+ </th>
95
+ {%- else -%}
96
+ <th scope="row" style="z-index: {{ z-index-max }}"></th>
97
+ {%- endif %}
98
+ <td class="p-0"></td>
99
+
100
+ {%- for r in d.rooms -%}
101
+ {%- assign room = site.rooms | where: 'name', r.name | first -%}
102
+
103
+ {%- assign active_talk = false -%}
104
+ {%- for t in r.talks -%}
105
+ {%- assign talk = site.talks | where: 'name', t.name | first -%}
106
+
107
+ {%- include partials/get_talk_time.html -%}
108
+
109
+ {%- assign d_start_hour = current_hour | minus: talk_start_hour -%}
110
+ {%- assign d_start_min = current_min | minus: talk_start_min -%}
111
+ {%- assign d_end_hour = current_hour | minus: talk_end_hour -%}
112
+ {%- assign d_end_min = current_min | minus: talk_end_min -%}
113
+
114
+ {%- assign has_started = false -%}
115
+ {%- if d_start_hour == 0 and d_start_min > 0 -%}
116
+ {%- assign has_started = true -%}
117
+ {%- endif -%}
118
+ {%- if d_start_hour > 0 -%}
119
+ {%- assign has_started = true -%}
120
+ {%- endif -%}
121
+
122
+ {%- assign has_ended = false -%}
123
+ {%- if d_end_hour == 0 and d_end_min >= 0 -%}
124
+ {%- assign has_ended = true -%}
125
+ {%- endif -%}
126
+ {%- if d_end_hour > 0 -%}
127
+ {%- assign has_ended = true -%}
128
+ {%- endif -%}
129
+
130
+ {%- if has_started and has_ended == false -%}
131
+ {%- assign active_talk = true -%}
132
+ {%- endif -%}
133
+
134
+ {%- if d_start_hour == 0 and d_start_min == 0 -%}
135
+
136
+ {%- assign talk_nbr_steps = talk_duration_min | divided_by: site.conference.program.time_steps -%}
137
+ {%- include partials/get_main_category.html -%}
138
+ <td rowspan="{{ talk_nbr_steps }}" class="alert alert-{{ main_cat_color }} shadow-sm" style="z-index: {{ z-index-max | minus: i }}">
139
+
140
+ {%- assign live_button_styleclass = "mb-2" %}
141
+ {%- include partials/show_live_button.html %}
142
+
143
+ <p class="mb-2">
144
+ {%- include partials/show_talk.html %}
145
+ </p>
146
+ <p class="font-weight-light mb-2">
147
+ {%- include partials/list_speakers.html %}
148
+ </p>
149
+ <p class="mb-1">
150
+ {%- include partials/list_sub_categories.html %}
151
+ </p>
152
+ </td>
153
+ {%- assign active_talk = true %}
154
+
155
+ {%- endif %}
156
+
157
+ {%- endfor %}
158
+
159
+ {%- unless active_talk %}
160
+ <td class="p-0"></td>
161
+ {%- endunless -%}
162
+
163
+ {%- if forloop.last != true %}
164
+ <td class="p-0"></td>
165
+ {%- endif -%}
166
+
167
+ {%- endfor %}
168
+
169
+ </tr>
170
+ {%- endfor %}
171
+ </tbody>
172
+ </table>
173
+ </div>
174
+
175
+ {%- if nbr_days > 1 %}
176
+ </div>
177
+ {%- endif -%}
178
+ {%- endfor -%}
179
+ {%- if nbr_days > 1 %}
180
+ </div>
181
+ {%- endif -%}
182
+
183
+ {%- if site.conference.talks.main_categories %}
153
184
  <h5 class="mt-4">{{ site.data.lang[site.conference.lang].program.legend | default: "Caption" }}</h5>
154
- {% for main_cat in site.conference.talks.main_categories %}
185
+ {%- for main_cat in site.conference.talks.main_categories %}
155
186
  <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">
156
- {{ main_cat.name }}
187
+ {{- main_cat.name -}}
157
188
  </div>
158
- {% endfor %}
159
- {% endif %}
189
+ {%- endfor -%}
190
+ {%- endif -%}
160
191
 
161
192
  {% include partials/footer.html %}