jekyll-theme-conference 4.0.1 → 4.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e189dc4689ec1f3119a061eda65e6203f356ee024eb59cce5131898d01da42e
4
- data.tar.gz: caae1d8393692f699d964922acba360c41bf3024337da6734f3517e1fe7270b3
3
+ metadata.gz: fb6885a7dd29e4d0448899ed9ceb3697e4c662bf8d5d7526111b75cd74701686
4
+ data.tar.gz: 619841748b22d87bcc3f9e93d5ddc193fed314f8a52abd27853f1e1d7c4ce3a1
5
5
  SHA512:
6
- metadata.gz: 44650df79619a5af969f95a6fd13c6b55daf1d8c8879313303faf3574b3b6cd00fed8fb4ee41d7d8776bc0beca7ff761a2ceb32ac7097a89fcbe67e140f3b244
7
- data.tar.gz: a67cc157d5a0073fda943ab2785e6879987c7636346576294a098f5b5f4652284c511e51a876c45fe7338ca61fe61777115e833cda7acd188bbf868f001639ef
6
+ metadata.gz: 87ed50dda511d8308a865682c62b91ab77050139543d39efdc4ff8958d698f9112be253d4a68c005e169215432baa1a8ef65075832ffa56a3408da5370aa5d3a
7
+ data.tar.gz: 492c12d703bcf061bee43117efcf04a197cc396349c77195c673191b670a4f5555975ef7352315d2c3f11f552d6b536c4f07a35c5b9c0d5178608f968786e98e
data/README.md CHANGED
@@ -127,15 +127,15 @@ To install:
127
127
  bundle
128
128
  ```
129
129
 
130
- 4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@4.0.1"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
130
+ 4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@v4.0.1"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
131
131
 
132
132
  ```yaml
133
- remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@4.0.1"
133
+ remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@v4.0.2"
134
134
  ```
135
135
 
136
136
  5. Continue with the [_Setup_](#setup) section below to customize the theme and add content for your conference.
137
137
 
138
- To update the theme, change the version tag in the `remote_theme` value (e.g., `@4.0.0` to `@v4.1.0`).
138
+ To update the theme, change the version tag in the `remote_theme` value (e.g., `@v4.0.0` to `@v4.1.0`).
139
139
 
140
140
 
141
141
  ## Setup
@@ -706,8 +706,10 @@ window.conference.awaitReady().then(async () => {
706
706
  Program settings are configured directly in the Front Matter of the program page (the page with `layout: program`). The program page's Front Matter supports the following properties:
707
707
 
708
708
  - `title`: The title shown on the program page (defaults to "Program")
709
- - `time_steps`: The time interval in minutes for each row in the schedule grid (default: `15`)
709
+ - `time_steps`: The time interval in minutes for each row in the schedule grid or `start` to show only the intervals that correspond to a talk start time (default: `15`)
710
710
  - `show_alltimes`: Show time labels for all intervals, not just full hours (default: `false`)
711
+ - `show_first_hour`: Always show hour in time label of first row (default: `false`)
712
+ - `hide_legend`: Hide track legends at the bottom of program table (default: `false`)
711
713
 
712
714
  ```yaml
713
715
  ---
@@ -12,7 +12,11 @@
12
12
  {%- if program_page -%}
13
13
  {%- assign program_url = program_page.url -%}
14
14
  {%- if program_page.time_steps -%}
15
- {%- assign program_time_steps = program_page.time_steps -%}
15
+ {%- if program_page.time_steps == "start" -%}
16
+ {%- assign program_time_steps = 1 -%}
17
+ {%- else -%}
18
+ {%- assign program_time_steps = program_page.time_steps -%}
19
+ {%- endif -%}
16
20
  {%- endif -%}
17
21
  {%- endif -%}
18
22
 
@@ -0,0 +1,12 @@
1
+ {%- assign selected_day = site.data.program.days | where: "date", d.date | first -%}
2
+ {%- assign start_times = "" | split: "," -%}
3
+
4
+ {%- if selected_day -%}
5
+ {%- for room in selected_day.rooms -%}
6
+ {%- for talk in room.talks -%}
7
+ {%- unless start_times contains talk.time_start -%}
8
+ {%- assign start_times = start_times | push: talk.time_start -%}
9
+ {%- endunless -%}
10
+ {%- endfor -%}
11
+ {%- endfor -%}
12
+ {%- endif -%}
@@ -64,32 +64,55 @@
64
64
  {%- assign day_end_hour = day_end_day | minus: day_start_day | times: 24 | plus: day_end_hour -%}
65
65
  {%- endif -%}
66
66
 
67
- {%- assign day_duration_min = day_end_hour | minus: day_start_hour | times: 60 | minus: day_start_min | plus: day_end_min -%}
68
- {%- assign nbr_steps = day_duration_min | divided_by: page.time_steps -%}
69
-
70
- {%- for i in (1..nbr_steps) -%}
71
- {%- assign current_day = 0 -%}
72
- {%- assign current_hour = i | minus: 1 | times: page.time_steps | plus: day_start_min | divided_by: 60 | floor | plus: day_start_hour -%}
73
- {%- if current_hour >= 24 -%}
74
- {%- assign current_day = current_hour | divided_by: 24 | floor -%}
75
- {%- assign current_hour = current_hour | modulo: 24 -%}
76
- {%- endif -%}
77
- {%- assign current_min = i | minus: 1 | times: page.time_steps | plus: day_start_min | modulo: 60 -%}
78
- {%- if current_min < 10 -%}
79
- {%- assign current_time = current_hour | append: ':0' | append: current_min -%}
67
+ {%- unless page.time_steps == "start" -%}
68
+ {%- assign time_steps = page.time_steps | default: 15 -%}
69
+
70
+ {%- assign day_duration_min = day_end_hour | minus: day_start_hour | times: 60 | minus: day_start_min | plus: day_end_min -%}
71
+ {%- assign nbr_steps = day_duration_min | divided_by: time_steps -%}
72
+ {%- else -%}
73
+ {%- assign time_steps = 1 -%}
74
+ {%- include get_start_times.html -%}
75
+ {%- assign nbr_steps = start_times.size %}
76
+ {%- endunless -%}
77
+
78
+ {%- for step_idx in (1..nbr_steps) -%}
79
+
80
+ {%- unless page.time_steps == "start" -%}
81
+ {%- assign current_hour = step_idx | minus: 1 | times: time_steps | plus: day_start_min | divided_by: 60 | floor | plus: day_start_hour | modulo: 24 -%}
82
+ {%- assign current_min = step_idx | minus: 1 | times: time_steps | plus: day_start_min | modulo: 60 -%}
80
83
  {%- else -%}
81
- {%- assign current_time = current_hour | append: ':' | append: current_min -%}
82
- {%- endif -%}
84
+ {% assign start_time_idx = step_idx | minus: 1 %}
85
+ {% assign current_time = start_times[start_time_idx] %}
86
+
87
+ {% assign current_hour = current_time | split: ":" | first | plus: 0 %}
88
+ {% assign current_min = current_time | split: ":" | last | plus: 0 %}
89
+ {%- endunless -%}
83
90
 
84
91
  <tr class="h-100">
85
92
 
86
- {%- if current_min == 0 -%}
93
+ {%- if current_min == 0 or page.time_steps == "start" -%}
87
94
  <th scope="row" class="program-time text-end">
88
- {{- current_time -}}
95
+ {%- if current_min < 10 -%}
96
+ {{- current_hour | append: ':0' | append: current_min -}}
97
+ {%- else -%}
98
+ {{- current_hour | append: ':' | append: current_min -}}
99
+ {%- endif -%}
89
100
  </th>
90
101
  {%- elsif page.show_alltimes -%}
91
102
  <th scope="row" class="program-time text-end text-muted fw-normal">
92
- :{{ current_min }}
103
+ {%- if page.show_first_hour and step_idx == 1 -%}
104
+ {%- if current_min < 10 -%}
105
+ {{- current_hour | append: ':0' | append: current_min -}}
106
+ {%- else -%}
107
+ {{- current_hour | append: ':' | append: current_min -}}
108
+ {%- endif -%}
109
+ {%- else -%}
110
+ {%- if current_min < 10 -%}
111
+ {{- ':0' | append: current_min -}}
112
+ {%- else -%}
113
+ {{- ':' | append: current_min -}}
114
+ {%- endif -%}
115
+ {%- endif -%}
93
116
  </th>
94
117
  {%- else -%}
95
118
  <th scope="row"></th>
@@ -105,24 +128,26 @@
105
128
 
106
129
  {%- include get_talk_time.html -%}
107
130
 
108
- {%- assign d_start_hour = current_day | minus: talk_start_day | times: 24 | plus: current_hour | minus: talk_start_hour -%}
131
+ {%- assign d_start_hour = current_hour | minus: talk_start_hour -%}
109
132
  {%- assign d_start_min = current_min | minus: talk_start_min -%}
110
- {%- assign d_end_hour = current_day | minus: talk_end_day | times: 24 | plus: current_hour | minus: talk_end_hour -%}
133
+ {%- assign d_end_hour = current_hour | minus: talk_end_hour -%}
111
134
  {%- assign d_end_min = current_min | minus: talk_end_min -%}
112
135
 
113
- {%- assign has_started = false -%}
114
- {%- if d_start_hour == 0 and d_start_min > 0 -%}
115
- {%- assign has_started = true -%}
136
+ {%- if talk_start_hour > talk_end_hour -%}
137
+ {%- if current_hour >= talk_start_hour -%}
138
+ {%- assign d_end_hour = current_hour | minus: 24 | minus: talk_end_hour -%}
139
+ {%- else -%}
140
+ {%- assign d_start_hour = current_hour | plus: 24 | minus: talk_start_hour -%}
141
+ {%- endif -%}
116
142
  {%- endif -%}
117
- {%- if d_start_hour > 0 -%}
143
+
144
+ {%- assign has_started = false -%}
145
+ {%- if d_start_hour > 0 or d_start_hour == 0 and d_start_min >= 0 -%}
118
146
  {%- assign has_started = true -%}
119
147
  {%- endif -%}
120
148
 
121
149
  {%- assign has_ended = false -%}
122
- {%- if d_end_hour == 0 and d_end_min >= 0 -%}
123
- {%- assign has_ended = true -%}
124
- {%- endif -%}
125
- {%- if d_end_hour > 0 -%}
150
+ {%- if d_end_hour > 0 or d_end_hour == 0 and d_end_min >= 0 -%}
126
151
  {%- assign has_ended = true -%}
127
152
  {%- endif -%}
128
153
 
@@ -132,7 +157,24 @@
132
157
 
133
158
  {%- if d_start_hour == 0 and d_start_min == 0 -%}
134
159
 
135
- {%- assign talk_nbr_steps = talk_duration_min | divided_by: page.time_steps -%}
160
+ {%- unless page.time_steps == "start" -%}
161
+ {%- assign talk_nbr_steps = talk_duration_min | divided_by: time_steps -%}
162
+ {%- else -%}
163
+ {%- assign talk_nbr_steps = 0 -%}
164
+ {%- for start_time in start_times -%}
165
+ {%- assign start_hour = start_time | split: ":" | first | plus: 0 -%}
166
+ {%- assign start_min = start_time | split: ":" | last | plus: 0 -%}
167
+ {%- assign d_start_hour = start_hour | minus: talk_start_hour -%}
168
+ {%- if talk_start_hour > talk_end_hour and start_hour < talk_start_hour -%}
169
+ {%- assign d_start_hour = d_start_hour | plus: 24 -%}
170
+ {%- endif -%}
171
+ {%- assign start_ts = d_start_hour | times: 60 | plus: start_min | minus: talk_start_min -%}
172
+ {%- if start_ts >= 0 and start_ts < talk_duration_min -%}
173
+ {%- assign talk_nbr_steps = talk_nbr_steps | plus: 1 -%}
174
+ {%- endif -%}
175
+ {%- endfor -%}
176
+ {%- endunless -%}
177
+
136
178
  {%- include get_track_properties.html -%}
137
179
  <td rowspan="{{ talk_nbr_steps }}" class="program-talk p-0 h-100">
138
180
  <div class="h-100 p-2 bg-{{ track_color }}-subtle text-{{ track_color }}-emphasis border-4 border-start border-{{ track_color }}-subtle shadow-sm overflow-hidden">
@@ -181,12 +223,14 @@
181
223
  {%- endif -%}
182
224
 
183
225
  {%- if site.conference.talks.tracks %}
184
- <h5 class="mt-4">{{ site.data.lang[site.conference.lang].program.legend | default: "Caption" }}</h5>
226
+ {%- unless page.hide_legend -%}
227
+ <h5 class="mt-4">{{ site.data.lang[site.conference.lang].program.legend | default: "Caption" }}</h5>
185
228
  {%- for track_prop in site.conference.talks.tracks %}
186
229
  <div class="d-block d-sm-inline-block m-1 p-1 ps-2 pe-2 bg-{{ track_prop.color | default: 'light' }}-subtle text-{{ track_prop.color | default: 'light' }}-emphasis border-start border-4 border-{{ track_prop.color | default: 'light' }}-subtle fw-normal">
187
230
  {{- track_prop.name -}}
188
231
  </div>
189
232
  {%- endfor -%}
233
+ {%- endunless -%}
190
234
  {%- endif -%}
191
235
 
192
236
  {% include footer.html %}
data/_sass/theme.scss CHANGED
@@ -20,16 +20,19 @@
20
20
 
21
21
  width: 4rem;
22
22
  min-width: 4rem;
23
+ max-width: 4rem;
23
24
  }
24
25
 
25
26
  .program-talk {
26
27
  width: 15rem;
27
28
  min-width: 15rem;
29
+ max-width: 15rem;
28
30
  }
29
31
 
30
32
  .program-space {
31
33
  width: 1rem;
32
34
  min-width: 1rem;
35
+ max-width: 1rem;
33
36
  }
34
37
  }
35
38