jekyll-theme-conference 3.6.6 → 3.6.7
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 +188 -157
- data/_includes/partials/get_link.html +99 -85
- data/_includes/partials/get_link_types.html +8 -5
- data/_includes/partials/navbar.html +43 -28
- data/_layouts/data.html +14 -8
- data/_layouts/home.html +41 -16
- data/_layouts/speaker.html +7 -7
- data/_layouts/talk-overview.html +3 -3
- data/_layouts/talk.html +7 -7
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8bdd1485da018cf75b0fd718f064cbf1bc69e450550ee90bc90d9dcc82c6a43
|
4
|
+
data.tar.gz: c752b33abeda1d546170e16a5d187a2b083e79b89b83e829dbb0a46635b253e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f05431d3e0f9f21f04594c81874df6610ebb3b9ab46e6e9deee9cb0dd3264d262611a6d0bea8fe5472ca60fa92175e23672338dd2ccef9c62619bf6639674d7
|
7
|
+
data.tar.gz: 4ca82e19cd2f771a3872d7c082dfd8754579e303da448369baf12d847d4d59686cba7781d1dd520b8a710f4a9d9e4cbd8ebb9bef9193059616a7618bd7f77140
|
data/README.md
CHANGED
@@ -6,64 +6,62 @@ This is a responsive [Jekyll](http://jekyllrb.com) theme based on [Bootstrap 4](
|
|
6
6
|
|
7
7
|
- multiday program / schedule,
|
8
8
|
- talk and speaker descriptions,
|
9
|
-
-
|
10
|
-
-
|
9
|
+
- maps for directions,
|
10
|
+
- real-time indications during the conference, and
|
11
11
|
- supports embedded video streaming or recordings.
|
12
12
|
|
13
|
-
All components such as talks, speakers or rooms are represented as collection of files. The schedule is
|
13
|
+
All components such as talks, speakers or rooms are represented as collection of files. The schedule is defined via a simple structure stored in a [YAML](https://en.wikipedia.org/wiki/YAML) file. There is no need for databases and once generated the website consists only of static files. A script and workflows are available for easy import, e.g., of [frab](https://github.com/frab/frab/wiki/Manual#introduction) compatible schedules.
|
14
14
|
The design is easily customizable and is adapted for mobile uses and printing.
|
15
15
|
|
16
|
-
The theme was
|
16
|
+
The theme was created for the yearly Winterkongress conference of the [Digital Society Switzerland](https://digitale-gesellschaft.ch/). You can see this theme active here:
|
17
17
|
|
18
18
|
- [Demo: Winterkongress](https://digitale-gesellschaft.ch/kongress/)
|
19
19
|
|
20
|
-
|
21
20
|
## Table of Contents
|
22
21
|
|
23
22
|
- [Installation](#installation)
|
24
|
-
|
25
|
-
|
23
|
+
- [Gem-based Method](#gem-based-method)
|
24
|
+
- [Remote Theme Method](#remote-theme-method)
|
26
25
|
- [Setup](#setup)
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
- [Jump Start](#jump-start)
|
27
|
+
- [Automatic Import](#automatic-import)
|
28
|
+
- [Automatic Build](#automatic-build)
|
30
29
|
- [Configuration](#configuration)
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
30
|
+
- [Theme Verification](#theme-verification)
|
31
|
+
- [Collection URLs](#collection-urls)
|
32
|
+
- [Language](#language)
|
33
|
+
- [Timezone](#timezone)
|
34
|
+
- [Navigation Bar](#navigation-bar)
|
35
|
+
- [Open Graph Link Preview](#open-graph-link-preview)
|
36
|
+
- [Main Landing Page](#main-landing-page)
|
37
|
+
- [Information Boxes](#information-boxes)
|
38
|
+
- [Live Indications & Streaming](#live-indications--streaming)
|
39
|
+
- [Map](#map)
|
40
|
+
- [Talk Settings](#talk-settings)
|
41
|
+
- [Speaker Settings](#speaker-settings)
|
42
|
+
- [Location Settings](#location-settings)
|
43
|
+
- [Program Settings](#program-settings)
|
45
44
|
- [Content](#content)
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
45
|
+
- [Schedule / Program](#schedule--program)
|
46
|
+
- [Talks](#talks)
|
47
|
+
- [Speakers](#speakers)
|
48
|
+
- [Rooms](#rooms)
|
49
|
+
- [Links](#links)
|
51
50
|
- [Overview Pages](#overview-pages)
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
- [Location / Room Overview](#location--room-overview)
|
52
|
+
- [Live Stream Overview](#live-stream-overview)
|
53
|
+
- [Additional Pages](#additional-pages)
|
55
54
|
- [Design](#design)
|
56
55
|
- [Development](#development)
|
57
56
|
- [License](#license)
|
58
57
|
|
59
|
-
|
60
58
|
## Installation
|
61
59
|
|
62
60
|
There are three ways to install: As a [Gem-based theme](https://jekyllrb.com/docs/themes/#understanding-gem-based-themes), as a [remote theme](https://github.blog/2017-11-29-use-any-theme-with-github-pages/) (GitHub Pages compatible), or by cloning/forking this repository and reference to it directly.
|
63
61
|
|
64
62
|
### Gem-based Method
|
65
63
|
|
66
|
-
With Gem-based themes, directories such as the `assets`, `_layouts`, `_includes`, and `_sass` are stored in the theme’s gem, hidden from your immediate view. Yet all
|
64
|
+
With Gem-based themes, directories such as the `assets`, `_layouts`, `_includes`, and `_sass` are stored in the theme’s gem, hidden from your immediate view. Yet all the necessary directories will be read and processed during Jekyll’s build process.
|
67
65
|
|
68
66
|
This allows for easier installation and updating as you don't have to manage any of the theme files. To install:
|
69
67
|
|
@@ -101,6 +99,7 @@ To install:
|
|
101
99
|
source "https://rubygems.org"
|
102
100
|
|
103
101
|
gem "github-pages", group: :jekyll_plugins
|
102
|
+
gem "jekyll-include-cache", group: :jekyll_plugins
|
104
103
|
```
|
105
104
|
|
106
105
|
2. Add `jekyll-include-cache` to the `plugins` array of your `_config.yml`.
|
@@ -111,22 +110,21 @@ To install:
|
|
111
110
|
bundle
|
112
111
|
```
|
113
112
|
|
114
|
-
4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@v3.6.
|
113
|
+
4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@v3.6.3"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
|
115
114
|
|
116
115
|
5. Continue with the _Setup_ section further below to customize the theme and add some content for your conference
|
117
116
|
|
118
|
-
|
119
117
|
## Setup
|
120
118
|
|
121
|
-
The different talks, speakers and rooms are stored as a collection of files. Each file contains a small header in form of a YAML block (called [FrontMatter](https://jekyllrb.com/docs/front-matter/))
|
119
|
+
The different talks, speakers and rooms are stored as a collection of files. Each file contains a small header in form of a YAML block (called [FrontMatter](https://jekyllrb.com/docs/front-matter/)) used to store additional information beside a description. Their exact use and meaning is described further below in the section _Content_. Additional configuration options can be found in the section _Configuration_.
|
122
120
|
|
123
|
-
The
|
121
|
+
The schedule defining when and in which room a talk takes place is stored as a [YAML data file](https://jekyllrb.com/docs/datafiles/) under `_data/program.yml`. For further details about it see below in the section _Content_.
|
124
122
|
|
125
|
-
:warning: Please note that the generated website can be
|
123
|
+
:warning: Please note that the generated website can be large containing many unnecessary whitespaces. It is recommended to minimize the generated output files before uploading them to a server (e.g., with [minify](https://github.com/tdewolff/minify)).
|
126
124
|
|
127
125
|
### Jump Start
|
128
126
|
|
129
|
-
|
127
|
+
To be up and running simply use the default content of this repository as an initial base for your new website. After having set up a new Jekyll website copy the following files and folders into the website's folder:
|
130
128
|
|
131
129
|
- `_config.example.yml` -> `_config.yml`
|
132
130
|
- `_data/`
|
@@ -141,7 +139,7 @@ In order to be up and running simply use the default content of this repository
|
|
141
139
|
|
142
140
|
### Automatic Import
|
143
141
|
|
144
|
-
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
|
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.
|
145
143
|
|
146
144
|
1. Copy the files `_tools/create_entries.py` and `_tools/requirements.txt` from this repository
|
147
145
|
|
@@ -158,18 +156,17 @@ There exists a Python file in this repository, `_tools/create_entries.py`, which
|
|
158
156
|
pip install -r _tools/requirements.txt
|
159
157
|
```
|
160
158
|
|
161
|
-
4. Execute the script, e.g
|
159
|
+
4. Execute the script, e.g., to show the help type
|
162
160
|
|
163
161
|
```bash
|
164
162
|
python _tools/create_entries.py --help
|
165
163
|
```
|
166
164
|
|
167
|
-
|
168
165
|
### Automatic Build
|
169
166
|
|
170
|
-
|
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:
|
171
168
|
|
172
|
-
- `build.yml`: automatically builds and minimizes the website upon adding a new tag starting with a `v` (e.g
|
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.
|
173
170
|
- `test.yml`: automatically tries to build the website upon a new pull request. It can thus be used as status check before merging.
|
174
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.
|
175
172
|
|
@@ -177,8 +174,7 @@ To get started, simply copy the desired workflow file to your repository and ada
|
|
177
174
|
|
178
175
|
- `_tools/build.yml` -> `.github/workflows/build.yml`
|
179
176
|
|
180
|
-
Please note that the `Gemfile.lock` of your project must be adapted to include specific versions required by Github's workflow server, i.e
|
181
|
-
|
177
|
+
Please note that the `Gemfile.lock` of your project must be adapted to include specific versions required by Github's workflow server, i.e., run `bundle lock --add-platform x86_64-linux` to add support for them.
|
182
178
|
|
183
179
|
## Configuration
|
184
180
|
|
@@ -186,7 +182,7 @@ All configurations and customization for this theme are stored under the `confer
|
|
186
182
|
|
187
183
|
### Theme Verification
|
188
184
|
|
189
|
-
Upon building the theme runs some basic verification to check if all necessary files and configurations are in place. If it encounters an error it shows so in adding an information bar on all your sites. You can disable this, e.g
|
185
|
+
Upon building, the theme runs some basic verification to check if all necessary files and configurations are in place. If it encounters an error it shows so in adding an information bar on all your sites. You can disable this, e.g., in a production environment, by setting `show_errors` to `false` (default: `true`).
|
190
186
|
|
191
187
|
Example:
|
192
188
|
|
@@ -231,14 +227,13 @@ defaults:
|
|
231
227
|
layout: room
|
232
228
|
```
|
233
229
|
|
234
|
-
|
230
|
+
To change the URL of the collection, simply edit the `permalink` property and replace the `:collection` tag (which translates to `talks`, `speakers` and `rooms`) with your desired value. Please note that the talk and speaker overview pages should residue in a folder of the same name.
|
235
231
|
|
236
232
|
_Note:_ While you might want to change the URLs, the name of the three collections (`talks`, `speakers` and `rooms`) is fixed and cannot be changed.
|
237
233
|
|
238
|
-
|
239
234
|
### Language
|
240
235
|
|
241
|
-
|
236
|
+
To adapt the language of the theme set the `lang` property. If you change it from its default, make sure you have copied the internationalization file from this repository to `_data/lang.yml`. The following languages are supported:
|
242
237
|
|
243
238
|
- English: `en` (Default)
|
244
239
|
- German: `de`
|
@@ -265,7 +260,7 @@ conference:
|
|
265
260
|
|
266
261
|
### Navigation Bar
|
267
262
|
|
268
|
-
The navigation bar is located at the top and visible on every site. On the right it
|
263
|
+
The navigation bar is located at the top and visible on every site. On the right, it shows the title of the website (`site.title`) followed by the links listed under the `links` property of the `navigation` property. See the _Content_ > _Links_ section below for the available properties per link.
|
269
264
|
|
270
265
|
Example:
|
271
266
|
|
@@ -284,7 +279,7 @@ conference:
|
|
284
279
|
relative_url: /2019/
|
285
280
|
```
|
286
281
|
|
287
|
-
Optionally, a logo or link of your organization hosting the conference can be shown on the right side of the navigation bar. It is
|
282
|
+
Optionally, a logo or link of your organization hosting the conference can be shown on the right side of the navigation bar. It is activated through the `logo` property under the `navigation` property containing
|
288
283
|
|
289
284
|
- the text to show (`name`),
|
290
285
|
- an absolute link address (`url`), and
|
@@ -306,15 +301,15 @@ The navigation bar automatically collapses when the available space is too small
|
|
306
301
|
|
307
302
|
### Open Graph Link Preview
|
308
303
|
|
309
|
-
The theme automatically includes the necessary `<meta>` tags to ease link previewing when sharing links based on the [Open Graph protocol](https://ogp.me/) and [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards). These tags control how a link is
|
304
|
+
The theme automatically includes the necessary `<meta>` tags to ease link previewing when sharing links based on the [Open Graph protocol](https://ogp.me/) and [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards). These tags control how a link is shown when shared via different platform and apps. To disable these `<meta>` tags add the `disable: true` setting (default: `false`) to the `link_preview` property.
|
310
305
|
|
311
|
-
|
306
|
+
To generate a meaningful description for each of the links, the preposition for the conference title as given under the `title` property can be defined by using the `preposition` property. For example, if `title` is set to "Conference 2020" the corresponding `preposition` would be "at". The template can then use it to generate descriptions such as "Talk _at_ Conference 2020".
|
312
307
|
|
313
|
-
Optionally, an image
|
308
|
+
Optionally, an image that is shown as preview for all links can be specified. For sharing via Open Graph an image ratio of 1.91:1 and an ideal size of 1200x630 pixel is recommended. For sharing via Twitter an image ratio of 1:1 and a minimal size of 600x600 pixel (better 1200x1200 pixel) is recommended. SVG image files are not supported. It is activated through the `img` property under the `link_preview` property containing an image file shown for Open Graph (`open_graph`) and on the Twitter Cards (`twitter`), whereby the path to the image file relative to the `/assets/images/` folder has to be specified.
|
314
309
|
|
315
310
|
```yaml
|
316
311
|
title: Conference 2020
|
317
|
-
preposition:
|
312
|
+
preposition: "at"
|
318
313
|
|
319
314
|
...
|
320
315
|
|
@@ -322,13 +317,13 @@ conference:
|
|
322
317
|
link_preview:
|
323
318
|
disable: false
|
324
319
|
img:
|
325
|
-
twitter:
|
326
|
-
open_graph:
|
320
|
+
twitter: "twitter_preview.png" # inside /assets/images/
|
321
|
+
open_graph: "facebook_preview.png" # inside /assets/images/
|
327
322
|
```
|
328
323
|
|
329
324
|
### Main Landing Page
|
330
325
|
|
331
|
-
The main landing page is shown at the root of the website to greet new visitors.
|
326
|
+
The main landing page is shown at the root of the website to greet new visitors. To show it you need to create a `index.md` file in the root of your website's folder and specify its layout as `layout: main`. The remaining customizations are specified in the `_config.yml` file.
|
332
327
|
|
333
328
|
The main page states your site's title (`site.title`) or a logo instead. The logo can be configured through the `logo` property under the `main` property containing
|
334
329
|
|
@@ -340,10 +335,10 @@ Example:
|
|
340
335
|
conference:
|
341
336
|
main:
|
342
337
|
logo:
|
343
|
-
img:
|
338
|
+
img: "main_logo.png"
|
344
339
|
```
|
345
340
|
|
346
|
-
The title/logo on the main page is followed by a description of your site (`site.description`) and the content of your `index.md` file. It ends with an optional list of
|
341
|
+
The title/logo on the main page is followed by a description of your site (`site.description`) and the content of your `index.md` file. It ends with an optional list of link buttons. See the _Content_ > _Links_ section below for the available properties per link.
|
347
342
|
|
348
343
|
Example:
|
349
344
|
|
@@ -361,7 +356,7 @@ conference:
|
|
361
356
|
|
362
357
|
### Information Boxes
|
363
358
|
|
364
|
-
One or multiple information banners or boxes can be shown at the top of the website just below the navigation bar. They are prominent but
|
359
|
+
One or multiple information banners or boxes can be shown at the top of the website just below the navigation bar. They are prominent but dismissible and can inform your visitors about recent changes. They are activated through the `info_bars` property, which contains a list for each information banner to show. Each banner consists of
|
365
360
|
|
366
361
|
- a title (`title`),
|
367
362
|
- a color (`color`) following the Bootstrap color scheme (see below), possible values are:
|
@@ -394,42 +389,42 @@ conference:
|
|
394
389
|
|
395
390
|
### Live Indications & Streaming
|
396
391
|
|
397
|
-
|
392
|
+
To help users navigating the program during the conference, a _Live_ indication can be shown next to talks, which are currently taking place. A small JavaScript functions keeps the site automatically up-to-date (without the need to refresh) showing the indication as soon as the talk has started and hiding it once it is over (according to the timetable indicated in the `_data/program.yml` file).
|
398
393
|
|
399
|
-
This can be further extended if some
|
394
|
+
This can be further extended if some talks have an associated live stream: Upon clicking one of the live indications a modal will open containing the corresponding embedded live stream. The URL to the live stream has to be set via `live` property in each room (see the _Content_ > _Room_ section below). Instead of opening the modal an external link can also be used.
|
400
395
|
|
401
|
-
|
396
|
+
To activate these functionalities, each day in the `program.yml` file must contain a `date` property (see section _Content_ > _Schedule / Program_ below) and the `live` property has to be set in the configuration file containing
|
402
397
|
|
403
398
|
- how long a pause between two consecutive talks has to be for the live indication to pause (`stop`),
|
404
|
-
- optionally under the `streaming` property:
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
- optionally under the `demo` property:
|
411
|
-
|
412
|
-
|
413
|
-
|
399
|
+
- optionally, under the `streaming` property:
|
400
|
+
- if streaming should be enabled (`enable`), and if enabled
|
401
|
+
- how many minutes the stream goes active before a talk (`prepend`),
|
402
|
+
- how many minutes the stream stays active after a talk (`extend`),
|
403
|
+
- how long a pause between two consecutive talks has to be for the stream to pause (`pause`), and
|
404
|
+
- an external (absolute) link to which the user will be redirected instead of opening the modal (`external`),
|
405
|
+
- optionally, under the `demo` property:
|
406
|
+
- if a demonstration mode should be enabled (`enable`), whereby the JavaScript function cycles continuously through the entire program in a few minutes, and if enabled
|
407
|
+
- how long the demonstration should take (`duration`), and
|
408
|
+
- how long the pause between two demonstration cycles should be (`pause`).
|
414
409
|
|
415
410
|
```yaml
|
416
411
|
conference:
|
417
412
|
live:
|
418
|
-
stop: 240
|
413
|
+
stop: 240 # in minutes
|
419
414
|
streaming:
|
420
415
|
enable: true
|
421
|
-
pause:
|
422
|
-
prepend:
|
423
|
-
extend:
|
416
|
+
pause: 60 # in minutes
|
417
|
+
prepend: 5 # in minutes
|
418
|
+
extend: 5 # in minutes
|
424
419
|
demo:
|
425
420
|
enable: false
|
426
|
-
duration: 300
|
427
|
-
pause:
|
421
|
+
duration: 300 # in seconds
|
422
|
+
pause: 10 # in seconds
|
428
423
|
```
|
429
424
|
|
430
425
|
### Map
|
431
426
|
|
432
|
-
|
427
|
+
To help users finding your venue, an [OpenStreetMap](https://www.openstreetmap.org/) container displaying a map can be shown on any page. The map's initial position is globally defined and thus the same for all map containers. You can define the initial position of the map by setting the default zoom level `default_zoom`, the center coordinates `home_coord`, and the map provider for the tiles `map_provider`. Alternative map providers can be found [here](https://leaflet-extras.github.io/leaflet-providers/preview/).
|
433
428
|
The map contains small control buttons to zoom in and out, center the map back to the initial position, and show the visitors current location (has to be manually activated and granted by the visitor).
|
434
429
|
|
435
430
|
The map can be added to any page by setting `map: true` in its Front Matter or on the location main page by setting `conference.location.map: true` (see _Location Settings_ section below).
|
@@ -444,7 +439,7 @@ conference:
|
|
444
439
|
|
445
440
|
### Talk Settings
|
446
441
|
|
447
|
-
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
|
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:
|
448
443
|
|
449
444
|
- its name (`name`, must be corresponding to the listed categories in the talk's FrontMatter), and
|
450
445
|
- a color (`color`) following the Bootstrap color scheme (see below), possible values are:
|
@@ -457,7 +452,7 @@ Each talk can have one or multiple categories associated via FrontMatter (see th
|
|
457
452
|
- `light` (white)
|
458
453
|
- `dark` (dark grey)
|
459
454
|
|
460
|
-
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
|
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`).
|
461
456
|
|
462
457
|
Example:
|
463
458
|
|
@@ -477,7 +472,7 @@ conference:
|
|
477
472
|
|
478
473
|
### Speaker Settings
|
479
474
|
|
480
|
-
In the program as well as the speaker's overview the speaker's first name can be abbreviated to its first letter
|
475
|
+
In the program as well as the speaker's overview the speaker's first name can be abbreviated to its first letter if present. To do so, add the `show_firstname: true` setting (default: `false`) to the `speakers` property.
|
481
476
|
|
482
477
|
Example:
|
483
478
|
|
@@ -489,12 +484,12 @@ conference:
|
|
489
484
|
|
490
485
|
### Location Settings
|
491
486
|
|
492
|
-
|
493
|
-
|
487
|
+
If the location of your rooms is obvious (e.g., on a campus) you can decide to disable the location page and links to all the rooms. You still need to create the different rooms as files in the `_rooms/` directory, since they are needed as a reference. But there will not be any link pointing to it (effectively hiding them).
|
488
|
+
To hide all rooms add the `hide: true` setting (default: `false`) to the `location` property.
|
494
489
|
|
495
490
|
If your `location` overview file is not located under `/location` you can indicate an alternative path by setting the `url` property (default: `/location`) under the `location` property.
|
496
491
|
|
497
|
-
The location main page shows a navigation bar listing all the different rooms by name. Due to the quirks of Jekyll, the main page itself cannot be listed by title as defined in its Front Matter. Instead the title of the main landing page for the navigation bar is taken from the language files and defaults to "Directions".
|
492
|
+
The location main page shows a navigation bar listing all the different rooms by name. Due to the quirks of Jekyll, the main page itself cannot be listed by title as defined in its Front Matter. Instead, the title of the main landing page for the navigation bar is taken from the language files and defaults to "Directions". To change this, you can either change the language files directly (see the _Language_ section above), or you provide an alternative title by setting the `navbar_title` to the desired title under the `location` property.
|
498
493
|
|
499
494
|
The `location` layout can include a map to point to your venue by adding the `map: true` setting (default: `true`) to the `location` property. See the _Map_ section above for more information.
|
500
495
|
|
@@ -504,8 +499,8 @@ Example:
|
|
504
499
|
conference:
|
505
500
|
location:
|
506
501
|
hide: false
|
507
|
-
url:
|
508
|
-
navbar_title:
|
502
|
+
url: "/location"
|
503
|
+
navbar_title: "Location"
|
509
504
|
map: true
|
510
505
|
```
|
511
506
|
|
@@ -559,26 +554,26 @@ conference:
|
|
559
554
|
|
560
555
|
## Content
|
561
556
|
|
562
|
-
The different talks, speakers and rooms are stored as a collection of
|
563
|
-
The
|
557
|
+
The different talks, speakers and rooms are stored as a collection of files. Each file contains a small header in form of a YAML block (called [FrontMatter](https://jekyllrb.com/docs/front-matter/)) used to store additional information beside a description.
|
558
|
+
The schedule defining when and in which room a talk takes place is stored as a [YAML data file](https://jekyllrb.com/docs/datafiles/).
|
564
559
|
|
565
560
|
### Schedule / Program
|
566
561
|
|
567
|
-
The schedule of the conference linking the talks with the rooms and indicating when each talk talks place and how long it goes is set in the `_data/program.yml` file. It contains a list of days, whereby each day contains a list of rooms, whereby each room contains a list of talks.
|
562
|
+
The schedule of the conference linking the talks with the rooms and indicating when each talk talks place and how long it goes, is set in the `_data/program.yml` file. It contains a list of days, whereby each day contains a list of rooms, whereby each room contains a list of talks.
|
568
563
|
|
569
564
|
Each day consists of
|
570
565
|
|
571
566
|
- a list of rooms (`rooms`) in which talks are taking place on that day
|
572
|
-
- optionally, the day's `name`, e.g
|
567
|
+
- optionally, the day's `name`, e.g., the weekday
|
573
568
|
- optionally, the short form of the day's name (`abbr`), and
|
574
|
-
- optionally only if no live indications are active, a `date` in the format `YYYY-MM-DD`.
|
569
|
+
- optionally and only if no live indications are active, a `date` in the format `YYYY-MM-DD`.
|
575
570
|
|
576
571
|
Each room consists of
|
577
572
|
|
578
573
|
- the room's `name` (must correspond to one of the room identifier), and
|
579
574
|
- a list of talks (`talks`) which also can be empty `[]`.
|
580
575
|
|
581
|
-
The order of the rooms in the list defines the order of the rooms as shown in the schedule on the program page. For the live
|
576
|
+
The order of the rooms in the list defines the order of the rooms as shown in the schedule on the program page. For the live-streaming or the room overview the order of the rooms is alphabetical but can be adapted via the [main configuration file](https://jekyllrb.com/docs/collections/#sort-by-front-matter-key).
|
582
577
|
|
583
578
|
Each talk consists of
|
584
579
|
|
@@ -586,30 +581,30 @@ Each talk consists of
|
|
586
581
|
- a starting time `time_start` given as `H:M` ([`strftime`](http://www.strfti.me) formated) or `H:M +∆` whereby ∆ is the day offset in relation to the date given for the given day, and
|
587
582
|
- an end time `time_end`.
|
588
583
|
|
589
|
-
The list of talks should (manually) be ordered by time, i.e
|
584
|
+
The list of talks should (manually) be ordered by time, i.e., the first occurring talk should be listed first.
|
590
585
|
|
591
586
|
Example:
|
592
587
|
|
593
588
|
```yaml
|
594
589
|
days:
|
595
|
-
- name: Monday
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
590
|
+
- name: Monday
|
591
|
+
abbr: Mo
|
592
|
+
date: 2020-01-31
|
593
|
+
rooms:
|
594
|
+
- name: Room A
|
595
|
+
talks:
|
596
|
+
- name: Vim Impetus Placerat Cotidieque Ad
|
597
|
+
time_start: "12:00"
|
598
|
+
time_end: "12:45"
|
599
|
+
- name: Condimentum Vitae Sapien Pellentesque
|
600
|
+
time_start: "12:45"
|
601
|
+
time_end: "13:30"
|
602
|
+
|
603
|
+
- name: Room B
|
604
|
+
talks:
|
605
|
+
- name: Arcu Non Odio
|
606
|
+
time_start: "12:00"
|
607
|
+
time_end: "13:00"
|
613
608
|
```
|
614
609
|
|
615
610
|
### Talks
|
@@ -618,10 +613,24 @@ Each talk is represented by a file in the `_talks/` directory. It must begin wit
|
|
618
613
|
|
619
614
|
- the talk's `name` (used as identifier),
|
620
615
|
- one or more existing `speakers` name(s),
|
621
|
-
- optionally one or more `categories` of which one should be a main category as defined in the site's configuration,
|
622
|
-
- optionally a list of `links` (see the _Links_ subsection below for the available properties
|
623
|
-
-
|
624
|
-
-
|
616
|
+
- optionally, one or more `categories` of which one should be a main category as defined in the site's configuration,
|
617
|
+
- optionally, a list of `links` (see the _Links_ subsection below for the available properties):
|
618
|
+
- Links with an `icon` are treated separately and are also included on the talk overview page.
|
619
|
+
- Links with `live: true` are only shown below the live stream for the given talk in form of buttons.
|
620
|
+
- optionally, `hide: true` if the talk's page should not be linked to.
|
621
|
+
|
622
|
+
Example:
|
623
|
+
|
624
|
+
```yaml
|
625
|
+
---
|
626
|
+
name: Vim Impetus Placerat Cotidieque Ad
|
627
|
+
speakers:
|
628
|
+
- Tolga Philip
|
629
|
+
categories:
|
630
|
+
- Cat B
|
631
|
+
- Talk
|
632
|
+
---
|
633
|
+
```
|
625
634
|
|
626
635
|
### Speakers
|
627
636
|
|
@@ -630,20 +639,34 @@ Each speaker is represented by a file in the `_speakers/` directory. It must beg
|
|
630
639
|
- the speaker's `name` (used as identifier), as well as its
|
631
640
|
- `first_name`,
|
632
641
|
- `last_name`,
|
633
|
-
- optionally a list of `links` (see the _Links_ subsection below for the available properties
|
634
|
-
-
|
642
|
+
- optionally, a list of `links` (see the _Links_ subsection below for the available properties):
|
643
|
+
- Links with an `icon` are treated separately and are also included on the speaker overview page.
|
644
|
+
- optionally, `hide: true` if the speaker's page should not be linked to.
|
635
645
|
|
636
646
|
If the speaker's name consists only out of one word, populate the `last_name` property and leave the `first_name` property empty. The last name is generally used for sorting the speakers.
|
637
647
|
|
648
|
+
Example:
|
649
|
+
|
650
|
+
```yaml
|
651
|
+
---
|
652
|
+
name: Tolga Philip
|
653
|
+
first_name: Tolga
|
654
|
+
last_name: Philip
|
655
|
+
links:
|
656
|
+
- name: Profile
|
657
|
+
absolute_url: https://github.com
|
658
|
+
---
|
659
|
+
```
|
660
|
+
|
638
661
|
### Rooms
|
639
662
|
|
640
663
|
Each room is represented by a file in the `_rooms/` directory. It must begin with valid [YAML Front Matter](https://jekyllrb.com/docs/frontmatter/) containing
|
641
664
|
|
642
665
|
- the room's `name`
|
643
|
-
- optionally `hide: true` if the room's page should not be linked to, and
|
644
|
-
- optionally under the `live` property a URL pointing to a live stream for the given room during the conference (see the section _Live Indications & Streaming_ above), either:
|
645
|
-
|
646
|
-
|
666
|
+
- optionally, `hide: true` if the room's page should not be linked to, and
|
667
|
+
- optionally under the `live` property, a URL pointing to a live stream for the given room during the conference (see the section _Live Indications & Streaming_ above), either:
|
668
|
+
- as an `absolute_url`, or
|
669
|
+
- a `relative_url`.
|
647
670
|
|
648
671
|
Example:
|
649
672
|
|
@@ -654,8 +677,6 @@ hide: false
|
|
654
677
|
live:
|
655
678
|
absolute_url: https://github.com
|
656
679
|
---
|
657
|
-
|
658
|
-
...
|
659
680
|
```
|
660
681
|
|
661
682
|
### Links
|
@@ -663,31 +684,42 @@ live:
|
|
663
684
|
Links are used at different location throughout the theme: They can either be used in the configuration file (for the landing page or the navigation bar), or in talks and for speakers. A link can thereby have the following properties:
|
664
685
|
|
665
686
|
- the text to show (`name`),
|
666
|
-
-
|
667
|
-
-
|
668
|
-
-
|
669
|
-
- the
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
687
|
+
- the link address:
|
688
|
+
- _relative_ to the site's base address: `relative_url:`,
|
689
|
+
- as an _absolute_ address: `absolute_url:`,
|
690
|
+
- pointing to a _file_ uploaded to the `/documents` folder: `file:`, or
|
691
|
+
- pointing to an external _video_: `video:`.
|
692
|
+
- optionally, if it is disabled (`disabled: true`),
|
693
|
+
- optionally, if it should open in a iframe embedded in a popup-like modal (`iframe: true`), and
|
694
|
+
- optionally, an icon to show in front of the title (`icon: ` followed by the [FontAwesome](https://fontawesome.com/icons?d=gallery&s=solid&m=free) icon name to show).
|
674
695
|
|
675
|
-
|
696
|
+
Using the `file:` indicator, the
|
676
697
|
|
677
|
-
-
|
678
|
-
-
|
698
|
+
- link address is set to
|
699
|
+
- the site's base address followed by `/documents/slides` and the value for _talks_,
|
700
|
+
- the site's base address followed by `/documents/bio` and the value for _speakers_, or
|
701
|
+
- the site's base address followed by `/documents` and the value for all remaining types.
|
702
|
+
- the link's `icon:` is set to `file-alt`.
|
679
703
|
|
680
|
-
Using the `
|
704
|
+
Using the `video:` indicator, the
|
681
705
|
|
682
|
-
|
706
|
+
- link address is set to an absolute address as given by the value.
|
707
|
+
- the link's `iframe:` attribute is set to `true` top embed the video in a popup-like modal having a default iframe ratio of 24:11.
|
708
|
+
- the link's `icon:` is set to `video`.
|
683
709
|
|
684
|
-
|
685
|
-
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
710
|
+
Additionally, a _talk_ link can also have the following property:
|
711
|
+
|
712
|
+
- `live: true` whereby the link is only shown below the live stream for the given talk in form of buttons.
|
713
|
+
|
714
|
+
Additionally, a _navigation bar_ or _main landing page_ link can also have the following properties:
|
715
|
+
|
716
|
+
- `live: true` making the link only visible during the conference and adds a live indication.
|
717
|
+
- The link is only shown if `name` is set. If `name` is an empty string, "Live Stream" is shown instead.
|
718
|
+
- If `name_inactive` is set, its value is used to be shown as a placeholder text, while the conference is **not** live. If `name_inactive` is an empty string, "Live Stream" is shown instead.
|
719
|
+
- If streaming is enabled and any URL property is omitted, a click on the link will open the streaming modal (see section _Live Indications_ above).
|
720
|
+
- `menu` containing another list of links. This creates a dropdown menu of multiple sublinks, while the URL of the parent link is ignored. The sublinks have the same properties as regular links.
|
721
|
+
|
722
|
+
#### Import link files
|
691
723
|
|
692
724
|
There exists a Python file in this repository, `_tools/import_resources.py`, which can be used to import resources such as slides and other documents from [pretalx.com](https://pretalx.com/p/about/)) via its API. It automatically downloads all files, stores them and updates the links of the talks concerned.
|
693
725
|
|
@@ -706,13 +738,12 @@ There exists a Python file in this repository, `_tools/import_resources.py`, whi
|
|
706
738
|
pip install -r _tools/requirements.txt
|
707
739
|
```
|
708
740
|
|
709
|
-
4. Execute the script, e.g
|
741
|
+
4. Execute the script, e.g., to show the help type
|
710
742
|
|
711
743
|
```bash
|
712
744
|
python _tools/import_resources.py --help
|
713
745
|
```
|
714
746
|
|
715
|
-
|
716
747
|
## Overview Pages
|
717
748
|
|
718
749
|
For each of the three collections there exist a dedicated layout giving an overview among all items of the collection. Furthermore, there exists a layout to show the program as a time schedule. Simply create an empty page and associate the corresponding layout with it:
|
@@ -726,8 +757,8 @@ They can be empty but should contain the `layout` property in the FrontMatter he
|
|
726
757
|
|
727
758
|
If you choose a different location for the overview pages you must:
|
728
759
|
|
729
|
-
-
|
730
|
-
-
|
760
|
+
- if of the `talks` and `speaker` overview file, adapt the URL of the two collections as described further above in the section _Collection URLs_, and
|
761
|
+
- if of the `location` and `program` file, adapt the corresponding `url` parameter as described further above in the sections _Location Settings_ and _Program Settings_.
|
731
762
|
|
732
763
|
### Location / Room Overview
|
733
764
|
|
@@ -741,7 +772,7 @@ The `stream-overview` layout contains all active streams on a single page (see t
|
|
741
772
|
|
742
773
|
Additional static pages can easily be added as files and linked to via navigation bar or main landing page (see above on how to).
|
743
774
|
|
744
|
-
Each of these pages can include a map at its end (e.g
|
775
|
+
Each of these pages can include a map at its end (e.g., to point to your venue) by adding the `map: true` setting to its Front Matter. See the _Map_ section above for more information.
|
745
776
|
|
746
777
|
## Design
|
747
778
|
|
@@ -754,14 +785,14 @@ Custom Bootstrap themes or simple color schemes such as designed with [Bootstrap
|
|
754
785
|
---
|
755
786
|
---
|
756
787
|
|
757
|
-
$fa-font-path:
|
788
|
+
$fa-font-path: "{{ site.baseurl }}/assets/webfonts";
|
758
789
|
|
759
|
-
@import
|
790
|
+
@import "conference";
|
760
791
|
```
|
761
792
|
|
762
793
|
Do not skip the `$fa-font-path` variable or modify it as otherwise, the FontAwesome icons will not be able to load.
|
763
794
|
|
764
|
-
2. Add your Bootstrap variables in front of the `@import 'conference'` line, e.g
|
795
|
+
2. Add your Bootstrap variables in front of the `@import 'conference'` line, e.g., currently the primary color is set internally to green (instead of Bootstrap's default blue): `$primary: #074 !default;`
|
765
796
|
3. Add any additional CSS styles after it.
|
766
797
|
|
767
798
|
## Development
|
@@ -778,4 +809,4 @@ end
|
|
778
809
|
|
779
810
|
This project is licensed under the MIT License. You can view [LICENSE.md](LICENSE.md) for more details.
|
780
811
|
|
781
|
-
This project redistributes other
|
812
|
+
This project redistributes other open source tools and libraries. You can view [REDISTRIBUTED.md](REDISTRIBUTED.md) for third party licenses.
|
@@ -1,85 +1,99 @@
|
|
1
|
-
|
2
|
-
{%-
|
3
|
-
{%-
|
4
|
-
{%- assign
|
5
|
-
|
6
|
-
{%-
|
7
|
-
{%-
|
8
|
-
|
9
|
-
{%-
|
10
|
-
|
11
|
-
|
12
|
-
{%-
|
13
|
-
{%-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
{%-
|
22
|
-
|
23
|
-
|
24
|
-
{%-
|
25
|
-
|
26
|
-
{%- elsif link.
|
27
|
-
{%- assign
|
28
|
-
|
29
|
-
{%-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
{%-
|
46
|
-
{%- capture modal_title -%}
|
47
|
-
{%- if
|
48
|
-
{{
|
49
|
-
{%- else -%}
|
50
|
-
<a class="text-reset" href="{{
|
51
|
-
{{
|
52
|
-
</a>
|
53
|
-
{%- endif -%}
|
54
|
-
{%- endcapture -%}
|
55
|
-
{%-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
{%-
|
60
|
-
|
61
|
-
|
62
|
-
{
|
63
|
-
|
64
|
-
{
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
{%-
|
80
|
-
<a{% if link_styleclass %}
|
81
|
-
|
82
|
-
{%-
|
83
|
-
{
|
84
|
-
|
85
|
-
{%-
|
1
|
+
{%- assign link_valid = false -%}
|
2
|
+
{%- if link.live -%}
|
3
|
+
{%- if include.link_type == "live" -%}
|
4
|
+
{%- assign link_valid = true -%}
|
5
|
+
{%- endif -%}
|
6
|
+
{%- elsif link.icon or link.file or link.video -%}
|
7
|
+
{%- if include.link_type == "icon" -%}
|
8
|
+
{%- assign link_valid = true -%}
|
9
|
+
{%- endif -%}
|
10
|
+
{%- else -%}
|
11
|
+
{%- if include.link_type == "regular" -%}
|
12
|
+
{%- assign link_valid = true -%}
|
13
|
+
{%- endif -%}
|
14
|
+
{%- endif -%}
|
15
|
+
|
16
|
+
{%- assign link_disabled = link.disabled -%}
|
17
|
+
{%- assign link_icon = link.icon -%}
|
18
|
+
{%- assign link_iframe = link.iframe -%}
|
19
|
+
|
20
|
+
{%- if link.absolute_url -%}
|
21
|
+
{%- assign link_href = link.absolute_url -%}
|
22
|
+
|
23
|
+
{%- elsif link.relative_url -%}
|
24
|
+
{%- assign link_href = link.relative_url | prepend: site.baseurl -%}
|
25
|
+
|
26
|
+
{%- elsif link.file -%}
|
27
|
+
{%- assign link_icon = link.icon | default: "file-alt" -%}
|
28
|
+
|
29
|
+
{%- if talk -%}
|
30
|
+
{%- assign link_href = link.file | prepend: '/documents/slides/' | prepend: site.baseurl -%}
|
31
|
+
|
32
|
+
{%- elsif speaker -%}
|
33
|
+
{%- assign link_href = link.file | prepend: '/documents/bio/' | prepend: site.baseurl -%}
|
34
|
+
|
35
|
+
{%- else -%}
|
36
|
+
{%- assign link_href = link.file | prepend: '/documents/' | prepend: site.baseurl -%}
|
37
|
+
|
38
|
+
{%- endif -%}
|
39
|
+
|
40
|
+
{%- elsif link.video -%}
|
41
|
+
{%- assign link_href = link.video -%}
|
42
|
+
{%- assign link_icon = link.icon | default: "video" -%}
|
43
|
+
{%- assign link_iframe = link.iframe | default: true -%}
|
44
|
+
|
45
|
+
{%- if talk -%}
|
46
|
+
{%- capture modal_title -%}
|
47
|
+
{%- if talk.hide -%}
|
48
|
+
{{ talk.name }}
|
49
|
+
{%- else -%}
|
50
|
+
<a class="text-reset" href="{{ talk.url | prepend: site.baseurl }}">
|
51
|
+
{{ talk.name }}
|
52
|
+
</a>
|
53
|
+
{%- endif -%}
|
54
|
+
{%- endcapture -%}
|
55
|
+
{%- capture modal_subtitle -%}
|
56
|
+
{%- include partials/list_speakers.html -%}
|
57
|
+
{%- endcapture -%}
|
58
|
+
|
59
|
+
{%- elsif speaker -%}
|
60
|
+
{%- capture modal_title -%}
|
61
|
+
{%- if speaker.hide -%}
|
62
|
+
{{ speaker.first_name }} {{ speaker.last_name }}
|
63
|
+
{%- else -%}
|
64
|
+
<a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">
|
65
|
+
{{ speaker.first_name }} {{ speaker.last_name }}
|
66
|
+
</a>
|
67
|
+
{%- endif -%}
|
68
|
+
{%- endcapture -%}
|
69
|
+
{%- assign modal_footer = link.name -%}
|
70
|
+
|
71
|
+
{%- endif -%}
|
72
|
+
|
73
|
+
{%- else -%}
|
74
|
+
{%- assign link_disabled = true -%}
|
75
|
+
|
76
|
+
{%- endif -%}
|
77
|
+
|
78
|
+
{%- capture link_tag -%}
|
79
|
+
{%- if link.disabled -%}
|
80
|
+
<a class="disabled{% if link_styleclass %} {{ link_styleclass }}{% endif %}" href="#">
|
81
|
+
|
82
|
+
{%- elsif link_iframe -%}
|
83
|
+
<a {% if link_styleclass %}class="{{ link_styleclass }}"{% endif %} title="{{ link.name }}" data-toggle="modal" data-target="#link-modal" data-href="{{ link_href }}" href="#" {% if modal_title -%}
|
84
|
+
data-format='html' data-title="{{ modal_title | strip_newlines | escape }}" {%- if modal_subtitle %} data-subtitle="{{ modal_subtitle | strip_newlines | escape }}"{%- endif -%}
|
85
|
+
{%- elsif link.name -%}
|
86
|
+
data-format='text' data-title="{{ link.name }}"
|
87
|
+
{%- endif %} {% if modal_footer -%}
|
88
|
+
data-format='html' data-footer="{{ modal_footer | strip_newlines | escape }}"
|
89
|
+
{%- elsif link.description -%}
|
90
|
+
data-format='text' data-footer="{{ link.description }}"
|
91
|
+
{%- endif %}>
|
92
|
+
|
93
|
+
{%- else -%}
|
94
|
+
<a{% if link_styleclass %} class="{{ link_styleclass }}"{% endif %} href="{{ link_href }}" title="{{ link.name }}">
|
95
|
+
|
96
|
+
{%- endif -%}
|
97
|
+
{%- endcapture -%}
|
98
|
+
|
99
|
+
{%- assign link_styleclass = "" -%}
|
@@ -4,12 +4,15 @@
|
|
4
4
|
{%- assign links = speaker.links -%}
|
5
5
|
{%- endif -%}
|
6
6
|
|
7
|
-
{%- assign
|
8
|
-
{%- assign
|
7
|
+
{%- assign has_live_links = 0 -%}
|
8
|
+
{%- assign has_icon_links = 0 -%}
|
9
|
+
{%- assign has_regular_links = 0 -%}
|
9
10
|
{%- for link in links -%}
|
10
|
-
{%- if link.
|
11
|
-
{%- assign
|
11
|
+
{%- if link.live -%}
|
12
|
+
{%- assign has_live_links = has_live_links | plus: 1 -%}
|
13
|
+
{%- elsif link.icon or link.file or link.video -%}
|
14
|
+
{%- assign has_icon_links = has_icon_links | plus: 1 -%}
|
12
15
|
{%- else -%}
|
13
|
-
{%- assign has_regular_links =
|
16
|
+
{%- assign has_regular_links = has_regular_links | plus: 1 -%}
|
14
17
|
{%- endif -%}
|
15
18
|
{%- endfor -%}
|
@@ -31,42 +31,57 @@
|
|
31
31
|
{%- elsif link.live -%}
|
32
32
|
{%- include partials/get_live_timestamps.html -%}
|
33
33
|
|
34
|
-
{%- if link.
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
34
|
+
{%- if link.name == blank -%}
|
35
|
+
{%- assign link_name = site.data.lang[site.conference.lang].live.stream | default: "Live Stream" -%}
|
36
|
+
{%- elsif link.name -%}
|
37
|
+
{%- assign link_name = link.name -%}
|
38
|
+
{%- else -%}
|
39
|
+
{%- assign link_name = nil -%}
|
40
40
|
{%- endif -%}
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
{%- endif -%}
|
50
|
-
" {% if site.conference.live.streaming.external -%}
|
42
|
+
{%- if link_name -%}
|
43
|
+
<li class="nav-item live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
|
44
|
+
{%- if site.conference.live.streaming.enable %}
|
45
|
+
<a
|
46
|
+
class="nav-link"
|
47
|
+
title="{{ link_name }}"
|
48
|
+
{%- if site.conference.live.streaming.external %}
|
51
49
|
href="{{ site.conference.live.streaming.external }}"
|
52
|
-
{%- else
|
50
|
+
{%- else %}
|
53
51
|
data-toggle="modal" data-target="#stream-modal" data-room="{{ r.name }}" href="#"
|
54
52
|
{%- endif -%}
|
55
53
|
>
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
54
|
+
{%- else %}
|
55
|
+
{%- assign link_styleclass = "nav-link" -%}
|
56
|
+
{%- include partials/get_link.html %}
|
57
|
+
{{ link_tag }}
|
58
|
+
{%- endif %}
|
61
59
|
|
62
|
-
|
60
|
+
{{ link_name }}
|
63
61
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
62
|
+
<span class="live-button badge badge-dark font-weight-normal text-left">
|
63
|
+
<object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
|
64
|
+
{{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
|
65
|
+
</span>
|
66
|
+
</a>
|
67
|
+
</li>
|
68
|
+
{%- endif -%}
|
69
|
+
|
70
|
+
{%- if link.name_inactive == blank -%}
|
71
|
+
{%- assign link_name_inactive = site.data.lang[site.conference.lang].live.stream | default: "Live Stream" -%}
|
72
|
+
{%- elsif link.name_inactive -%}
|
73
|
+
{%- assign link_name_inactive = link.name_inactive -%}
|
74
|
+
{%- else -%}
|
75
|
+
{%- assign link_name_inactive = nil -%}
|
76
|
+
{%- endif -%}
|
77
|
+
|
78
|
+
{%- if link_name_inactive -%}
|
79
|
+
<li class="nav-item live-hide" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
|
80
|
+
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">
|
81
|
+
{{ link_name_inactive }}
|
82
|
+
</a>
|
83
|
+
</li>
|
84
|
+
{%- endif -%}
|
70
85
|
|
71
86
|
{%- else %}
|
72
87
|
<li class="nav-item {% if page.url contains link.relative_url %}active{% endif %}">
|
data/_layouts/data.html
CHANGED
@@ -94,19 +94,25 @@
|
|
94
94
|
"start": {{ timestamp_start }},
|
95
95
|
"end": {{ timestamp_end }}
|
96
96
|
|
97
|
-
{
|
97
|
+
{% include partials/get_link_types.html %}
|
98
|
+
{%- if has_live_links > 0 -%},
|
98
99
|
"live_links": [
|
99
|
-
{%- for link in talk.
|
100
|
+
{%- for link in talk.links -%}
|
101
|
+
{%- include partials/get_link.html link_type="live" -%}
|
102
|
+
{%- if link_valid %},
|
100
103
|
{
|
101
104
|
"name": "{{ link.name | replace: '"', '\"' }}",
|
102
|
-
"href": "{{
|
103
|
-
|
104
|
-
"icon": "{{
|
105
|
-
|
106
|
-
|
105
|
+
"href": "{{ link_href | replace: '"', '%22' }}"
|
106
|
+
{%- if link_icon -%},
|
107
|
+
"icon": "{{ link_icon | replace: '"', '\"' }}"
|
108
|
+
{%- endif %}
|
109
|
+
{%- if link_disabled -%},
|
107
110
|
"disabled": true
|
111
|
+
{%- endif -%}
|
108
112
|
{%- endif %}
|
109
|
-
}
|
113
|
+
}
|
114
|
+
{%- assign has_live_links = has_live_links | minus: 1 -%}
|
115
|
+
{%- if has_live_links > 0 -%},{%- endif -%}
|
110
116
|
{%- endfor %}
|
111
117
|
]
|
112
118
|
{%- endif %}
|
data/_layouts/home.html
CHANGED
@@ -46,30 +46,55 @@
|
|
46
46
|
{% elsif link.live %}
|
47
47
|
{%- include partials/get_live_timestamps.html -%}
|
48
48
|
|
49
|
-
{%- if link.name -%}
|
49
|
+
{%- if link.name == blank -%}
|
50
|
+
{%- assign link_name = site.data.lang[site.conference.lang].live.stream | default: "Live Stream" -%}
|
51
|
+
{%- elsif link.name -%}
|
50
52
|
{%- assign link_name = link.name -%}
|
51
53
|
{%- else -%}
|
52
|
-
{%- assign link_name =
|
54
|
+
{%- assign link_name = nil -%}
|
53
55
|
{%- endif -%}
|
54
56
|
|
55
|
-
{%- if
|
56
|
-
<span class="live-
|
57
|
-
{
|
57
|
+
{%- if link_name -%}
|
58
|
+
<span class="live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
|
59
|
+
{% if site.conference.live.streaming.enable %}
|
60
|
+
<a
|
61
|
+
class="{{ btn_default }}"
|
62
|
+
title="{{ link_name }}"
|
63
|
+
{%- if site.conference.live.streaming.external %}
|
64
|
+
href="{{ site.conference.live.streaming.external }}"
|
65
|
+
{%- else %}
|
66
|
+
data-toggle="modal" data-target="#stream-modal" data-room="" href="#"
|
67
|
+
{%- endif -%}
|
68
|
+
>
|
69
|
+
{% else %}
|
70
|
+
{% assign link_styleclass = btn_default %}
|
71
|
+
{% include partials/get_link.html %}
|
72
|
+
{{ link_tag }}
|
73
|
+
{% endif %}
|
74
|
+
|
75
|
+
{{ link_name }}
|
76
|
+
|
77
|
+
<span class="live-button badge badge-dark font-weight-normal text-left">
|
78
|
+
<object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
|
79
|
+
{{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
|
80
|
+
</span>
|
81
|
+
</a>
|
58
82
|
</span>
|
59
83
|
{%- endif -%}
|
60
84
|
|
61
|
-
|
62
|
-
{
|
63
|
-
|
64
|
-
{
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
{% endif %}
|
85
|
+
{%- if link.name_inactive == blank -%}
|
86
|
+
{%- assign link_name_inactive = site.data.lang[site.conference.lang].live.stream | default: "Live Stream" -%}
|
87
|
+
{%- elsif link.name_inactive -%}
|
88
|
+
{%- assign link_name_inactive = link.name_inactive -%}
|
89
|
+
{%- else -%}
|
90
|
+
{%- assign link_name_inactive = nil -%}
|
91
|
+
{%- endif -%}
|
69
92
|
|
70
|
-
|
71
|
-
|
72
|
-
|
93
|
+
{%- if link_name_inactive -%}
|
94
|
+
<span class="live-hide {{ btn_default }} disabled" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
|
95
|
+
{{ link_name_inactive }}
|
96
|
+
</span>
|
97
|
+
{%- endif -%}
|
73
98
|
|
74
99
|
{% else %}
|
75
100
|
{% assign link_styleclass = btn_default %}
|
data/_layouts/speaker.html
CHANGED
@@ -15,13 +15,13 @@
|
|
15
15
|
|
16
16
|
{% include partials/get_link_types.html %}
|
17
17
|
|
18
|
-
{% if has_icon_links %}
|
18
|
+
{% if has_icon_links > 0 %}
|
19
19
|
<ul class="list-unstyled">
|
20
20
|
{% for link in speaker.links %}
|
21
21
|
{% assign link_styleclass = "text-reset" %}
|
22
|
-
{% include partials/get_link.html %}
|
22
|
+
{% include partials/get_link.html link_type="icon" %}
|
23
23
|
|
24
|
-
{% if
|
24
|
+
{% if link_valid %}
|
25
25
|
<li class="mb-1">
|
26
26
|
{{ link_tag }}
|
27
27
|
<span class="badge badge-light font-weight-normal mr-1">
|
@@ -35,21 +35,21 @@
|
|
35
35
|
</ul>
|
36
36
|
{% endif %}
|
37
37
|
|
38
|
-
{% if has_regular_links %}
|
38
|
+
{% if has_regular_links > 0 %}
|
39
39
|
<h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].more_information | default: "More Information" }}:</h5>
|
40
40
|
|
41
41
|
<ul class="list-unstyled">
|
42
42
|
{% for link in speaker.links %}
|
43
43
|
{% assign link_styleclass = "text-reset" %}
|
44
|
-
{% include partials/get_link.html %}
|
44
|
+
{% include partials/get_link.html link_type="regular" %}
|
45
45
|
|
46
|
-
{%
|
46
|
+
{% if link_valid %}
|
47
47
|
<li class="mb-1 ml-2 pl-2 border-soft-primary">
|
48
48
|
{{ link_tag }}
|
49
49
|
{{ link.name }}
|
50
50
|
</a>
|
51
51
|
</li>
|
52
|
-
{%
|
52
|
+
{% endif %}
|
53
53
|
{% endfor %}
|
54
54
|
</ul>
|
55
55
|
{% endif %}
|
data/_layouts/talk-overview.html
CHANGED
@@ -88,11 +88,11 @@
|
|
88
88
|
{%- include partials/list_sub_categories.html -%}
|
89
89
|
|
90
90
|
{%- include partials/get_link_types.html -%}
|
91
|
-
{%- if has_icon_links and site.conference.talks.hide_icons != true -%}
|
91
|
+
{%- if has_icon_links > 0 and site.conference.talks.hide_icons != true -%}
|
92
92
|
{% for link in talk.links -%}
|
93
93
|
{%- assign link_styleclass = "badge badge-light text-reset font-weight-normal mr-1" -%}
|
94
|
-
{%- include partials/get_link.html -%}
|
95
|
-
{%- if
|
94
|
+
{%- include partials/get_link.html link_type="icon" -%}
|
95
|
+
{%- if link_valid -%}
|
96
96
|
{{- link_tag -}}
|
97
97
|
<i class="fas fa-{{ link_icon }} text-secondary"></i>
|
98
98
|
</a>
|
data/_layouts/talk.html
CHANGED
@@ -70,13 +70,13 @@
|
|
70
70
|
|
71
71
|
{% include partials/get_link_types.html %}
|
72
72
|
|
73
|
-
{% if has_icon_links %}
|
73
|
+
{% if has_icon_links > 0 %}
|
74
74
|
<ul class="list-unstyled">
|
75
75
|
{% for link in talk.links %}
|
76
76
|
{% assign link_styleclass = "text-reset" %}
|
77
|
-
{% include partials/get_link.html %}
|
77
|
+
{% include partials/get_link.html link_type="icon" %}
|
78
78
|
|
79
|
-
{% if
|
79
|
+
{% if link_valid %}
|
80
80
|
<li class="mb-1">
|
81
81
|
{{ link_tag }}
|
82
82
|
<span class="badge bg-soft-{{ main_cat_color }} font-weight-normal mr-1">
|
@@ -90,21 +90,21 @@
|
|
90
90
|
</ul>
|
91
91
|
{% endif %}
|
92
92
|
|
93
|
-
{% if has_regular_links %}
|
93
|
+
{% if has_regular_links > 0 %}
|
94
94
|
<h5 class="mt-4 mb-1">{{ site.data.lang[site.conference.lang].more_information | default: "More information" }}:</h5>
|
95
95
|
|
96
96
|
<ul class="list-unstyled">
|
97
97
|
{% for link in talk.links %}
|
98
98
|
{% assign link_styleclass = "text-reset" %}
|
99
|
-
{% include partials/get_link.html %}
|
99
|
+
{% include partials/get_link.html link_type="regular" %}
|
100
100
|
|
101
|
-
{%
|
101
|
+
{% if link_valid %}
|
102
102
|
<li class="mb-1 ml-2 pl-2 border-soft-{{ main_cat_color }}">
|
103
103
|
{{ link_tag }}
|
104
104
|
{{ link.name }}
|
105
105
|
</a>
|
106
106
|
</li>
|
107
|
-
{%
|
107
|
+
{% endif %}
|
108
108
|
{% endfor %}
|
109
109
|
</ul>
|
110
110
|
{% endif %}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-conference
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.6.
|
4
|
+
version: 3.6.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorenz Schmid
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '12.0'
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- lorenzschmid@users.noreply.github.com
|
58
58
|
executables: []
|
@@ -272,7 +272,7 @@ homepage: https://github.com/DigitaleGesellschaft/jekyll-theme-conference/
|
|
272
272
|
licenses:
|
273
273
|
- MIT
|
274
274
|
metadata: {}
|
275
|
-
post_install_message:
|
275
|
+
post_install_message:
|
276
276
|
rdoc_options: []
|
277
277
|
require_paths:
|
278
278
|
- lib
|
@@ -287,8 +287,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
287
287
|
- !ruby/object:Gem::Version
|
288
288
|
version: '0'
|
289
289
|
requirements: []
|
290
|
-
rubygems_version: 3.
|
291
|
-
signing_key:
|
290
|
+
rubygems_version: 3.5.22
|
291
|
+
signing_key:
|
292
292
|
specification_version: 4
|
293
293
|
summary: Jekyll template for a conference website containing program, speaker, talks
|
294
294
|
and room overview.
|