jekyll-theme-conference 2.5.4 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +52 -40
- data/_includes/js/conference-live.js +188 -102
- data/_includes/js/conference-program.js +48 -0
- data/_includes/js/conference.js +11 -11
- data/_includes/js/jquery-3.5.1.min.js +2 -0
- data/_includes/partials/checks.html +66 -31
- data/_includes/partials/footer.html +3 -3
- data/_includes/partials/get_day_hash.html +20 -0
- data/_includes/partials/get_day_time.html +19 -0
- data/_includes/partials/get_link.html +41 -41
- data/_includes/partials/get_link_types.html +14 -14
- data/_includes/partials/get_live_timestamps.html +49 -0
- data/_includes/partials/get_main_category.html +9 -9
- data/_includes/partials/get_talk_time.html +7 -7
- data/_includes/partials/get_talk_timestamp.html +4 -0
- data/_includes/partials/get_time_pronoun.html +6 -0
- data/_includes/partials/header.html +15 -12
- data/_includes/partials/info_bar.html +22 -22
- data/_includes/partials/list_categories.html +2 -2
- data/_includes/partials/list_speakers.html +14 -18
- data/_includes/partials/list_sub_categories.html +7 -7
- data/_includes/partials/{live-modal.html → live_modal.html} +4 -7
- data/_includes/partials/navbar.html +25 -33
- data/_includes/partials/navbar_rooms.html +21 -20
- data/_includes/partials/{live_button.html → show_live_button.html} +6 -8
- data/_includes/partials/show_room.html +5 -5
- data/_includes/partials/show_talk.html +3 -3
- data/_includes/partials/show_talk_time.html +16 -2
- data/_layouts/data.html +91 -0
- data/_layouts/home.html +2 -10
- data/_layouts/program.html +179 -148
- data/_layouts/room.html +42 -38
- data/_layouts/speaker.html +40 -36
- data/_layouts/talk-overview.html +83 -53
- data/_layouts/talk.html +36 -34
- data/_sass/conference.scss +29 -7
- data/assets/icons/live.svg +33 -57
- data/assets/js/data.json +3 -0
- data/assets/js/main.js +0 -6
- metadata +13 -9
- data/_includes/js/conference-data.js +0 -87
- data/_includes/js/jquery-3.2.1.slim.min.js +0 -4
- data/_includes/partials/get_conf_time.html +0 -54
- data/_includes/partials/get_timestamp.html +0 -4
- data/_layouts/delete_hidden.html +0 -25
@@ -1,9 +1,9 @@
|
|
1
|
-
{
|
2
|
-
{
|
3
|
-
{
|
4
|
-
{
|
5
|
-
{
|
6
|
-
{
|
7
|
-
{
|
8
|
-
{
|
9
|
-
{
|
1
|
+
{%- for main_cat in site.conference.talks.main_categories -%}
|
2
|
+
{%- for cat in talk.categories -%}
|
3
|
+
{%- if cat == main_cat.name -%}
|
4
|
+
{%- assign main_cat = main_cat.name -%}
|
5
|
+
{%- assign main_cat_color = main_cat.color -%}
|
6
|
+
{%- break -%}
|
7
|
+
{%- endif -%}
|
8
|
+
{%- endfor -%}
|
9
|
+
{%- endfor -%}
|
@@ -1,9 +1,9 @@
|
|
1
|
-
{
|
2
|
-
{
|
1
|
+
{%- assign talk_start = t.time_start -%}
|
2
|
+
{%- assign talk_end = t.time_end -%}
|
3
3
|
|
4
|
-
{
|
5
|
-
{
|
6
|
-
{
|
7
|
-
{
|
4
|
+
{%- assign talk_start_hour = talk_start | split: ':' | first -%}
|
5
|
+
{%- assign talk_start_min = talk_start | split: ':' | last | divided_by: site.conference.program.time_steps | floor | times: site.conference.program.time_steps -%}
|
6
|
+
{%- assign talk_end_hour = talk_end | split: ':' | first -%}
|
7
|
+
{%- assign talk_end_min = talk_end | split: ':' | last | divided_by: site.conference.program.time_steps | ceil | times: site.conference.program.time_steps -%}
|
8
8
|
|
9
|
-
{
|
9
|
+
{%- assign talk_duration_min = talk_end_hour | minus: talk_start_hour | times: 60 | minus: talk_start_min | plus: talk_end_min -%}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{%- assign nbr_days = site.data.program.days | size -%}
|
2
|
+
{%- if nbr_days > 1 and day_abbr -%}
|
3
|
+
{%- assign time_pronoun = site.data.lang[site.conference.lang].pronoun.on_ | default: "on" -%}
|
4
|
+
{%- else -%}
|
5
|
+
{%- assign time_pronoun = site.data.lang[site.conference.lang].pronoun.at | default: "at" -%}
|
6
|
+
{%- endif -%}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<html lang="{{ site.conference.lang }}">
|
2
|
+
<html lang="{{ site.conference.lang | default: 'en' }}">
|
3
3
|
|
4
4
|
<head>
|
5
5
|
<meta charset="utf-8" />
|
@@ -10,36 +10,39 @@
|
|
10
10
|
</title>
|
11
11
|
<meta name="description" content="{{ site.description }}" />
|
12
12
|
|
13
|
-
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css" />
|
13
|
+
<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css?t={{ site.time | date: "%s" }}" />
|
14
14
|
|
15
|
-
{
|
16
|
-
|
17
|
-
{
|
15
|
+
<link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-regular-400.woff2" type="font/woff2" crossorigin="anonymous" />
|
16
|
+
<link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-solid-900.woff2" type="font/woff2" crossorigin="anonymous" />
|
17
|
+
{% if site.conference.live -%}
|
18
|
+
<link rel="prefetch" as="image" href="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml" crossorigin="anonymous" />
|
19
|
+
<link rel="prefetch" as="fetch" href="{{ site.baseurl }}/assets/js/data.json" type="application/json" crossorigin="anonymous" />
|
20
|
+
{%- endif %}
|
18
21
|
|
19
22
|
{%- if site.conference.live.streaming -%}
|
20
23
|
{%- for room in site.rooms -%}
|
21
|
-
{%- if room.live
|
22
|
-
|
24
|
+
{%- if room.live %}
|
25
|
+
<link rel="preconnect" href="{{ room.live }}" />
|
23
26
|
{%- endif -%}
|
24
27
|
{%- endfor -%}
|
25
|
-
{%- endif
|
28
|
+
{%- endif %}
|
26
29
|
</head>
|
27
30
|
|
28
31
|
<body class="pb-4">
|
29
32
|
<header>
|
30
33
|
<!-- navigation bar (web only): -->
|
31
|
-
{
|
34
|
+
{%- include partials/navbar.html -%}
|
32
35
|
|
33
|
-
{
|
36
|
+
{%- unless page.url == "/" -%}
|
34
37
|
<!-- site title (print only): -->
|
35
38
|
<div class="container d-none d-print-block mt-4 mb-4">
|
36
39
|
<h1 class="display-4">
|
37
40
|
{{ site.title }}
|
38
41
|
</h1>
|
39
42
|
</div>
|
40
|
-
{
|
43
|
+
{%- endunless -%}
|
41
44
|
|
42
45
|
</header>
|
43
46
|
<main class="container">
|
44
47
|
|
45
|
-
{
|
48
|
+
{%- include partials/info_bar.html -%}
|
@@ -1,30 +1,30 @@
|
|
1
|
-
{
|
2
|
-
{
|
3
|
-
{
|
4
|
-
{
|
1
|
+
{%- if site.conference.show_errors -%}
|
2
|
+
{%- include partials/checks.html -%}
|
3
|
+
{%- if errors.size > 0 -%}
|
4
|
+
{%- for error in errors %}
|
5
5
|
<div class="alert alert-danger fade show" role="alert">
|
6
6
|
<h5 class="alert-heading">There was an error when generating when generating the site!</h5>
|
7
7
|
|
8
8
|
{{ error | markdownify }}
|
9
9
|
</div>
|
10
|
-
{
|
11
|
-
{
|
12
|
-
{
|
10
|
+
{%- endfor -%}
|
11
|
+
{%- endif -%}
|
12
|
+
{%- endif -%}
|
13
13
|
|
14
|
-
{
|
15
|
-
{
|
16
|
-
{
|
17
|
-
{
|
18
|
-
{
|
19
|
-
{
|
20
|
-
{
|
21
|
-
{
|
14
|
+
{%- if site.conference.info_bars.size > 0 -%}
|
15
|
+
{%- for info_bar in site.conference.info_bars -%}
|
16
|
+
{%- if page.url == "/" and info_bar.pages_only != true -%}
|
17
|
+
{%- assign show_info_bar = true -%}
|
18
|
+
{%- endif -%}
|
19
|
+
{%- if page.url != "/" and info_bar.main_only != true -%}
|
20
|
+
{%- assign show_info_bar = true -%}
|
21
|
+
{%- endif -%}
|
22
22
|
|
23
|
-
{
|
23
|
+
{%- if show_info_bar %}
|
24
24
|
<div class="alert alert-{{ info_bar.color }} alert-dismissible fade show" role="alert">
|
25
|
-
{
|
25
|
+
{%- if info_bar.title %}
|
26
26
|
<h4 class="alert-heading">{{ info_bar.title }}</h4>
|
27
|
-
{
|
27
|
+
{%- endif %}
|
28
28
|
|
29
29
|
{{ info_bar.text | markdownify }}
|
30
30
|
|
@@ -32,7 +32,7 @@
|
|
32
32
|
<span aria-hidden="true">×</span>
|
33
33
|
</button>
|
34
34
|
</div>
|
35
|
-
{
|
36
|
-
{
|
37
|
-
{
|
38
|
-
{
|
35
|
+
{%- endif -%}
|
36
|
+
{%- assign show_info_bar = false -%}
|
37
|
+
{%- endfor -%}
|
38
|
+
{%- endif -%}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
{
|
1
|
+
{%- include partials/get_main_category.html -%}
|
2
2
|
|
3
3
|
<span class="badge badge-{{ main_cat_color }}">{{ main_cat }}</span>
|
4
|
-
{
|
4
|
+
{%- include partials/list_sub_categories.html -%}
|
@@ -1,20 +1,16 @@
|
|
1
|
-
{
|
2
|
-
{
|
3
|
-
{
|
4
|
-
{
|
5
|
-
{
|
6
|
-
{
|
7
|
-
{
|
1
|
+
{%- for speaker_name in talk.speakers -%}
|
2
|
+
{%- assign speaker = site.speakers | where: 'name', speaker_name | first -%}
|
3
|
+
{%- if site.conference.speakers.show_firstname -%}
|
4
|
+
{%- assign speaker_short = speaker.first_name | append: ' ' | append: speaker.last_name -%}
|
5
|
+
{%- else -%}
|
6
|
+
{%- assign speaker_short = speaker.first_name | slice: 0 | append : '. ' | append: speaker.last_name -%}
|
7
|
+
{%- endif -%}
|
8
8
|
|
9
|
-
{
|
10
|
-
{{ speaker_short }}
|
11
|
-
{
|
12
|
-
<a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">{{ speaker_short }}</a
|
13
|
-
{
|
14
|
-
{
|
15
|
-
-->,
|
16
|
-
{% else %}
|
17
|
-
-->
|
18
|
-
{% endif %}
|
9
|
+
{%- if speaker.hide -%}
|
10
|
+
{{ speaker_short }}
|
11
|
+
{%- else -%}
|
12
|
+
<a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">{{ speaker_short }}</a>
|
13
|
+
{%- endif -%}
|
14
|
+
{%- if forloop.last != true %}, {% endif -%}
|
19
15
|
|
20
|
-
{
|
16
|
+
{%- endfor -%}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
{
|
1
|
+
{%- assign has_sub_categories = false -%}
|
2
2
|
|
3
|
-
{
|
4
|
-
{
|
5
|
-
{
|
6
|
-
<span class="badge badge-light text-reset font-weight-normal">{{ cat }}</span
|
7
|
-
{
|
8
|
-
{
|
3
|
+
{%- for cat in talk.categories -%}
|
4
|
+
{%- if cat != main_cat -%}
|
5
|
+
{%- assign has_sub_categories = true -%}
|
6
|
+
<span class="badge badge-light text-reset font-weight-normal">{{ cat }}</span>
|
7
|
+
{%- endif -%}
|
8
|
+
{%- endfor -%}
|
@@ -29,19 +29,16 @@
|
|
29
29
|
</div>
|
30
30
|
|
31
31
|
<div class="modal-footer justify-content-around">
|
32
|
-
{
|
33
|
-
{% assign room = site.rooms | where: 'name', r.room | first %}
|
34
|
-
|
32
|
+
{%- for room in site.rooms -%}
|
35
33
|
<a id="stream-button{{ forloop.index }}" href="#" class="btn btn-outline-primary d-none d-sm-inline {% unless room.live %}disabled{% endunless %}" role="button" data-room="{{ room.name }}">
|
36
34
|
{{ room.name }}
|
37
35
|
</a>
|
38
|
-
{
|
36
|
+
{%- endfor %}
|
39
37
|
<div class="form-group w-100 d-block d-sm-none">
|
40
38
|
<select class="form-control" id="stream-select">
|
41
|
-
{
|
42
|
-
{% assign room = site.rooms | where: 'name', r.room | first %}
|
39
|
+
{%- for room in site.rooms -%}
|
43
40
|
<option {% unless room.live %}disabled{% endunless %}>{{ room.name }}</option>
|
44
|
-
{
|
41
|
+
{%- endfor %}
|
45
42
|
</select>
|
46
43
|
</div>
|
47
44
|
</div>
|
@@ -9,44 +9,36 @@
|
|
9
9
|
|
10
10
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
11
11
|
<ul class="navbar-nav mr-auto">
|
12
|
-
{
|
12
|
+
{%- for link in site.conference.navigation.links -%}
|
13
13
|
|
14
|
-
{
|
14
|
+
{%- if link.menu %}
|
15
15
|
<li class="nav-item dropdown">
|
16
16
|
<a class="nav-link dropdown-toggle" href="#" id="navbar-dropdown{{ forloop.index0 }}" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
17
17
|
{{ link.name }}
|
18
18
|
</a>
|
19
19
|
<div class="dropdown-menu" aria-labelledby="navbar-dropdown{{ forloop.index0 }}">
|
20
|
-
{
|
21
|
-
{
|
22
|
-
{
|
23
|
-
{
|
20
|
+
{%- assign parent_link = link -%}
|
21
|
+
{%- for link in parent_link.menu -%}
|
22
|
+
{%- assign link_styleclass = "dropdown-item" -%}
|
23
|
+
{%- include partials/get_link.html %}
|
24
24
|
{{ link_tag }}
|
25
25
|
{{ link.name }}
|
26
26
|
</a>
|
27
|
-
{
|
27
|
+
{%- endfor %}
|
28
28
|
</div>
|
29
29
|
</li>
|
30
30
|
|
31
|
-
{
|
32
|
-
{
|
33
|
-
{% assign time_start = conf_start %}
|
34
|
-
{% assign time_end = conf_end %}
|
35
|
-
{% include partials/get_timestamp.html %}
|
31
|
+
{%- elsif link.live -%}
|
32
|
+
{%- include partials/get_live_timestamps.html -%}
|
36
33
|
|
37
|
-
|
38
|
-
|
39
|
-
{% assign timestamp_start = offset_start | times: -60 | plus: timestamp_start %}
|
40
|
-
{% assign timestamp_end = offset_end | times: 60 | plus: timestamp_end %}
|
41
|
-
|
42
|
-
<li class="nav-item live-show d-none" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
|
43
|
-
{% if site.conference.live.streaming %}
|
34
|
+
<li class="nav-item live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
|
35
|
+
{%- if site.conference.live.streaming %}
|
44
36
|
<a class="nav-link" title="{% if link.name %}{{ link.name }}{% else %}{{ site.data.lang[site.conference.lang].live.streaming | default: "Live Stream" }}{% endif %}" data-toggle="modal" data-target="#stream-modal" data-room="" href="#">
|
45
|
-
{
|
46
|
-
{
|
47
|
-
{
|
37
|
+
{%- else %}
|
38
|
+
{%- assign link_styleclass = "nav-link" -%}
|
39
|
+
{%- include partials/get_link.html %}
|
48
40
|
{{ link_tag }}
|
49
|
-
{
|
41
|
+
{%- endif %}
|
50
42
|
|
51
43
|
{{ link.name | default: "" }}
|
52
44
|
|
@@ -57,30 +49,30 @@
|
|
57
49
|
</a>
|
58
50
|
</li>
|
59
51
|
|
60
|
-
{
|
52
|
+
{%- else %}
|
61
53
|
<li class="nav-item {% if page.url contains link.relative_url %}active{% endif %}">
|
62
|
-
{
|
63
|
-
{
|
54
|
+
{%- assign link_styleclass = "nav-link" -%}
|
55
|
+
{%- include partials/get_link.html -%}
|
64
56
|
{{ link_tag }}
|
65
57
|
{{ link.name }}
|
66
58
|
</a>
|
67
59
|
</li>
|
68
|
-
{
|
69
|
-
{
|
60
|
+
{%- endif -%}
|
61
|
+
{%- endfor %}
|
70
62
|
</ul>
|
71
63
|
</div>
|
72
64
|
|
73
|
-
{
|
65
|
+
{%- if site.conference.navigation.logo %}
|
74
66
|
<div class="navbar-brand navbar-logo mr-0 w-25 text-right overflow-hidden">
|
75
67
|
<a href="{{ site.conference.navigation.logo.url }}">
|
76
|
-
{
|
68
|
+
{%- if site.conference.navigation.logo.img %}
|
77
69
|
<img src="{{ site.conference.navigation.logo.img | prepend: '/assets/images/' | prepend: site.baseurl }}" class="align-middle" alt="{{ site.conference.navigation.logo.name }}" />
|
78
|
-
{
|
70
|
+
{%- else %}
|
79
71
|
{{ site.conference.navigation.logo.name }}
|
80
|
-
{
|
72
|
+
{%- endif %}
|
81
73
|
</a>
|
82
74
|
</div>
|
83
|
-
{
|
75
|
+
{%- endif %}
|
84
76
|
|
85
77
|
</div>
|
86
78
|
</nav>
|
@@ -4,40 +4,41 @@
|
|
4
4
|
{{ site.data.lang[site.conference.lang].location.directions | default: "Directions" }}
|
5
5
|
</a>
|
6
6
|
</li>
|
7
|
-
{
|
8
|
-
{% assign room = site.rooms | where: 'name', r.room | first %}
|
7
|
+
{%- for room in site.rooms -%}
|
9
8
|
<li class="nav-item">
|
10
|
-
{
|
9
|
+
{%- if room.hide %}
|
11
10
|
<span class="nav-item nav-link disabled">
|
12
11
|
{{ room.name }}
|
13
12
|
</span>
|
14
|
-
{
|
13
|
+
{%- else %}
|
15
14
|
<a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
|
16
15
|
{{ room.name }}
|
17
16
|
</a>
|
18
|
-
{
|
17
|
+
{%- endif %}
|
19
18
|
</li>
|
20
|
-
{
|
21
|
-
{
|
22
|
-
{
|
23
|
-
{
|
24
|
-
{
|
25
|
-
{
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
19
|
+
{%- endfor -%}
|
20
|
+
{%- for room in site.rooms -%}
|
21
|
+
{%- assign room_displayed = false -%}
|
22
|
+
{%- for d in site.data.program.days -%}
|
23
|
+
{%- for r in d.rooms -%}
|
24
|
+
{%- if room.name == r.name -%}
|
25
|
+
{%- assign room_displayed = true -%}
|
26
|
+
{%- break -%}
|
27
|
+
{%- endif -%}
|
28
|
+
{%- endfor -%}
|
29
|
+
{%- endfor -%}
|
30
|
+
{%- unless room_displayed %}
|
30
31
|
<li class="nav-item">
|
31
|
-
{
|
32
|
+
{%- if room.hide or site.conference.location.hide %}
|
32
33
|
<span class="nav-item nav-link disabled">
|
33
34
|
{{ room.name }}
|
34
35
|
</span>
|
35
|
-
{
|
36
|
+
{%- else %}
|
36
37
|
<a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
|
37
38
|
{{ room.name }}
|
38
39
|
</a>
|
39
|
-
{
|
40
|
+
{%- endif %}
|
40
41
|
</li>
|
41
|
-
{
|
42
|
-
{
|
42
|
+
{%- endunless -%}
|
43
|
+
{%- endfor %}
|
43
44
|
</ul>
|
@@ -1,13 +1,11 @@
|
|
1
|
-
{
|
2
|
-
{
|
3
|
-
{% assign time_end = t.time_end %}
|
4
|
-
{% include partials/get_timestamp.html %}
|
1
|
+
{%- if site.conference.live -%}
|
2
|
+
{%- include partials/get_talk_timestamp.html -%}
|
5
3
|
|
6
4
|
{%- if site.conference.live.streaming -%}
|
7
|
-
<a title="{{ link.name }}" data-toggle="modal" data-target="#stream-modal" data-room="{{ r.
|
5
|
+
<a title="{{ link.name }}" data-toggle="modal" data-target="#stream-modal" data-room="{{ r.name }}" href="#"
|
8
6
|
{%- else -%}
|
9
7
|
<span
|
10
|
-
{%- endif %} class="live-show live-button badge badge-dark font-weight-normal text-
|
8
|
+
{%- endif %} class="live-show live-button badge badge-dark font-weight-normal text-center d-none {{ live_button_styleclass }}" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
|
11
9
|
<object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
|
12
10
|
{{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
|
13
11
|
{%- if site.conference.live.streaming -%}
|
@@ -15,5 +13,5 @@
|
|
15
13
|
{%- else -%}
|
16
14
|
</span>
|
17
15
|
{%- endif -%}
|
18
|
-
{
|
19
|
-
{
|
16
|
+
{%- assign live_button_styleclass = "" -%}
|
17
|
+
{%- endif -%}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
{
|
2
|
-
<span class="badge badge-light font-weight-normal text-left"><i class="far fa-square"></i> {{ room.name }}</span
|
3
|
-
{
|
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
|
-
{
|
1
|
+
{%- if room.hide or site.conference.location.hide -%}
|
2
|
+
<span class="badge badge-light font-weight-normal text-left"><i class="far fa-square"></i> {{ room.name }}</span>
|
3
|
+
{%- else -%}
|
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
|
+
{%- endif -%}
|