jekyll-theme-conference 4.1.0 → 5.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.
- checksums.yaml +4 -4
- data/README.md +204 -150
- data/UPGRADE_GUIDE.md +140 -21
- data/_data/conference_assets.yml +1 -1
- data/_data/lang.yml +9 -1
- data/_includes/checks.html +121 -29
- data/_includes/conference_config.json +11 -6
- data/_includes/footer.html +1 -1
- data/_includes/get_edition.html +85 -0
- data/_includes/get_link.html +7 -6
- data/_includes/get_link_tag_streaming.html +3 -3
- data/_includes/get_live_timestamps.html +5 -5
- data/_includes/get_location_config.html +5 -0
- data/_includes/get_menu.html +30 -0
- data/_includes/get_overview_url.html +18 -0
- data/_includes/get_page_description.html +4 -4
- data/_includes/get_program_config.html +34 -21
- data/_includes/get_room_live_href.html +1 -1
- data/_includes/get_schema_event.html +28 -0
- data/_includes/get_start_times.html +1 -1
- data/_includes/get_tag_icon.html +1 -1
- data/_includes/get_talk_overview_talk.html +4 -4
- data/_includes/get_time_pronoun.html +1 -1
- data/_includes/get_track_properties.html +1 -1
- data/_includes/header.html +5 -3
- data/_includes/hidden_page.html +7 -5
- data/_includes/infobox.html +11 -8
- data/_includes/list_header_meta.html +9 -9
- data/_includes/list_header_pwa.html +1 -1
- data/_includes/list_speakers.html +1 -1
- data/_includes/modal_live.html +4 -4
- data/_includes/navbar.html +41 -22
- data/_includes/navbar_pwa.html +13 -12
- data/_includes/navbar_rooms.html +2 -2
- data/_includes/schema_conference.html +26 -48
- data/_includes/schema_location.html +3 -3
- data/_includes/schema_room.html +1 -1
- data/_includes/schema_speaker.html +3 -3
- data/_includes/schema_talk.html +9 -21
- data/_includes/show_live_icon.html +1 -1
- data/_includes/show_menu_items.html +19 -0
- data/_includes/show_talk_info.html +3 -3
- data/_includes/show_talk_time.html +3 -3
- data/_layouts/editions.html +20 -0
- data/_layouts/home.html +11 -14
- data/_layouts/htaccess.html +19 -0
- data/_layouts/json-data.html +7 -6
- data/_layouts/json-site.html +11 -1
- data/_layouts/location.html +5 -3
- data/_layouts/manifest.html +6 -5
- data/_layouts/program.html +9 -8
- data/_layouts/room.html +3 -2
- data/_layouts/speaker-overview.html +1 -1
- data/_layouts/speaker.html +7 -4
- data/_layouts/stream-overview.html +2 -2
- data/_layouts/sw.js +14 -2
- data/_layouts/talk-overview.html +4 -4
- data/_layouts/talk.html +5 -2
- data/assets/js/conference.bundle.js +1 -1
- metadata +8 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Edition of the current page, e.g. "2025" for /2025/talks/x/ (Front Matter
|
|
3
|
+
`edition`, set per folder via `defaults`; none: the current edition). The
|
|
4
|
+
current edition is the first of `conference.editions` with `current: true`,
|
|
5
|
+
else the first one. Without `conference.editions` there is a single edition:
|
|
6
|
+
`edition` is nil and everything below is the site's own. Sets:
|
|
7
|
+
- edition, edition_config (its `editions` entry), edition_current_id,
|
|
8
|
+
edition_current (true on the current edition)
|
|
9
|
+
- edition_base: URL prefix of the edition's pages, e.g. "/2025" (or "")
|
|
10
|
+
- edition_documents: folder of linked files, e.g. "/2025/documents"
|
|
11
|
+
- edition_talks, edition_speakers, edition_program
|
|
12
|
+
- edition_rooms: by `order`, else as they first appear in the program
|
|
13
|
+
- edition_title, edition_description and per sub-setting (e.g.
|
|
14
|
+
`navigation.logo`): edition_link_preview, edition_schema_org,
|
|
15
|
+
edition_nav_logo, edition_nav_links, edition_nav_breakpoint,
|
|
16
|
+
edition_nav_editions,
|
|
17
|
+
edition_info_bars, edition_info_modals, edition_tracks, edition_tags:
|
|
18
|
+
the edition's setting, else the site's
|
|
19
|
+
- edition_live: `conference.live` on the current edition, else nil
|
|
20
|
+
{%- endcomment -%}
|
|
21
|
+
{%- assign edition = nil -%}
|
|
22
|
+
{%- assign edition_config = nil -%}
|
|
23
|
+
{%- assign edition_current_id = nil -%}
|
|
24
|
+
{%- assign edition_current = true -%}
|
|
25
|
+
{%- assign edition_base = "" -%}
|
|
26
|
+
{%- assign edition_talks = site.talks -%}
|
|
27
|
+
{%- assign edition_speakers = site.speakers -%}
|
|
28
|
+
{%- assign edition_rooms = site.rooms -%}
|
|
29
|
+
{%- assign edition_program = site.data.program -%}
|
|
30
|
+
|
|
31
|
+
{%- assign editions = site.conference.editions -%}
|
|
32
|
+
{%- if editions.size > 0 -%}
|
|
33
|
+
{%- assign edition_current_config = editions | where: "current", true | first | default: editions[0] -%}
|
|
34
|
+
{%- assign edition_current_id = edition_current_config.id | append: "" -%}
|
|
35
|
+
{%- assign edition = page.edition | default: edition_current_id | append: "" -%}
|
|
36
|
+
{%- assign edition_config = editions | where: "id", edition | first -%}
|
|
37
|
+
{%- if edition != edition_current_id -%}
|
|
38
|
+
{%- assign edition_current = false -%}
|
|
39
|
+
{%- endif -%}
|
|
40
|
+
|
|
41
|
+
{%- assign edition_base = "/" | append: edition -%}
|
|
42
|
+
{%- assign edition_talks = site.talks | where: "edition", edition -%}
|
|
43
|
+
{%- assign edition_speakers = site.speakers | where: "edition", edition -%}
|
|
44
|
+
{%- assign edition_rooms = site.rooms | where: "edition", edition -%}
|
|
45
|
+
{%- assign edition_program = site.data.programs[edition] -%}
|
|
46
|
+
{%- endif -%}
|
|
47
|
+
{%- assign edition_documents = edition_base | append: "/documents" -%}
|
|
48
|
+
|
|
49
|
+
{%- comment -%}
|
|
50
|
+
Rooms by `order`, else as they first appear in the program (e.g. the
|
|
51
|
+
program's room columns), followed by rooms not in it
|
|
52
|
+
{%- endcomment -%}
|
|
53
|
+
{%- assign rooms_with_order = edition_rooms | where_exp: "r", "r.order != nil" -%}
|
|
54
|
+
{%- if rooms_with_order.size > 0 -%}
|
|
55
|
+
{%- assign edition_rooms = edition_rooms | sort: "order", "last" -%}
|
|
56
|
+
{%- else -%}
|
|
57
|
+
{%- assign rooms_by_program = "" | split: "" -%}
|
|
58
|
+
{%- for d in edition_program.days -%}
|
|
59
|
+
{%- for r in d.rooms -%}
|
|
60
|
+
{%- assign room = edition_rooms | where: "name", r.name | first -%}
|
|
61
|
+
{%- if room -%}
|
|
62
|
+
{%- assign rooms_by_program = rooms_by_program | push: room -%}
|
|
63
|
+
{%- endif -%}
|
|
64
|
+
{%- endfor -%}
|
|
65
|
+
{%- endfor -%}
|
|
66
|
+
{%- assign edition_rooms = rooms_by_program | concat: edition_rooms | uniq -%}
|
|
67
|
+
{%- endif -%}
|
|
68
|
+
|
|
69
|
+
{%- assign edition_title = edition_config.title | default: site.title -%}
|
|
70
|
+
{%- assign edition_description = edition_config.description | default: site.description -%}
|
|
71
|
+
{%- assign edition_link_preview = edition_config.meta.link_preview | default: site.conference.meta.link_preview -%}
|
|
72
|
+
{%- assign edition_schema_org = edition_config.meta.schema_org | default: site.conference.meta.schema_org -%}
|
|
73
|
+
{%- assign edition_nav_logo = edition_config.navigation.logo | default: site.conference.navigation.logo -%}
|
|
74
|
+
{%- assign edition_nav_links = edition_config.navigation.links | default: site.conference.navigation.links -%}
|
|
75
|
+
{%- assign edition_nav_breakpoint = edition_config.navigation.breakpoint | default: site.conference.navigation.breakpoint -%}
|
|
76
|
+
{%- assign edition_nav_editions = edition_config.navigation.editions | default: site.conference.navigation.editions -%}
|
|
77
|
+
{%- assign edition_info_bars = edition_config.info.bars | default: site.conference.info.bars -%}
|
|
78
|
+
{%- assign edition_info_modals = edition_config.info.modals | default: site.conference.info.modals -%}
|
|
79
|
+
{%- assign edition_tracks = edition_config.talks.tracks | default: site.conference.talks.tracks -%}
|
|
80
|
+
{%- assign edition_tags = edition_config.talks.tags | default: site.conference.talks.tags -%}
|
|
81
|
+
|
|
82
|
+
{%- assign edition_live = nil -%}
|
|
83
|
+
{%- if edition_current -%}
|
|
84
|
+
{%- assign edition_live = site.conference.live -%}
|
|
85
|
+
{%- endif -%}
|
data/_includes/get_link.html
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Link tag of `link`, e.g. {% include get_link.html context="talk" %}. The
|
|
3
3
|
context ("talk" with `talk`, "speaker" with `speaker`, or none) selects the
|
|
4
4
|
folder of files and the title of videos. Passed explicitly: variables of
|
|
5
|
-
that name may be left over from elsewhere on the page.
|
|
5
|
+
that name may be left over from elsewhere on the page. Relative URLs and
|
|
6
|
+
files belong to the page's edition, e.g. /program/ -> /2025/program/.
|
|
6
7
|
{%- endcomment -%}
|
|
7
8
|
{%- assign link_valid = false -%}
|
|
8
9
|
{%- if link.live -%}
|
|
@@ -32,19 +33,19 @@
|
|
|
32
33
|
{%- assign link_href = link.absolute_url -%}
|
|
33
34
|
|
|
34
35
|
{%- elsif link.relative_url -%}
|
|
35
|
-
{%- assign link_href = link.relative_url | prepend: site.baseurl -%}
|
|
36
|
+
{%- assign link_href = link.relative_url | prepend: edition_base | prepend: site.baseurl -%}
|
|
36
37
|
|
|
37
38
|
{%- elsif link.file -%}
|
|
38
39
|
{%- assign link_icon = link.icon | default: "file-earmark-text" -%}
|
|
39
40
|
|
|
40
41
|
{%- if include.context == "talk" -%}
|
|
41
|
-
{%- assign link_href = link.file | prepend: '/
|
|
42
|
+
{%- assign link_href = link.file | prepend: '/slides/' | prepend: edition_documents | prepend: site.baseurl -%}
|
|
42
43
|
|
|
43
44
|
{%- elsif include.context == "speaker" -%}
|
|
44
|
-
{%- assign link_href = link.file | prepend: '/
|
|
45
|
+
{%- assign link_href = link.file | prepend: '/bio/' | prepend: edition_documents | prepend: site.baseurl -%}
|
|
45
46
|
|
|
46
47
|
{%- else -%}
|
|
47
|
-
{%- assign link_href = link.file | prepend: '/
|
|
48
|
+
{%- assign link_href = link.file | prepend: '/' | prepend: edition_documents | prepend: site.baseurl -%}
|
|
48
49
|
|
|
49
50
|
{%- endif -%}
|
|
50
51
|
|
|
@@ -139,7 +140,7 @@
|
|
|
139
140
|
>
|
|
140
141
|
|
|
141
142
|
{%- elsif link.live -%}
|
|
142
|
-
{%- if
|
|
143
|
+
{%- if edition_live and edition_live.streaming.enable -%}
|
|
143
144
|
{% include get_link_tag_streaming.html class=link_class %}
|
|
144
145
|
{%- else-%}
|
|
145
146
|
<a
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{%- assign stream_label = site.data.lang[site.conference.lang].live.stream | default: "Live Stream" -%}
|
|
2
2
|
|
|
3
|
-
{%- if
|
|
3
|
+
{%- if edition_live.streaming.external -%}
|
|
4
4
|
<a
|
|
5
5
|
class="{{ include.class }}"
|
|
6
|
-
href="{{
|
|
6
|
+
href="{{ edition_live.streaming.external }}"
|
|
7
7
|
title="{{ stream_label }}"
|
|
8
8
|
>
|
|
9
9
|
{%- else -%}
|
|
10
10
|
{%- if r -%}
|
|
11
11
|
{%- assign data_room = r -%}
|
|
12
12
|
{%- else -%}
|
|
13
|
-
{% assign data_room =
|
|
13
|
+
{% assign data_room = edition_rooms | first %}
|
|
14
14
|
{%- endif -%}
|
|
15
15
|
<a
|
|
16
16
|
class="{{ include.class }}"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
{%- assign min_pause =
|
|
1
|
+
{%- assign min_pause = edition_live.stop | default: 240 -%}
|
|
2
2
|
{%- assign min_pause = min_pause | times: 60 -%}
|
|
3
3
|
|
|
4
|
-
{%- if
|
|
5
|
-
{%- assign offset_start =
|
|
6
|
-
{%- assign offset_end =
|
|
4
|
+
{%- if edition_live.streaming.enable -%}
|
|
5
|
+
{%- assign offset_start = edition_live.streaming.prepend | default: 5 -%}
|
|
6
|
+
{%- assign offset_end = edition_live.streaming.extend | default: 5 -%}
|
|
7
7
|
{%- else -%}
|
|
8
8
|
{%- assign offset_start = 0 -%}
|
|
9
9
|
{%- assign offset_end = 0 -%}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
{%- assign live_starts = "" -%}
|
|
13
13
|
{%- assign live_ends = "" -%}
|
|
14
14
|
|
|
15
|
-
{%- for d in
|
|
15
|
+
{%- for d in edition_program.days -%}
|
|
16
16
|
{%- for r in d.rooms -%}
|
|
17
17
|
{%- assign last_end = 0 -%}
|
|
18
18
|
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
{%- for p in site.pages -%}
|
|
9
9
|
{%- if p.layout == 'location' -%}
|
|
10
|
+
{%- comment -%} The page of this edition {%- endcomment -%}
|
|
11
|
+
{%- assign p_edition = p.edition | default: edition_current_id | append: "" -%}
|
|
12
|
+
{%- if edition and p_edition != edition -%}
|
|
13
|
+
{%- continue -%}
|
|
14
|
+
{%- endif -%}
|
|
10
15
|
{%- assign location_page = p -%}
|
|
11
16
|
{%- break -%}
|
|
12
17
|
{%- endif -%}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Dropdown menu of a link: `menu` lists its links, or is "editions" for the
|
|
3
|
+
menu to switch between editions. Input: link, or include.menu instead
|
|
4
|
+
(e.g. menu="editions"). Sets:
|
|
5
|
+
- menu_links: the list of links, or "editions"
|
|
6
|
+
- menu_name: the link's `name`; for editions, else `navigation.editions.name`,
|
|
7
|
+
else the page's edition id (e.g. "2026")
|
|
8
|
+
- menu_label: accessible name of the toggle if its text alone is unclear,
|
|
9
|
+
e.g. "Edition: 2026" (else nil)
|
|
10
|
+
- menu_empty: true for editions with fewer than two editions
|
|
11
|
+
{%- endcomment -%}
|
|
12
|
+
{%- assign menu_links = link.menu -%}
|
|
13
|
+
{%- assign menu_name = link.name -%}
|
|
14
|
+
{%- if include.menu -%}
|
|
15
|
+
{%- assign menu_links = include.menu -%}
|
|
16
|
+
{%- assign menu_name = nil -%}
|
|
17
|
+
{%- endif -%}
|
|
18
|
+
{%- assign menu_label = nil -%}
|
|
19
|
+
{%- assign menu_empty = false -%}
|
|
20
|
+
|
|
21
|
+
{%- if menu_links == "editions" -%}
|
|
22
|
+
{%- if site.conference.editions.size < 2 -%}
|
|
23
|
+
{%- assign menu_empty = true -%}
|
|
24
|
+
{%- endif -%}
|
|
25
|
+
{%- assign menu_name = menu_name | default: edition_nav_editions.name -%}
|
|
26
|
+
{%- unless menu_name -%}
|
|
27
|
+
{%- assign menu_name = edition -%}
|
|
28
|
+
{%- assign menu_label = site.data.lang[site.conference.lang].editions.title | default: "Edition" | append: ": " | append: edition -%}
|
|
29
|
+
{%- endunless -%}
|
|
30
|
+
{%- endif -%}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
URL of the edition's overview page with the given layout, wherever it
|
|
3
|
+
lives, e.g. include.layout="speaker-overview" for /2025/people/. Sets
|
|
4
|
+
overview_url (nil without such a page).
|
|
5
|
+
{%- endcomment -%}
|
|
6
|
+
{%- assign overview_url = nil -%}
|
|
7
|
+
|
|
8
|
+
{%- for p in site.pages -%}
|
|
9
|
+
{%- if p.layout == include.layout -%}
|
|
10
|
+
{%- comment -%} The page of this edition {%- endcomment -%}
|
|
11
|
+
{%- assign p_edition = p.edition | default: edition_current_id | append: "" -%}
|
|
12
|
+
{%- if edition and p_edition != edition -%}
|
|
13
|
+
{%- continue -%}
|
|
14
|
+
{%- endif -%}
|
|
15
|
+
{%- assign overview_url = p.url -%}
|
|
16
|
+
{%- break -%}
|
|
17
|
+
{%- endif -%}
|
|
18
|
+
{%- endfor -%}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
{%- capture page_description -%}
|
|
8
8
|
{%- if page.layout == 'talk' -%}
|
|
9
|
-
{{ site.data.lang[site.conference.lang].talk.title | default: 'Talk' }} {{ site.data.lang[site.conference.lang].pronoun.by | default: 'by'}} {% include list_speakers.html text_only=true %} {{ preposition }} {{
|
|
9
|
+
{{ site.data.lang[site.conference.lang].talk.title | default: 'Talk' }} {{ site.data.lang[site.conference.lang].pronoun.by | default: 'by'}} {% include list_speakers.html text_only=true %} {{ preposition }} {{ edition_title }}
|
|
10
10
|
{%- elsif page.layout == 'speaker' -%}
|
|
11
|
-
{{ site.data.lang[site.conference.lang].speaker.title | default: 'Speaker' }} {{ preposition }} {{
|
|
12
|
-
{%- elsif
|
|
13
|
-
{{
|
|
11
|
+
{{ site.data.lang[site.conference.lang].speaker.title | default: 'Speaker' }} {{ preposition }} {{ edition_title }}
|
|
12
|
+
{%- elsif edition_description -%}
|
|
13
|
+
{{ edition_description }}
|
|
14
14
|
{%- endif -%}
|
|
15
15
|
{%- endcapture -%}
|
|
16
16
|
|
|
@@ -1,28 +1,41 @@
|
|
|
1
|
-
{%-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Resolved once per page and edition: get_talk_time.html includes this for
|
|
3
|
+
every talk and time step of the program
|
|
4
|
+
{%- endcomment -%}
|
|
5
|
+
{%- assign program_config_key = page.url | append: "|" | append: edition -%}
|
|
6
|
+
{%- unless program_config_resolved == program_config_key -%}
|
|
7
|
+
{%- assign program_page = nil -%}
|
|
8
|
+
{%- assign program_url = nil -%}
|
|
9
|
+
{%- assign program_time_steps = 15 -%}
|
|
4
10
|
|
|
5
|
-
{%- for p in site.pages -%}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
{%-
|
|
11
|
+
{%- for p in site.pages -%}
|
|
12
|
+
{%- if p.layout == 'program' -%}
|
|
13
|
+
{%- comment -%} The page of this edition {%- endcomment -%}
|
|
14
|
+
{%- assign p_edition = p.edition | default: edition_current_id | append: "" -%}
|
|
15
|
+
{%- if edition and p_edition != edition -%}
|
|
16
|
+
{%- continue -%}
|
|
17
|
+
{%- endif -%}
|
|
18
|
+
{%- assign program_page = p -%}
|
|
19
|
+
{%- break -%}
|
|
20
|
+
{%- endif -%}
|
|
21
|
+
{%- endfor -%}
|
|
11
22
|
|
|
12
|
-
{%- if program_page -%}
|
|
13
|
-
|
|
23
|
+
{%- if program_page -%}
|
|
24
|
+
{%- assign program_url = program_page.url -%}
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
{%- comment -%} A program page rounds talks to its own time steps {%- endcomment -%}
|
|
27
|
+
{%- if page.layout == 'program' -%}
|
|
28
|
+
{%- assign program_page = page -%}
|
|
29
|
+
{%- endif -%}
|
|
19
30
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
{%- if program_page.time_steps -%}
|
|
32
|
+
{%- if program_page.time_steps == "start" -%}
|
|
33
|
+
{%- assign program_time_steps = 1 -%}
|
|
34
|
+
{%- else -%}
|
|
35
|
+
{%- assign program_time_steps = program_page.time_steps -%}
|
|
36
|
+
{%- endif -%}
|
|
25
37
|
{%- endif -%}
|
|
26
38
|
{%- endif -%}
|
|
27
|
-
{%- endif -%}
|
|
28
39
|
|
|
40
|
+
{%- assign program_config_resolved = program_config_key -%}
|
|
41
|
+
{%- endunless -%}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
{%- if room.live.absolute_url -%}
|
|
4
4
|
{%- assign room_live_href = room.live.absolute_url -%}
|
|
5
5
|
{%- elsif room.live.relative_url -%}
|
|
6
|
-
{%- assign room_live_href = room.live.relative_url | prepend: site.baseurl -%}
|
|
6
|
+
{%- assign room_live_href = room.live.relative_url | prepend: edition_base | prepend: site.baseurl -%}
|
|
7
7
|
{%- endif -%}
|
|
8
8
|
{%- endif -%}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Schema.org EventStatus and EventAttendanceMode of the edition, e.g.
|
|
3
|
+
`event_status: postponed` sets event_status to "EventPostponed". Sets
|
|
4
|
+
event_status, event_attendance_mode.
|
|
5
|
+
{%- endcomment -%}
|
|
6
|
+
{%- assign event_status_raw = edition_schema_org.event_status | default: "scheduled" -%}
|
|
7
|
+
{%- if event_status_raw == "scheduled" -%}
|
|
8
|
+
{%- assign event_status = "EventScheduled" -%}
|
|
9
|
+
{%- elsif event_status_raw == "cancelled" -%}
|
|
10
|
+
{%- assign event_status = "EventCancelled" -%}
|
|
11
|
+
{%- elsif event_status_raw == "postponed" -%}
|
|
12
|
+
{%- assign event_status = "EventPostponed" -%}
|
|
13
|
+
{%- elsif event_status_raw == "moved_online" -%}
|
|
14
|
+
{%- assign event_status = "EventMovedOnline" -%}
|
|
15
|
+
{%- else -%}
|
|
16
|
+
{%- assign event_status = "EventScheduled" -%}
|
|
17
|
+
{%- endif -%}
|
|
18
|
+
|
|
19
|
+
{%- assign event_attendance_mode_raw = edition_schema_org.event_attendance_mode | default: "offline" -%}
|
|
20
|
+
{%- if event_attendance_mode_raw == "offline" -%}
|
|
21
|
+
{%- assign event_attendance_mode = "OfflineEventAttendanceMode" -%}
|
|
22
|
+
{%- elsif event_attendance_mode_raw == "online" -%}
|
|
23
|
+
{%- assign event_attendance_mode = "OnlineEventAttendanceMode" -%}
|
|
24
|
+
{%- elsif event_attendance_mode_raw == "mixed" -%}
|
|
25
|
+
{%- assign event_attendance_mode = "MixedEventAttendanceMode" -%}
|
|
26
|
+
{%- else -%}
|
|
27
|
+
{%- assign event_attendance_mode = "OfflineEventAttendanceMode" -%}
|
|
28
|
+
{%- endif -%}
|
data/_includes/get_tag_icon.html
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
{% if talk.hide -%}
|
|
11
11
|
{%- assign talk_scheduled = false -%}
|
|
12
|
-
{%- for d in
|
|
12
|
+
{%- for d in edition_program.days -%}
|
|
13
13
|
{%- include get_day_hash.html -%}
|
|
14
14
|
{%- for r in d.rooms -%}
|
|
15
|
-
{%- assign room =
|
|
15
|
+
{%- assign room = edition_rooms | where: 'name', r.name | first -%}
|
|
16
16
|
{%- for t in r.talks -%}
|
|
17
17
|
{%- if talk.name == t.name -%}
|
|
18
18
|
<p class="mb-1 fw-light">
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
{%- endif %}
|
|
37
37
|
|
|
38
38
|
<p class="mb-0">
|
|
39
|
-
{%- if
|
|
40
|
-
{% for d in
|
|
39
|
+
{%- if edition_live and talk.hide != true -%}
|
|
40
|
+
{% for d in edition_program.days -%}
|
|
41
41
|
{%- for r in d.rooms -%}
|
|
42
42
|
{%- for t in r.talks -%}
|
|
43
43
|
{%- if talk.name == t.name -%}
|
data/_includes/header.html
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
{%- include get_edition.html -%}
|
|
1
2
|
<!DOCTYPE html>
|
|
2
3
|
<html lang="{{ site.conference.lang | default: 'en' }}">
|
|
3
4
|
|
|
@@ -9,7 +10,7 @@
|
|
|
9
10
|
<title>
|
|
10
11
|
{{- page_title | escape -}}
|
|
11
12
|
{%- unless page_title == empty %} - {% endunless -%}
|
|
12
|
-
{{-
|
|
13
|
+
{{- edition_title -}}
|
|
13
14
|
</title>
|
|
14
15
|
{% include list_header_meta.html %}
|
|
15
16
|
|
|
@@ -46,11 +47,12 @@
|
|
|
46
47
|
<!-- navigation bar (web only): -->
|
|
47
48
|
{%- include navbar.html -%}
|
|
48
49
|
|
|
49
|
-
{%-
|
|
50
|
+
{%- assign home_url = edition_base | append: "/" -%}
|
|
51
|
+
{%- unless page.url == home_url -%}
|
|
50
52
|
<!-- site title (print only): -->
|
|
51
53
|
<div class="container d-none d-print-block mt-4 mb-4">
|
|
52
54
|
<h1 class="display-4">
|
|
53
|
-
{{
|
|
55
|
+
{{ edition_title }}
|
|
54
56
|
</h1>
|
|
55
57
|
</div>
|
|
56
58
|
{%- endunless -%}
|
data/_includes/hidden_page.html
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
{%- comment -%}
|
|
2
|
-
Stand-in for a hidden talk, speaker or
|
|
3
|
-
document, so make it a complete one that points to the home
|
|
2
|
+
Stand-in for a hidden talk, speaker, room or location page: Jekyll writes a
|
|
3
|
+
page for every document, so make it a complete one that points to the home
|
|
4
|
+
page
|
|
4
5
|
{%- endcomment -%}
|
|
6
|
+
{%- include get_edition.html -%}
|
|
5
7
|
<!DOCTYPE html>
|
|
6
8
|
<html lang="{{ site.conference.lang | default: 'en' }}">
|
|
7
9
|
<head>
|
|
8
10
|
<meta charset="utf-8" />
|
|
9
11
|
<meta name="robots" content="noindex">
|
|
10
|
-
<meta http-equiv="refresh" content="0; url={{ site.baseurl }}/">
|
|
11
|
-
<title>{{
|
|
12
|
+
<meta http-equiv="refresh" content="0; url={{ site.baseurl }}{{ edition_base }}/">
|
|
13
|
+
<title>{{ edition_title | escape }}</title>
|
|
12
14
|
</head>
|
|
13
15
|
<body>
|
|
14
16
|
<main>
|
|
15
|
-
<h1><a href="{{ site.baseurl }}/">{{
|
|
17
|
+
<h1><a href="{{ site.baseurl }}{{ edition_base }}/">{{ edition_title | escape }}</a></h1>
|
|
16
18
|
</main>
|
|
17
19
|
</body>
|
|
18
20
|
</html>
|
data/_includes/infobox.html
CHANGED
|
@@ -11,14 +11,17 @@
|
|
|
11
11
|
{%- endif -%}
|
|
12
12
|
{%- endif -%}
|
|
13
13
|
|
|
14
|
-
{%-
|
|
15
|
-
|
|
14
|
+
{%- comment -%} Main page of the edition, e.g. /2025/ {%- endcomment -%}
|
|
15
|
+
{%- assign home_url = edition_base | append: "/" -%}
|
|
16
|
+
|
|
17
|
+
{%- if edition_info_bars.size > 0 -%}
|
|
18
|
+
{%- for infobar in edition_info_bars -%}
|
|
16
19
|
|
|
17
20
|
{%- assign show_infobar = false -%}
|
|
18
|
-
{%- if page.url ==
|
|
21
|
+
{%- if page.url == home_url and infobar.pages_only != true -%}
|
|
19
22
|
{%- assign show_infobar = true -%}
|
|
20
23
|
{%- endif -%}
|
|
21
|
-
{%- if page.url !=
|
|
24
|
+
{%- if page.url != home_url and infobar.main_only != true -%}
|
|
22
25
|
{%- assign show_infobar = true -%}
|
|
23
26
|
{%- endif -%}
|
|
24
27
|
|
|
@@ -46,14 +49,14 @@
|
|
|
46
49
|
{%- endfor -%}
|
|
47
50
|
{%- endif -%}
|
|
48
51
|
|
|
49
|
-
{%- if
|
|
50
|
-
{%- for infomodal in
|
|
52
|
+
{%- if edition_info_modals.size > 0 -%}
|
|
53
|
+
{%- for infomodal in edition_info_modals -%}
|
|
51
54
|
|
|
52
55
|
{%- assign show_infomodal = false -%}
|
|
53
|
-
{%- if page.url ==
|
|
56
|
+
{%- if page.url == home_url and infomodal.pages_only != true -%}
|
|
54
57
|
{%- assign show_infomodal = true -%}
|
|
55
58
|
{%- endif -%}
|
|
56
|
-
{%- if page.url !=
|
|
59
|
+
{%- if page.url != home_url and infomodal.main_only != true -%}
|
|
57
60
|
{%- assign show_infomodal = true -%}
|
|
58
61
|
{%- endif -%}
|
|
59
62
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
{%- include get_page_title.html default=
|
|
2
|
-
{%- include get_page_description.html default=
|
|
1
|
+
{%- include get_page_title.html default=edition_title replace_quotes=true -%}
|
|
2
|
+
{%- include get_page_description.html default=edition_title replace_quotes=true -%}
|
|
3
3
|
|
|
4
4
|
<meta name="description" content="{{ page_description | escape }}" />
|
|
5
5
|
|
|
6
6
|
{%- comment -%} Canonical URL {%- endcomment -%}
|
|
7
7
|
<link rel="canonical" href="{{ page.url | prepend: site.baseurl | prepend: site.url }}" />
|
|
8
8
|
|
|
9
|
-
{% unless
|
|
9
|
+
{% unless edition_link_preview.disable -%}
|
|
10
10
|
{%- comment -%} Twitter Card tags {%- endcomment -%}
|
|
11
|
-
{%- if
|
|
11
|
+
{%- if edition_link_preview.img and edition_link_preview.img.twitter %}
|
|
12
12
|
<meta name="twitter:card" content="summary_large_image" />
|
|
13
|
-
<meta name="twitter:image" content="{{
|
|
13
|
+
<meta name="twitter:image" content="{{ edition_link_preview.img.twitter | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
|
|
14
14
|
{%- else %}
|
|
15
15
|
<meta name="twitter:card" content="summary" />
|
|
16
16
|
{%- endif %}
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
<meta name="twitter:description" content="{{ page_description | escape }}" />
|
|
19
19
|
|
|
20
20
|
{%- comment -%} Open Graph tags {%- endcomment -%}
|
|
21
|
-
<meta property="og:site_name" content="{{
|
|
22
|
-
{%- if
|
|
23
|
-
{%- assign og_image_url =
|
|
21
|
+
<meta property="og:site_name" content="{{ edition_title }}" />
|
|
22
|
+
{%- if edition_link_preview.img and edition_link_preview.img.open_graph %}
|
|
23
|
+
{%- assign og_image_url = edition_link_preview.img.open_graph | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url -%}
|
|
24
24
|
<meta property="og:image" content="{{ og_image_url }}" />
|
|
25
25
|
<meta property="og:image:alt" content="{{ page_title | escape }}" />
|
|
26
26
|
{%- endif %}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
{%- endunless %}
|
|
32
32
|
|
|
33
33
|
{%- comment -%} Schema.org JSON-LD structured data {%- endcomment -%}
|
|
34
|
-
{%- unless
|
|
34
|
+
{%- unless edition_schema_org.disable -%}
|
|
35
35
|
{%- if page.layout == 'talk' -%}
|
|
36
36
|
{%- include schema_talk.html -%}
|
|
37
37
|
{%- elsif page.layout == 'speaker' -%}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<meta name="theme-color" content="{{ pwa_theme_color }}" />
|
|
8
8
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
9
9
|
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
10
|
-
<meta name="apple-mobile-web-app-title" content="{{
|
|
10
|
+
<meta name="apple-mobile-web-app-title" content="{{ edition_title }}" />
|
|
11
11
|
|
|
12
12
|
{% if site.conference.pwa.icons -%}
|
|
13
13
|
{%- assign icon = site.conference.pwa.icons | first -%}
|
data/_includes/modal_live.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
<div class="modal-body ratio ratio-16x9">
|
|
14
14
|
<iframe referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="{{ live_lang.stream | default: 'Live Stream' }}"></iframe>
|
|
15
|
-
{%- include embed_consent.html hidden=true click_to_load=
|
|
15
|
+
{%- include embed_consent.html hidden=true click_to_load=edition_live.streaming.click_to_load %}
|
|
16
16
|
<div id="stream-placeholder" class="d-none justify-content-center align-items-center" role="status" aria-live="polite" aria-atomic="true">
|
|
17
17
|
<div id="stream-modal-desc"></div>
|
|
18
18
|
<div id="stream-offline" class="d-none">
|
|
@@ -33,14 +33,14 @@
|
|
|
33
33
|
</div>
|
|
34
34
|
|
|
35
35
|
<div class="modal-footer justify-content-around">
|
|
36
|
-
{%- for room in
|
|
36
|
+
{%- for room in edition_rooms -%}
|
|
37
37
|
<button type="button" id="stream-button{{ forloop.index }}" class="btn btn-outline-primary d-none d-sm-inline" data-room="{{ room.name | escape }}" aria-pressed="false"{% unless room.live %} disabled{% endunless %}>
|
|
38
38
|
{{ room.name | escape }}
|
|
39
39
|
</button>
|
|
40
40
|
{%- endfor %}
|
|
41
41
|
<div class="w-100 d-block d-sm-none">
|
|
42
42
|
<select class="form-select" id="stream-select" aria-label="{{ site.data.lang[site.conference.lang].location.rooms | default: 'Rooms' }}">
|
|
43
|
-
{%- for room in
|
|
43
|
+
{%- for room in edition_rooms -%}
|
|
44
44
|
<option value="{{ forloop.index }}"{% unless room.live %} disabled{% endunless %}>{{ room.name | escape }}</option>
|
|
45
45
|
{%- endfor %}
|
|
46
46
|
</select>
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
{%- comment -%} Icons of the talks' live links, e.g. for a "Q&A" button {%- endcomment -%}
|
|
51
51
|
{%- assign live_icons = "" | split: "" -%}
|
|
52
|
-
{%- for talk in
|
|
52
|
+
{%- for talk in edition_talks -%}
|
|
53
53
|
{%- for link in talk.links -%}
|
|
54
54
|
{%- if link.live and link.icon -%}
|
|
55
55
|
{%- assign live_icons = live_icons | push: link.icon -%}
|