jekyll-theme-conference 3.6.7 → 3.7.1

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: d8bdd1485da018cf75b0fd718f064cbf1bc69e450550ee90bc90d9dcc82c6a43
4
- data.tar.gz: c752b33abeda1d546170e16a5d187a2b083e79b89b83e829dbb0a46635b253e9
3
+ metadata.gz: 14df4316c5e862e8c82f79e0f5a3f72bd853e887de0b682a2c39d3f4d2c1c679
4
+ data.tar.gz: d93e7c6ffd7295f70437889e1dfa412ff4016847a0d5dff78bb6c7536cd38868
5
5
  SHA512:
6
- metadata.gz: 6f05431d3e0f9f21f04594c81874df6610ebb3b9ab46e6e9deee9cb0dd3264d262611a6d0bea8fe5472ca60fa92175e23672338dd2ccef9c62619bf6639674d7
7
- data.tar.gz: 4ca82e19cd2f771a3872d7c082dfd8754579e303da448369baf12d847d4d59686cba7781d1dd520b8a710f4a9d9e4cbd8ebb9bef9193059616a7618bd7f77140
6
+ metadata.gz: 8081fcab1154116b7b183fb18babfeed96377df783fa14ce6a9e625ad7144bd07ae11fa3d4f2aaa0192809f8d4f09c7b85a8e88d2378ae8274b46e0cf3034985
7
+ data.tar.gz: 8ed5663bfedc430cd1f23660f3fe2144e1fd4751024c5872bb82682c0346a943335016cee0ecfc1247d2020a905a67d52b7e17a60d3d610612b2eccb0fb3338b
data/README.md CHANGED
@@ -139,15 +139,15 @@ To be up and running simply use the default content of this repository as an ini
139
139
 
140
140
  ### Automatic Import
141
141
 
142
- There exists a Python file in this repository, `_tools/create_entries.py`, which can be used to import content from a [frab](https://github.com/frab/frab/wiki/Manual#introduction) compatible JSON file (e.g., from [pretalx.com](https://pretalx.com/p/about/)) or a CSV table and generate the different talk, speakers and room files automatically.
142
+ In this repository, you'll find the Python file `_tools/import_schedule.py`. This script allows you to import content from a [frab](https://github.com/frab/frab/wiki/Manual#introduction)-compatible JSON file, such as those exported from [pretalx.com](https://pretalx.com/p/about/)."
143
143
 
144
- 1. Copy the files `_tools/create_entries.py` and `_tools/requirements.txt` from this repository
144
+ 1. Copy the files `_tools/import_schedule.py` and `_tools/requirements.txt` from this repository
145
145
 
146
146
  2. Create a virtual environment and activate it
147
147
 
148
148
  ```bash
149
- python -m venv venv
150
- source venv/bin/activate
149
+ python -m venv .venv
150
+ source .venv/bin/activate
151
151
  ```
152
152
 
153
153
  3. Install the requirements
@@ -159,16 +159,16 @@ There exists a Python file in this repository, `_tools/create_entries.py`, which
159
159
  4. Execute the script, e.g., to show the help type
160
160
 
161
161
  ```bash
162
- python _tools/create_entries.py --help
162
+ python _tools/import_schedule.py --help
163
163
  ```
164
164
 
165
165
  ### Automatic Build
166
166
 
167
- If you do not want to install the entire Ruby/Jekyll tool chain on your machine you can use [GitHub Actions](https://github.com/features/actions), Github's continuous integration platform. This repository contains multiple example Github Action configuration files in the `_tools/` folder:
167
+ If you prefer not to install the full Ruby/Jekyll toolchain locally, you can leverage [GitHub Actions](https://github.com/features/actions), GitHub's continuous integration platform. This repository includes several example GitHub Actions configuration files in the `_tools/` folder:
168
168
 
169
- - `build.yml`: automatically builds and minimizes the website upon adding a new tag starting with a `v` (e.g., `v2020.01.01`). It then attaches the generated website as an archive to a release for easy downloading. Requires `purgecss.config.js` to be copied to the project's root too.
170
- - `test.yml`: automatically tries to build the website upon a new pull request. It can thus be used as status check before merging.
171
- - `schedule.yml`: automatically generates the schedule and content files when a new pull request contains a `schedule.json` file (see the _Automatic Import_ subsection above). Thus, it allows quick updates of the site's content from [pretalx.com](https://pretalx.com/p/about/) exports.
169
+ - `build.yml`: This workflow automatically builds and optimizes the website whenever a new tag starting with `v` (e.g., `v2020.01.01`) is added. It then attaches the generated website as an archive to a release for easy download. Note that `purgecss.config.js` must also be copied to the project's root for this to work.
170
+ - `test.yml`: This workflow automatically attempts to build the website upon a new pull request, making it suitable for use as a status check before merging.
171
+ - `schedule.yml`: This workflow automatically generates schedule and content files when a new pull request includes a `schedule.json` file (refer to the 'Automatic Import' section for details). This enables quick content updates from [pretalx.com](https://pretalx.com/p/about/) exports.
172
172
 
173
173
  To get started, simply copy the desired workflow file to your repository and adapt it to your needs:
174
174
 
@@ -439,10 +439,12 @@ conference:
439
439
 
440
440
  ### Talk Settings
441
441
 
442
- Each talk can have one or multiple categories associated via FrontMatter (see the _Individual Pages: Talks_ section below for more details). Some of these categories can be elevated to so-called main categories". These are used to color group the talks across the entire website, particularly in the program. To do so add the `main_categories` property under the `talks` property. It consists of a list of all main categories. Each main category consists of:
442
+ Talks can optionally be organized into tracks, where each track groups talks under a common subject. Tracks are visually distinct across the website, especially in the program, by a unique color. Additionally, each talk can have one or more associated tags. Both tracks and tags are linked via the talk's FrontMatter (refer to the _Individual Pages: Talks_ section for more details).
443
443
 
444
- - its name (`name`, must be corresponding to the listed categories in the talk's FrontMatter), and
445
- - a color (`color`) following the Bootstrap color scheme (see below), possible values are:
444
+ To define available tracks, add the `tracks` property under the `talks` property in the configuration file. This property is a list of tracks, with each track requiring:
445
+
446
+ - its `name`, which must match the track specified in the talk's FrontMatter.
447
+ - a color (`color`) following the Bootstrap color scheme (see below), possible values include:
446
448
  - `primary` (your website's main color, normally blue)
447
449
  - `secondary` (your website's secondary color, normally grey)
448
450
  - `success` (green)
@@ -452,22 +454,32 @@ Each talk can have one or multiple categories associated via FrontMatter (see th
452
454
  - `light` (white)
453
455
  - `dark` (dark grey)
454
456
 
455
- Each talk can have associated links listed at the end of its content. If these links have an icon associated (see _Content_ > _Talks_ below), they are also shown on the talk overview page (e.g., to show in the overview, which talk has a video recording and, which not). To disable the showing of icon links on the overview page, set the `hide_icons` property to `true` (default: `false`).
457
+ Instead of displaying the tag name, you can replace it with an icon. To define tags with icons, add the `tags` property under the `talks property in your configuration file. Each listed tag requires:
458
+
459
+ - its `name`, which must match the tag specified in the talk's FrontMatter.
460
+ - optionally, an icon to show instead of the tag's name (`icon: ` followed by the [FontAwesome](https://fontawesome.com/icons?d=gallery&s=solid&m=free) icon name to show).
461
+
462
+ Talks can also have associated links displayed at the end of their content. If these links have an icon (see _Content_ > _Talks_ below), they will also appear on the talk overview page (e.g., to indicate which talks have video recordings). To prevent icon links from showing on the overview page, set the `hide_link_icons` property to `true` (default is `false`).
456
463
 
457
464
  Example:
458
465
 
459
466
  ```yaml
460
467
  conference:
461
468
  talks:
462
- # Talk categories
463
- main_categories:
464
- - name: Cat A
469
+ # Talk tracks
470
+ tracks:
471
+ - name: Track A
465
472
  color: info
466
- - name: Cat B
473
+ - name: Track B
467
474
  color: success
468
475
 
469
- # Hide icons on talk overview page
470
- hide_icons: false
476
+ # Talk tags
477
+ tags:
478
+ - name: No recording
479
+ icon: video-slash
480
+
481
+ # Hide link icons on talk overview page
482
+ hide_link_icons: false
471
483
  ```
472
484
 
473
485
  ### Speaker Settings
@@ -613,7 +625,8 @@ Each talk is represented by a file in the `_talks/` directory. It must begin wit
613
625
 
614
626
  - the talk's `name` (used as identifier),
615
627
  - one or more existing `speakers` name(s),
616
- - optionally, one or more `categories` of which one should be a main category as defined in the site's configuration,
628
+ - optionally, a `track` which should match the tracks defined in the site's configuration,
629
+ - optionally, a list of `tags`
617
630
  - optionally, a list of `links` (see the _Links_ subsection below for the available properties):
618
631
  - Links with an `icon` are treated separately and are also included on the talk overview page.
619
632
  - Links with `live: true` are only shown below the live stream for the given talk in form of buttons.
@@ -626,9 +639,9 @@ Example:
626
639
  name: Vim Impetus Placerat Cotidieque Ad
627
640
  speakers:
628
641
  - Tolga Philip
629
- categories:
630
- - Cat B
631
- - Talk
642
+ track: Track A
643
+ tags:
644
+ - Short
632
645
  ---
633
646
  ```
634
647
 
@@ -728,8 +741,8 @@ There exists a Python file in this repository, `_tools/import_resources.py`, whi
728
741
  2. Create a virtual environment and activate it
729
742
 
730
743
  ```bash
731
- python -m venv venv
732
- source venv/bin/activate
744
+ python -m venv .venv
745
+ source .venv/bin/activate
733
746
  ```
734
747
 
735
748
  3. Install the requirements
@@ -1,69 +1,105 @@
1
- {%- assign errors = '' | split: ',' -%}
2
-
3
- {%- unless site.data.lang.version -%}
4
- {%- unless site.conference.lang == "en" -%}
5
- {%- assign errors = errors | push : "The internationalization file containing different strings for this template seems to be missing. Have you copied the `_data/lang.yml` file from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/main/_data/lang.yml) to you local website folder?" -%}
6
- {%- endunless -%}
7
- {%- elsif site.data.lang.version != 8 -%}
8
- {%- assign errors = errors | push : "The internationalization file in `_data/lang.yml` seems to be outdated and does not correspond to the current version of the theme. Grab the current version from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/main/_data/lang.yml)." -%}
9
- {%- endunless -%}
10
- {%- unless site.conference.lang == "en" or site.conference.lang == "de" or site.conference.lang == "fr" or site.conference.lang == "pt" -%}
11
- {%- assign errors = errors | push : "Unknown language selected for `site.conference.lang` parameter. Supported are `en`, `de`, `fr`, and `pt`." -%}
12
- {%- endunless -%}
13
-
14
- {%- assign main_category_size = site.conference.talks.main_categories | size -%}
15
- {%- if main_category_size == 0 -%}
16
- {%- assign errors = errors | push : "Your `_config.yml` configuration file does not define any main category for your talks. Have you set the `conference.talks.main_categories` property? See also [Talk Settings](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/#talk-settings) section in the theme's README file." -%}
17
- {%- endif -%}
18
-
19
- {%- assign nbr_days = site.data.program.days | size -%}
20
- {%- if nbr_days == 0 -%}
21
- {%- assign errors = errors | push : "Your schedule in `_data/program.yml` does not seem to contain any days. Have you already created the file?" -%}
22
- {%- endif -%}
23
- {%- if site.conference.live -%}
24
- {%- for d in site.data.program.days -%}
25
- {%- unless d.date or d.date == "" -%}
26
- {%- assign error_msg = "Day " | append: forloop.index | append: " in your schedule should have a (non-empty) `date` property." -%}
27
- {%- assign errors = errors | push : error_msg -%}
28
- {%- endunless -%}
29
- {%- endfor -%}
30
- {%- endif -%}
31
-
32
- {%- assign nbr_rooms = site.rooms | size -%}
33
- {%- if nbr_rooms == 0 -%}
34
- {%- assign errors = errors | push : "The `rooms` collection does not seem to contain any entry. Have you accidentially renamed the collection or is your `_rooms/` folder empty?" -%}
35
- {%- else -%}
36
- {%- for room in site.rooms -%}
37
- {%- assign nbr_rooms_name = site.rooms | where: 'name', room.name | size %}
38
- {%- if nbr_rooms_name > 1 -%}
39
- {%- assign error_msg = "The room with the `name` _" | append: room.name | append: "_ oocures more than once but should be unique." -%}
40
- {%- assign errors = errors | push : error_msg -%}
41
- {%- endif -%}
42
- {%- endfor -%}
43
- {%- endif -%}
44
-
45
- {%- assign nbr_speakers = site.speakers | size -%}
46
- {%- if nbr_speakers == 0 -%}
47
- {%- assign errors = errors | push : "The `speakers` collection does not seem to contain any entry. Have you accidentially renamed the collection or is your `_speakers/` folder empty?" -%}
48
- {%- else -%}
49
- {%- for speaker in site.speakers -%}
50
- {%- assign nbr_speakers_name = site.speakers | where: 'name', speaker.name | size %}
51
- {%- if nbr_speakers_name > 1 -%}
52
- {%- assign error_msg = "The speaker with the `name` _" | append: speaker.name | append: "_ oocures more than once but should be unique." -%}
53
- {%- assign errors = errors | push : error_msg -%}
54
- {%- endif -%}
55
- {%- endfor -%}
56
- {%- endif -%}
57
-
58
- {%- assign nbr_talks = site.talks | size -%}
59
- {%- if nbr_talks == 0 -%}
60
- {%- assign errors = errors | push : "The `talks` collection does not seem to contain any entry. Have you accidentially renamed the collection or is your `_talks/` folder empty?" -%}
61
- {%- else -%}
62
- {%- for talk in site.talks -%}
63
- {%- assign nbr_talks_name = site.talks | where: 'name', talk.name | size %}
64
- {%- if nbr_talks_name > 1 -%}
65
- {%- assign error_msg = "The talk with the `name` _" | append: talk.name | append: "_ oocures more than once but should be unique." -%}
66
- {%- assign errors = errors | push : error_msg -%}
67
- {%- endif -%}
68
- {%- endfor -%}
69
- {%- endif -%}
1
+ {%- assign errors = '' | split: ',' -%}
2
+
3
+ {%- unless site.data.lang.version -%}
4
+ {%- unless site.conference.lang == "en" -%}
5
+ {%- assign errors = errors | push: "The internationalization file containing different strings for this template seems to be missing. Have you copied the `_data/lang.yml` file from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/main/_data/lang.yml) to you local website folder?" -%}
6
+ {%- endunless -%}
7
+ {%- elsif site.data.lang.version != 8 -%}
8
+ {%- assign errors = errors | push: "The internationalization file in `_data/lang.yml` seems to be outdated and does not correspond to the current version of the theme. Grab the current version from the [theme's repository](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/blob/main/_data/lang.yml)." -%}
9
+ {%- endunless -%}
10
+ {%- unless site.conference.lang == "en" or site.conference.lang == "de" or site.conference.lang == "fr" or site.conference.lang == "pt" -%}
11
+ {%- assign errors = errors | push: "Unknown language selected for `site.conference.lang` parameter. Supported are `en`, `de`, `fr`, and `pt`." -%}
12
+ {%- endunless -%}
13
+
14
+ {%- assign missing_tracks = "" | split: "," -%}
15
+ {%- assign talks_with_categories = 0 -%}
16
+ {%- for talk in site.talks -%}
17
+ {%- assign missing_track = 1 -%}
18
+ {%- for track_prop in site.conference.talks.tracks -%}
19
+ {%- if talk.track == track_prop.name -%}
20
+ {%- assign missing_track = 0 -%}
21
+ {%- break -%}
22
+ {%- endif -%}
23
+ {%- endfor -%}
24
+ {%- if missing_track > 0 -%}
25
+ {%- unless missing_tracks contains talk.track -%}
26
+ {%- assign missing_tracks = missing_tracks | push: talk.track -%}
27
+ {%- endunless -%}
28
+ {%- endif -%}
29
+ {%- if talk.categories.size > 0 -%}
30
+ {%- assign talks_with_categories = talks_with_categories | plus: 1 -%}
31
+ {%- endif -%}
32
+ {%- endfor -%}
33
+ {%- assign main_categories_size = site.conference.talks.main_categories | size -%}
34
+ {%- if main_categories_size > 0 -%}
35
+ {%- assign errors = errors | push: "Your `_config.yml` file contains an outdated property name. Please rename `conference.talks.main_categories` to `conference.talks.tracks` in your configuration. For more details, refer to the [Talk Settings](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/#talk-settings) section in the theme's README." -%}
36
+ {%- endif -%}
37
+ {%- if talks_with_categories > 0 -%}
38
+ {%- assign errors = errors | push: "The `categories` property in the FrontMatter of some of your talks is deprecated. Please update it by reorganizing the content into `track` and `tags` properties instead. For more details, refer to the [Talk Settings](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/#talk-settings) section in the theme's README." -%}
39
+ {%- endif -%}
40
+ {%- if missing_tracks.size > 0 -%}
41
+ {%- capture error_msg -%}
42
+ It looks like some of your talks are assigned to tracks not defined in your `_config.yml` file. Please add the following missing tracks to the `conference.talks.tracks` property in your configuration:
43
+ {%- for missing_track in missing_tracks %}
44
+ - {{ missing_track }}
45
+ {% endfor %}
46
+ For more details, refer to the [Talk Settings](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/#talk-settings) section in the theme's README
47
+ {%- endcapture -%}
48
+ {%- assign errors = errors | push: error_msg -%}
49
+ {%- endif -%}
50
+
51
+ {%- if site.conference.talks.hide_icons == true -%}
52
+ {%- assign errors = errors | push: "Your `_config.yml` file contains an outdated property name. Please rename `conference.talks.hide_icons` to `conference.talks.hide_link_icons` in your configuration. For more details, refer to the [Talk Settings](https://github.com/DigitaleGesellschaft/jekyll-theme-conference/#talk-settings) section in the theme's README." -%}
53
+ {%- endif -%}
54
+
55
+ {%- assign nbr_days = site.data.program.days | size -%}
56
+ {%- if nbr_days == 0 -%}
57
+ {%- assign errors = errors | push: "Your schedule in `_data/program.yml` does not seem to contain any days. Have you already created the file?" -%}
58
+ {%- endif -%}
59
+ {%- if site.conference.live -%}
60
+ {%- for d in site.data.program.days -%}
61
+ {%- unless d.date or d.date == "" -%}
62
+ {%- assign error_msg = "Day " | append: forloop.index | append: " in your schedule should have a (non-empty) `date` property." -%}
63
+ {%- assign errors = errors | push: error_msg -%}
64
+ {%- endunless -%}
65
+ {%- endfor -%}
66
+ {%- endif -%}
67
+
68
+ {%- assign nbr_rooms = site.rooms | size -%}
69
+ {%- if nbr_rooms == 0 -%}
70
+ {%- assign errors = errors | push: "The `rooms` collection does not seem to contain any entry. Have you accidentally renamed the collection or is your `_rooms/` folder empty?" -%}
71
+ {%- else -%}
72
+ {%- for room in site.rooms -%}
73
+ {%- assign nbr_rooms_name = site.rooms | where: 'name', room.name | size -%}
74
+ {%- if nbr_rooms_name > 1 -%}
75
+ {%- assign error_msg = "The room with the `name` _" | append: room.name | append: "_ occurs more than once but should be unique." -%}
76
+ {%- assign errors = errors | push: error_msg -%}
77
+ {%- endif -%}
78
+ {%- endfor -%}
79
+ {%- endif -%}
80
+
81
+ {%- assign nbr_speakers = site.speakers | size -%}
82
+ {%- if nbr_speakers == 0 -%}
83
+ {%- assign errors = errors | push: "The `speakers` collection does not seem to contain any entry. Have you accidentally renamed the collection or is your `_speakers/` folder empty?" -%}
84
+ {%- else -%}
85
+ {%- for speaker in site.speakers -%}
86
+ {%- assign nbr_speakers_name = site.speakers | where: 'name', speaker.name | size -%}
87
+ {%- if nbr_speakers_name > 1 -%}
88
+ {%- assign error_msg = "The speaker with the `name` _" | append: speaker.name | append: "_ occurs more than once but should be unique." -%}
89
+ {%- assign errors = errors | push: error_msg -%}
90
+ {%- endif -%}
91
+ {%- endfor -%}
92
+ {%- endif -%}
93
+
94
+ {%- assign nbr_talks = site.talks | size -%}
95
+ {%- if nbr_talks == 0 -%}
96
+ {%- assign errors = errors | push: "The `talks` collection does not seem to contain any entry. Have you accidentally renamed the collection or is your `_talks/` folder empty?" -%}
97
+ {%- else -%}
98
+ {%- for talk in site.talks -%}
99
+ {%- assign nbr_talks_name = site.talks | where: 'name', talk.name | size -%}
100
+ {%- if nbr_talks_name > 1 -%}
101
+ {%- assign error_msg = "The talk with the `name` _" | append: talk.name | append: "_ occurs more than once but should be unique." -%}
102
+ {%- assign errors = errors | push: error_msg -%}
103
+ {%- endif -%}
104
+ {%- endfor -%}
105
+ {%- endif -%}
@@ -0,0 +1,13 @@
1
+ {% assign tag_icon = "" %}
2
+ {% for tag_prop in site.conference.talks.tags %}
3
+ {% if tag == tag_prop.name %}
4
+ {% if tag_prop.icon %}
5
+ {% assign tag_icon = tag_prop.icon %}
6
+ {% endif %}
7
+ {% endif %}
8
+ {% endfor %}
9
+
10
+ {% assign tag_html = tag %}
11
+ {% if tag_icon.size > 0 %}
12
+ {% assign tag_html = '<i class="fas fa-' | append: tag_icon | append: '" title="' | append: tag | append: '"></i>'' %}
13
+ {% endif %}
@@ -0,0 +1,81 @@
1
+ <li class="pl-2 mb-2 border-soft-{{ track_prop.color | default: 'light' }}">
2
+ <p class="mb-0">
3
+ {% include partials/show_talk.html %}
4
+ </p>
5
+ <p class="font-weight-light mb-0">
6
+ {% include partials/list_speakers.html %}
7
+ </p>
8
+
9
+ {% if talk.hide -%}
10
+ {%- assign talk_scheduled = false -%}
11
+ {%- for d in site.data.program.days -%}
12
+ {%- include partials/get_day_hash.html -%}
13
+ {%- for r in d.rooms -%}
14
+ {%- assign room = site.rooms | where: 'name', r.name | first -%}
15
+ {%- for t in r.talks -%}
16
+ {%- if talk.name == t.name -%}
17
+ <p class="mb-0">
18
+
19
+ {%- if site.conference.live -%}
20
+ {%- include partials/get_talk_timestamp.html -%}
21
+ <span class="live-hide" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
22
+ {%- endif -%}
23
+
24
+ {%- include partials/get_time_pronoun.html -%}
25
+ {%- include partials/get_talk_time.html -%}
26
+ {{- time_pronoun }} {% include partials/show_talk_time.html %}
27
+
28
+ {%- if site.conference.live -%}
29
+ </span>
30
+ {%- include partials/show_live_button.html -%}
31
+ {%- endif %}
32
+
33
+ {{ site.data.lang[site.conference.lang].pronoun.in | default: "in" }} {% include partials/show_room.html -%}
34
+ </p>
35
+
36
+ {%- assign talk_scheduled = true -%}
37
+ {%- break -%}
38
+ {%- endif -%}
39
+ {%- endfor -%}
40
+
41
+ {%- if talk_scheduled -%}
42
+ {%- break -%}
43
+ {%- endif -%}
44
+ {%- endfor -%}
45
+
46
+ {%- if talk_scheduled -%}
47
+ {%- break -%}
48
+ {%- endif -%}
49
+ {%- endfor -%}
50
+ {%- endif %}
51
+
52
+ <p class="mb-0">
53
+ {%- if site.conference.live and talk.hide != true -%}
54
+ {% for d in site.data.program.days -%}
55
+ {%- for r in d.rooms -%}
56
+ {%- for t in r.talks -%}
57
+ {%- if talk.name == t.name -%}
58
+ {%- assign live_button_styleclass = "mr-1" -%}
59
+ {%- include partials/show_live_button.html -%}
60
+ {%- endif -%}
61
+ {%- endfor -%}
62
+ {%- endfor -%}
63
+ {%- endfor -%}
64
+ {%- endif -%}
65
+ {%- include partials/list_tags.html -%}
66
+
67
+ {%- include partials/get_link_types.html -%}
68
+ {%- if has_icon_links > 0 and site.conference.talks.hide_link_icons != true -%}
69
+ {% for link in talk.links -%}
70
+ {%- assign link_styleclass = "badge badge-light text-reset font-weight-normal mr-1" -%}
71
+ {%- include partials/get_link.html link_type="icon" -%}
72
+ {%- if link_valid -%}
73
+ {{- link_tag -}}
74
+ <i class="fas fa-{{ link_icon }} text-secondary"></i>
75
+ </a>
76
+ {%- endif -%}
77
+ {%- endfor %}
78
+ {%- endif %}
79
+ </p>
80
+
81
+ </li>
@@ -0,0 +1,6 @@
1
+ {%- for track_prop in site.conference.talks.tracks -%}
2
+ {%- if talk.track == track_prop.name -%}
3
+ {%- assign track_color = track_prop.color | default: 'light' -%}
4
+ {%- break -%}
5
+ {%- endif -%}
6
+ {%- endfor -%}
@@ -0,0 +1,7 @@
1
+ {%- assign has_tags = false -%}
2
+
3
+ {%- for tag in talk.tags -%}
4
+ {%- assign has_tags = true -%}
5
+ {%- include partials/get_tag_icon.html -%}
6
+ <span class="badge badge-light text-reset font-weight-normal">{{ tag_html }}</span>&nbsp;
7
+ {%- endfor -%}
data/_layouts/data.html CHANGED
@@ -82,8 +82,8 @@
82
82
  "href": "",
83
83
  {%- endunless -%}
84
84
 
85
- {%- include partials/get_main_category.html %}
86
- "color": "{{ main_cat_color }}",
85
+ {%- include partials/get_track_properties.html %}
86
+ "color": "{{ track_color }}",
87
87
  "speakers": [
88
88
  {%- for speaker_name in talk.speakers %}
89
89
  "{{ speaker_name}}"{%- unless forloop.last -%},{%- endunless -%}
@@ -143,8 +143,8 @@
143
143
  {%- if d_start_hour == 0 and d_start_min == 0 -%}
144
144
 
145
145
  {%- assign talk_nbr_steps = talk_duration_min | divided_by: site.conference.program.time_steps -%}
146
- {%- include partials/get_main_category.html -%}
147
- <td rowspan="{{ talk_nbr_steps }}" class="alert alert-{{ main_cat_color }} shadow-sm overflow-hidden" style="z-index: {{ z-index-max | minus: i }}">
146
+ {%- include partials/get_track_properties.html -%}
147
+ <td rowspan="{{ talk_nbr_steps }}" class="alert alert-{{ track_color }} shadow-sm overflow-hidden" style="z-index: {{ z-index-max | minus: i }}">
148
148
 
149
149
  {%- assign live_button_styleclass = "mb-2" %}
150
150
  {%- include partials/show_live_button.html %}
@@ -156,7 +156,7 @@
156
156
  {%- include partials/list_speakers.html %}
157
157
  </p>
158
158
  <p class="mb-1">
159
- {%- include partials/list_sub_categories.html %}
159
+ {%- include partials/list_tags.html %}
160
160
  </p>
161
161
  </td>
162
162
  {%- assign active_talk = true %}
@@ -189,11 +189,11 @@
189
189
  </div>
190
190
  {%- endif -%}
191
191
 
192
- {%- if site.conference.talks.main_categories %}
192
+ {%- if site.conference.talks.tracks %}
193
193
  <h5 class="mt-4">{{ site.data.lang[site.conference.lang].program.legend | default: "Caption" }}</h5>
194
- {%- for main_cat in site.conference.talks.main_categories %}
195
- <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">
196
- {{- main_cat.name -}}
194
+ {%- for track_prop in site.conference.talks.tracks %}
195
+ <div class="d-block d-sm-inline-block m-1 p-1 pl-2 pr-2 border-soft-{{ track_prop.color | default: 'light' }} bg-soft-{{ track_prop.color | default: 'light' }} font-weight-normal">
196
+ {{- track_prop.name -}}
197
197
  </div>
198
198
  {%- endfor -%}
199
199
  {%- endif -%}
data/_layouts/room.html CHANGED
@@ -36,7 +36,7 @@
36
36
  <table class="list-program">
37
37
  {%- for t in r.talks -%}
38
38
  {%- assign talk = site.talks | where: 'name', t.name | first -%}
39
- {%- include partials/get_main_category.html %}
39
+ {%- include partials/get_track_properties.html %}
40
40
 
41
41
  <tr>
42
42
  <td class="pr-2">
@@ -48,7 +48,7 @@
48
48
  {%- assign live_button_styleclass = "w-100" -%}
49
49
  {% include partials/show_live_button.html %}
50
50
  </td>
51
- <td class="pl-2 border-soft-{{ main_cat_color }}">
51
+ <td class="pl-2 border-soft-{{ track_color }}">
52
52
  <p class="mb-0">
53
53
  {%- include partials/show_talk.html -%}
54
54
  </p>
@@ -77,7 +77,7 @@
77
77
  {%- for speaker_name in talk.speakers -%}
78
78
  {%- if speaker_name == speaker.name -%}
79
79
 
80
- {%- include partials/get_main_category.html -%}
80
+ {%- include partials/get_track_properties.html -%}
81
81
 
82
82
  <tr>
83
83
  <td class="pr-2 py-0">
@@ -85,7 +85,7 @@
85
85
  {%- assign talk_time_styleclass = "w-100" -%}
86
86
  {%- include partials/show_talk_time.html -%}
87
87
  </td>
88
- <td class="pl-2 py-0 align-baseline border-soft-{{ main_cat_color }}">
88
+ <td class="pl-2 py-0 align-baseline border-soft-{{ track_color }}">
89
89
  <span class="mr-2">
90
90
  {%- include partials/show_talk.html -%}
91
91
  </span>
@@ -1,112 +1,36 @@
1
1
  {% include partials/header.html %}
2
2
 
3
- <h1 class="display-5 mb-4 text-break">
4
- {%- if page.title -%}
5
- {{- page.title -}}
6
- {%- else -%}
7
- {{- site.data.lang[site.conference.lang].talk.overview | default: "Talks" -}}
8
- {%- endif -%}
9
- </h1>
10
-
11
- {{ content }}
12
-
13
- {% for main_category in site.conference.talks.main_categories %}
3
+ <h1 class="display-5 mb-4 text-break">
4
+ {%- if page.title -%}
5
+ {{- page.title -}}
6
+ {%- else -%}
7
+ {{- site.data.lang[site.conference.lang].talk.overview | default: "Talks" -}}
8
+ {%- endif -%}
9
+ </h1>
10
+
11
+ {{ content }}
12
+
13
+ {% if site.conference.talks.tracks %}
14
+ {% for track_prop in site.conference.talks.tracks %}
14
15
  <h3 class="mt-4 mb-3">
15
- <span class="badge border-soft-{{ main_category.color }} bg-soft-{{ main_category.color }} d-block d-sm-inline text-wrap">
16
- {{ main_category.name }}
16
+ <span class="badge border-soft-{{ track_prop.color | default: 'light' }} bg-soft-{{ track_prop.color | default: 'light' }} d-block d-sm-inline text-wrap">
17
+ {{ track_prop.name }}
17
18
  </span>
18
19
  </h3>
19
20
  <ul class="list-unstyled">
20
21
  {% for talk in site.talks -%}
21
- {%- for cat in talk.categories -%}
22
- {%- if cat == main_category.name -%}
23
- {%- assign main_cat = main_category.name -%}
24
- <li class="pl-2 mb-2 border-soft-{{ main_category.color }}">
25
- <p class="mb-0">
26
- {% include partials/show_talk.html %}
27
- </p>
28
- <p class="font-weight-light mb-0">
29
- {% include partials/list_speakers.html %}
30
- </p>
31
-
32
- {% if talk.hide -%}
33
- {%- assign talk_scheduled = false -%}
34
- {%- for d in site.data.program.days -%}
35
- {%- include partials/get_day_hash.html -%}
36
- {%- for r in d.rooms -%}
37
- {%- assign room = site.rooms | where: 'name', r.name | first -%}
38
- {%- for t in r.talks -%}
39
- {%- if talk.name == t.name -%}
40
- <p class="mb-0">
41
-
42
- {%- if site.conference.live -%}
43
- {%- include partials/get_talk_timestamp.html -%}
44
- <span class="live-hide" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
45
- {%- endif -%}
46
-
47
- {%- include partials/get_time_pronoun.html -%}
48
- {%- include partials/get_talk_time.html -%}
49
- {{- time_pronoun }} {% include partials/show_talk_time.html %}
50
-
51
- {%- if site.conference.live -%}
52
- </span>
53
- {%- include partials/show_live_button.html -%}
54
- {%- endif %}
55
-
56
- {{ site.data.lang[site.conference.lang].pronoun.in | default: "in" }} {% include partials/show_room.html -%}
57
- </p>
58
-
59
- {%- assign talk_scheduled = true -%}
60
- {%- break -%}
61
- {%- endif -%}
62
- {%- endfor -%}
63
-
64
- {%- if talk_scheduled -%}
65
- {%- break -%}
66
- {%- endif -%}
67
- {%- endfor -%}
68
-
69
- {%- if talk_scheduled -%}
70
- {%- break -%}
71
- {%- endif -%}
72
- {%- endfor -%}
73
- {%- endif %}
74
-
75
- <p class="mb-0">
76
- {%- if site.conference.live and talk.hide != true -%}
77
- {% for d in site.data.program.days -%}
78
- {%- for r in d.rooms -%}
79
- {%- for t in r.talks -%}
80
- {%- if talk.name == t.name -%}
81
- {%- assign live_button_styleclass = "mr-1" -%}
82
- {%- include partials/show_live_button.html -%}
83
- {%- endif -%}
84
- {%- endfor -%}
85
- {%- endfor -%}
86
- {%- endfor -%}
87
- {%- endif -%}
88
- {%- include partials/list_sub_categories.html -%}
89
-
90
- {%- include partials/get_link_types.html -%}
91
- {%- if has_icon_links > 0 and site.conference.talks.hide_icons != true -%}
92
- {% for link in talk.links -%}
93
- {%- assign link_styleclass = "badge badge-light text-reset font-weight-normal mr-1" -%}
94
- {%- include partials/get_link.html link_type="icon" -%}
95
- {%- if link_valid -%}
96
- {{- link_tag -}}
97
- <i class="fas fa-{{ link_icon }} text-secondary"></i>
98
- </a>
99
- {%- endif -%}
100
- {%- endfor %}
101
- {%- endif %}
102
- </p>
103
-
104
- </li>
105
- {%- break -%}
106
- {%- endif -%}
107
- {%- endfor -%}
22
+ {% if talk.track == track_prop.name %}
23
+ {% include partials/get_talk_overview_talk.html %}
24
+ {% endif %}
108
25
  {%- endfor %}
109
26
  </ul>
110
- {%- endfor -%}
27
+ {% endfor %}
28
+ {% else %}
29
+ <ul class="list-unstyled">
30
+ {% for talk in site.talks -%}
31
+ {% include partials/get_talk_overview_talk.html %}
32
+ {%- endfor %}
33
+ </ul>
34
+ {% endif %}
111
35
 
112
36
  {% include partials/footer.html %}
data/_layouts/talk.html CHANGED
@@ -3,24 +3,27 @@
3
3
  {%- unless talk.hide -%}
4
4
  {%- include partials/header.html -%}
5
5
 
6
- <div class="d-flex flex-md-row flex-column container-fluid mb-2 p-0">
7
- <div class="h6 mt-2 mb-0 mr-1 pr-1 pb-1">
8
- {% include partials/get_main_category.html %}
9
- <span class="d-block d-sm-inline p-1 pl-2 pr-2 border-soft-{{ main_cat_color }} bg-soft-{{ main_cat_color }} font-weight-normal">
10
- {{ main_cat }}
11
- </span>
6
+ {% if talk.track or talk.tags.size > 0 %}
7
+ <div class="d-flex flex-md-row flex-column container-fluid mb-2 p-0">
8
+ {% if talk.track %}
9
+ <div class="h6 mt-2 mb-0 mr-1 pr-1 pb-1">
10
+ {% include partials/get_track_properties.html %}
11
+ <span class="d-block d-sm-inline p-1 pl-2 pr-2 border-soft-{{ track_color }} bg-soft-{{ track_color }} font-weight-normal">
12
+ {{ talk.track }}
13
+ </span>
14
+ </div>
15
+ {% endif %}
16
+
17
+ {% if talk.tags.size > 0 %}
18
+ <div class="h6 mt-2 mb-0 ml-1 pr-1 pb-1">
19
+ {% for tag in talk.tags %}
20
+ {%- include partials/get_tag_icon.html -%}
21
+ <span class="mr-2">{{ tag_html }}</span>
22
+ {% endfor %}
23
+ </div>
24
+ {% endif %}
12
25
  </div>
13
-
14
- {% if talk.categories.size > 1 %}
15
- <div class="h6 mt-2 mb-0 ml-1 pr-1 pb-1">
16
- {% for cat in talk.categories %}
17
- {% if cat != main_cat %}
18
- <span class="mr-2">{{ cat }}</span>
19
- {% endif %}
20
- {% endfor %}
21
- </div>
22
- {% endif %}
23
- </div>
26
+ {% endif %}
24
27
 
25
28
  <h1 class="font-weight-light text-break">{{ talk.name }}</h1>
26
29
 
@@ -79,7 +82,7 @@
79
82
  {% if link_valid %}
80
83
  <li class="mb-1">
81
84
  {{ link_tag }}
82
- <span class="badge bg-soft-{{ main_cat_color }} font-weight-normal mr-1">
85
+ <span class="badge bg-soft-{{ track_color | default: 'light' }} font-weight-normal mr-1">
83
86
  <i class="fas fa-{{ link_icon }} fa-fw"></i>
84
87
  </span>
85
88
  {{- link.name }}
@@ -99,7 +102,7 @@
99
102
  {% include partials/get_link.html link_type="regular" %}
100
103
 
101
104
  {% if link_valid %}
102
- <li class="mb-1 ml-2 pl-2 border-soft-{{ main_cat_color }}">
105
+ <li class="mb-1 ml-2 pl-2 border-soft-{{ track_color | default: 'light' }}">
103
106
  {{ link_tag }}
104
107
  {{ link.name }}
105
108
  </a>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-conference
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.7
4
+ version: 3.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lorenz Schmid
@@ -83,19 +83,20 @@ files:
83
83
  - _includes/partials/get_link.html
84
84
  - _includes/partials/get_link_types.html
85
85
  - _includes/partials/get_live_timestamps.html
86
- - _includes/partials/get_main_category.html
87
86
  - _includes/partials/get_page_description.html
88
87
  - _includes/partials/get_page_title.html
89
88
  - _includes/partials/get_room_live_href.html
89
+ - _includes/partials/get_tag_icon.html
90
+ - _includes/partials/get_talk_overview_talk.html
90
91
  - _includes/partials/get_talk_time.html
91
92
  - _includes/partials/get_talk_timestamp.html
92
93
  - _includes/partials/get_time_pronoun.html
94
+ - _includes/partials/get_track_properties.html
93
95
  - _includes/partials/header.html
94
96
  - _includes/partials/info_bar.html
95
- - _includes/partials/list_categories.html
96
97
  - _includes/partials/list_page_meta.html
97
98
  - _includes/partials/list_speakers.html
98
- - _includes/partials/list_sub_categories.html
99
+ - _includes/partials/list_tags.html
99
100
  - _includes/partials/modal_link.html
100
101
  - _includes/partials/modal_live.html
101
102
  - _includes/partials/navbar.html
@@ -1,9 +0,0 @@
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,4 +0,0 @@
1
- {%- include partials/get_main_category.html -%}
2
-
3
- <span class="badge badge-{{ main_cat_color }}">{{ main_cat }}</span>
4
- {%- include partials/list_sub_categories.html -%}
@@ -1,8 +0,0 @@
1
- {%- assign has_sub_categories = false -%}
2
-
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>&nbsp;
7
- {%- endif -%}
8
- {%- endfor -%}