jekyll-theme-conference 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +9 -0
  3. data/README.md +496 -0
  4. data/_includes/js/bootstrap.js +7 -0
  5. data/_includes/js/conference.js +43 -0
  6. data/_includes/js/jquery-3.2.1.slim.min.js +4 -0
  7. data/_includes/js/leaflet-easybutton.js +376 -0
  8. data/_includes/js/leaflet-locatecontrol.js +5 -0
  9. data/_includes/js/leaflet-providers.js +877 -0
  10. data/_includes/js/leaflet.js +6 -0
  11. data/_includes/js/popper.min.js +4 -0
  12. data/_includes/js/syncscroll.js +140 -0
  13. data/_includes/partials/checks.html +29 -0
  14. data/_includes/partials/footer.html +8 -0
  15. data/_includes/partials/get_link_href.html +5 -0
  16. data/_includes/partials/get_main_category.html +9 -0
  17. data/_includes/partials/get_talk_time.html +9 -0
  18. data/_includes/partials/header.html +32 -0
  19. data/_includes/partials/info_bar.html +38 -0
  20. data/_includes/partials/list_categories.html +4 -0
  21. data/_includes/partials/list_speakers.html +20 -0
  22. data/_includes/partials/list_sub_categories.html +8 -0
  23. data/_includes/partials/navbar.html +62 -0
  24. data/_includes/partials/navbar_rooms.html +43 -0
  25. data/_includes/partials/show_room.html +5 -0
  26. data/_includes/partials/show_talk.html +5 -0
  27. data/_includes/partials/show_talk_duration.html +3 -0
  28. data/_includes/partials/show_talk_time.html +3 -0
  29. data/_layouts/default.html +5 -0
  30. data/_layouts/home.html +42 -0
  31. data/_layouts/location.html +25 -0
  32. data/_layouts/page.html +5 -0
  33. data/_layouts/program.html +201 -0
  34. data/_layouts/room.html +60 -0
  35. data/_layouts/speaker-overview.html +47 -0
  36. data/_layouts/speaker.html +80 -0
  37. data/_layouts/talk-overview.html +61 -0
  38. data/_layouts/talk.html +142 -0
  39. data/_sass/bootstrap/_alert.scss +52 -0
  40. data/_sass/bootstrap/_badge.scss +54 -0
  41. data/_sass/bootstrap/_breadcrumb.scss +44 -0
  42. data/_sass/bootstrap/_button-group.scss +163 -0
  43. data/_sass/bootstrap/_buttons.scss +142 -0
  44. data/_sass/bootstrap/_card.scss +286 -0
  45. data/_sass/bootstrap/_carousel.scss +197 -0
  46. data/_sass/bootstrap/_close.scss +40 -0
  47. data/_sass/bootstrap/_code.scss +48 -0
  48. data/_sass/bootstrap/_custom-forms.scss +524 -0
  49. data/_sass/bootstrap/_dropdown.scss +192 -0
  50. data/_sass/bootstrap/_forms.scss +347 -0
  51. data/_sass/bootstrap/_functions.scss +144 -0
  52. data/_sass/bootstrap/_grid.scss +73 -0
  53. data/_sass/bootstrap/_images.scss +42 -0
  54. data/_sass/bootstrap/_input-group.scss +192 -0
  55. data/_sass/bootstrap/_jumbotron.scss +17 -0
  56. data/_sass/bootstrap/_list-group.scss +154 -0
  57. data/_sass/bootstrap/_media.scss +8 -0
  58. data/_sass/bootstrap/_mixins.scss +47 -0
  59. data/_sass/bootstrap/_modal.scss +240 -0
  60. data/_sass/bootstrap/_nav.scss +123 -0
  61. data/_sass/bootstrap/_navbar.scss +324 -0
  62. data/_sass/bootstrap/_pagination.scss +74 -0
  63. data/_sass/bootstrap/_popover.scss +170 -0
  64. data/_sass/bootstrap/_print.scss +141 -0
  65. data/_sass/bootstrap/_progress.scss +47 -0
  66. data/_sass/bootstrap/_reboot.scss +484 -0
  67. data/_sass/bootstrap/_root.scss +20 -0
  68. data/_sass/bootstrap/_spinners.scss +56 -0
  69. data/_sass/bootstrap/_tables.scss +185 -0
  70. data/_sass/bootstrap/_toasts.scss +46 -0
  71. data/_sass/bootstrap/_tooltip.scss +115 -0
  72. data/_sass/bootstrap/_transitions.scss +20 -0
  73. data/_sass/bootstrap/_type.scss +125 -0
  74. data/_sass/bootstrap/_utilities.scss +18 -0
  75. data/_sass/bootstrap/_variables.scss +1142 -0
  76. data/_sass/bootstrap/bootstrap-grid.scss +29 -0
  77. data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
  78. data/_sass/bootstrap/bootstrap.scss +44 -0
  79. data/_sass/bootstrap/mixins/_alert.scss +13 -0
  80. data/_sass/bootstrap/mixins/_background-variant.scss +23 -0
  81. data/_sass/bootstrap/mixins/_badge.scss +17 -0
  82. data/_sass/bootstrap/mixins/_border-radius.scss +76 -0
  83. data/_sass/bootstrap/mixins/_box-shadow.scss +20 -0
  84. data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
  85. data/_sass/bootstrap/mixins/_buttons.scss +110 -0
  86. data/_sass/bootstrap/mixins/_caret.scss +62 -0
  87. data/_sass/bootstrap/mixins/_clearfix.scss +7 -0
  88. data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
  89. data/_sass/bootstrap/mixins/_float.scss +14 -0
  90. data/_sass/bootstrap/mixins/_forms.scss +178 -0
  91. data/_sass/bootstrap/mixins/_gradients.scss +45 -0
  92. data/_sass/bootstrap/mixins/_grid-framework.scss +80 -0
  93. data/_sass/bootstrap/mixins/_grid.scss +69 -0
  94. data/_sass/bootstrap/mixins/_hover.scss +37 -0
  95. data/_sass/bootstrap/mixins/_image.scss +36 -0
  96. data/_sass/bootstrap/mixins/_list-group.scss +21 -0
  97. data/_sass/bootstrap/mixins/_lists.scss +7 -0
  98. data/_sass/bootstrap/mixins/_nav-divider.scss +11 -0
  99. data/_sass/bootstrap/mixins/_pagination.scss +22 -0
  100. data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
  101. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  102. data/_sass/bootstrap/mixins/_screen-reader.scss +34 -0
  103. data/_sass/bootstrap/mixins/_size.scss +7 -0
  104. data/_sass/bootstrap/mixins/_table-row.scss +39 -0
  105. data/_sass/bootstrap/mixins/_text-emphasis.scss +17 -0
  106. data/_sass/bootstrap/mixins/_text-hide.scss +11 -0
  107. data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
  108. data/_sass/bootstrap/mixins/_transition.scss +26 -0
  109. data/_sass/bootstrap/mixins/_visibility.scss +8 -0
  110. data/_sass/bootstrap/utilities/_align.scss +8 -0
  111. data/_sass/bootstrap/utilities/_background.scss +19 -0
  112. data/_sass/bootstrap/utilities/_borders.scss +75 -0
  113. data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
  114. data/_sass/bootstrap/utilities/_display.scss +26 -0
  115. data/_sass/bootstrap/utilities/_embed.scss +39 -0
  116. data/_sass/bootstrap/utilities/_flex.scss +51 -0
  117. data/_sass/bootstrap/utilities/_float.scss +11 -0
  118. data/_sass/bootstrap/utilities/_interactions.scss +5 -0
  119. data/_sass/bootstrap/utilities/_overflow.scss +5 -0
  120. data/_sass/bootstrap/utilities/_position.scss +32 -0
  121. data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
  122. data/_sass/bootstrap/utilities/_shadows.scss +6 -0
  123. data/_sass/bootstrap/utilities/_sizing.scss +20 -0
  124. data/_sass/bootstrap/utilities/_spacing.scss +73 -0
  125. data/_sass/bootstrap/utilities/_stretched-link.scss +19 -0
  126. data/_sass/bootstrap/utilities/_text.scss +72 -0
  127. data/_sass/bootstrap/utilities/_visibility.scss +13 -0
  128. data/_sass/bootstrap/vendor/_rfs.scss +204 -0
  129. data/_sass/conference.scss +217 -0
  130. data/_sass/font-awesome/_animated.scss +20 -0
  131. data/_sass/font-awesome/_bordered-pulled.scss +20 -0
  132. data/_sass/font-awesome/_core.scss +21 -0
  133. data/_sass/font-awesome/_fixed-width.scss +6 -0
  134. data/_sass/font-awesome/_icons.scss +1462 -0
  135. data/_sass/font-awesome/_larger.scss +23 -0
  136. data/_sass/font-awesome/_list.scss +18 -0
  137. data/_sass/font-awesome/_mixins.scss +56 -0
  138. data/_sass/font-awesome/_rotated-flipped.scss +24 -0
  139. data/_sass/font-awesome/_screen-reader.scss +5 -0
  140. data/_sass/font-awesome/_shims.scss +2066 -0
  141. data/_sass/font-awesome/_stacked.scss +31 -0
  142. data/_sass/font-awesome/_variables.scss +1479 -0
  143. data/_sass/font-awesome/brands.scss +23 -0
  144. data/_sass/font-awesome/fontawesome.scss +16 -0
  145. data/_sass/font-awesome/regular.scss +23 -0
  146. data/_sass/font-awesome/scss/_animated.scss +20 -0
  147. data/_sass/font-awesome/scss/_bordered-pulled.scss +20 -0
  148. data/_sass/font-awesome/scss/_core.scss +21 -0
  149. data/_sass/font-awesome/scss/_fixed-width.scss +6 -0
  150. data/_sass/font-awesome/scss/_icons.scss +1441 -0
  151. data/_sass/font-awesome/scss/_larger.scss +23 -0
  152. data/_sass/font-awesome/scss/_list.scss +18 -0
  153. data/_sass/font-awesome/scss/_mixins.scss +56 -0
  154. data/_sass/font-awesome/scss/_rotated-flipped.scss +24 -0
  155. data/_sass/font-awesome/scss/_screen-reader.scss +5 -0
  156. data/_sass/font-awesome/scss/_shims.scss +2066 -0
  157. data/_sass/font-awesome/scss/_stacked.scss +31 -0
  158. data/_sass/font-awesome/scss/_variables.scss +1458 -0
  159. data/_sass/font-awesome/scss/brands.scss +23 -0
  160. data/_sass/font-awesome/scss/fontawesome.scss +16 -0
  161. data/_sass/font-awesome/scss/regular.scss +23 -0
  162. data/_sass/font-awesome/scss/solid.scss +24 -0
  163. data/_sass/font-awesome/scss/v4-shims.scss +6 -0
  164. data/_sass/font-awesome/solid.scss +24 -0
  165. data/_sass/font-awesome/v4-shims.scss +6 -0
  166. data/_sass/leaflet/leaflet-easybutton.css +56 -0
  167. data/_sass/leaflet/leaflet-locatecontrol.css +2 -0
  168. data/_sass/leaflet/leaflet.css +640 -0
  169. data/assets/css/main.scss +6 -0
  170. data/assets/js/main.js +22 -0
  171. data/assets/webfonts/fa-brands-400.eot +0 -0
  172. data/assets/webfonts/fa-brands-400.svg +3717 -0
  173. data/assets/webfonts/fa-brands-400.ttf +0 -0
  174. data/assets/webfonts/fa-brands-400.woff +0 -0
  175. data/assets/webfonts/fa-brands-400.woff2 +0 -0
  176. data/assets/webfonts/fa-regular-400.eot +0 -0
  177. data/assets/webfonts/fa-regular-400.svg +801 -0
  178. data/assets/webfonts/fa-regular-400.ttf +0 -0
  179. data/assets/webfonts/fa-regular-400.woff +0 -0
  180. data/assets/webfonts/fa-regular-400.woff2 +0 -0
  181. data/assets/webfonts/fa-solid-900.eot +0 -0
  182. data/assets/webfonts/fa-solid-900.svg +5028 -0
  183. data/assets/webfonts/fa-solid-900.ttf +0 -0
  184. data/assets/webfonts/fa-solid-900.woff +0 -0
  185. data/assets/webfonts/fa-solid-900.woff2 +0 -0
  186. metadata +270 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f6b4a9f0fa744f229be4b068d2f24b3308bd5e715399c70722810261d8cf68bd
4
+ data.tar.gz: 5a13250a9600974479f506aedaa2af1c5f59086d6358e42ceae4762b2d7ba10b
5
+ SHA512:
6
+ metadata.gz: 2b5d392d30922994a4ef4052d20ec8117d6b89e2788ff00c3b815a1edf6ab175ebd16d8b504f8fc7e17b43f22dcf1c84897b6f848cece07bbd39a91728df5d63
7
+ data.tar.gz: 4da7ac97f4c278be3779b41f6a9093a32dee8d8b9769fa446ddfc6559db7be4d210c592a41c19ea9cff090ad4536ce36800c3f1a08815d625b88d8d633bf49d3
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright 2017-2020 Lorenz Schmid
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,496 @@
1
+ # jekyll-theme-conference
2
+
3
+ ![Screenshot](screenshot.png)
4
+
5
+ This is a [Jekyll](http://jekyllrb.com) theme based on [Bootstrap 4](http://getbootstrap.com) which can be used to make a simple, responsive website for a one-day conference or workshop with parallel tracks containing:
6
+
7
+ - program / schedule
8
+ - talk and speaker descriptions
9
+ - map for directions
10
+
11
+ All components such as talks, speakers or rooms are represented as collection of files. The schedule is given 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.
12
+ The design is easily modifiable and is adapted for mobile uses and printing.
13
+
14
+ The theme was originally created for the yearly Winterkongress conference of the [Digital Society Switzerland](https://digitale-gesellschaft.ch/). You can see this theme in action here:
15
+
16
+ - [Demo: Winterkongress](https://digitale-gesellschaft.ch/kongress/)
17
+
18
+
19
+ ## Installation
20
+
21
+ 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.
22
+
23
+ ### Gem-based Method
24
+
25
+ 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 of the necessary directories will be read and processed during Jekyll’s build process.
26
+
27
+ This allows for easier installation and updating as you don't have to manage any of the theme files. To install:
28
+
29
+ 1. Add the following to your `Gemfile`:
30
+
31
+ ```ruby
32
+ gem "jekyll-theme-conference"
33
+ ```
34
+
35
+ 2. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
36
+
37
+ ```bash
38
+ bundle
39
+ ```
40
+
41
+ 3. Set the `theme` in your project's Jekyll `_config.yml` file:
42
+
43
+ ```yaml
44
+ theme: jekyll-theme-conference
45
+ ```
46
+
47
+ 4. Copy the internationalization file containing the different language strings for this repository to your Jekyll folder:
48
+
49
+ - `_data/lang.yml`
50
+
51
+ 5. Continue with the _Setup_ section further below to customize the theme and add some content for your conference
52
+
53
+ To update the theme run `bundle update`.
54
+
55
+ ### Remote Theme Method
56
+
57
+ Remote themes are similar to Gem-based themes, but do not require `Gemfile` changes or whitelisting making them ideal for sites hosted with GitHub Pages.
58
+
59
+ To install:
60
+
61
+ 1. Create/replace the contents of your `Gemfile` with the following:
62
+
63
+ ```ruby
64
+ source "https://rubygems.org"
65
+
66
+ gem "github-pages", group: :jekyll_plugins
67
+ ```
68
+
69
+ 2. Add `jekyll-include-cache` to the `plugins` array of your `_config.yml`.
70
+
71
+ 3. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
72
+
73
+ ```bash
74
+ bundle
75
+ ```
76
+
77
+ 4. Add `remote_theme: "DigitaleGesellschaft/jekyll-theme-conference@2.0.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
78
+
79
+ 5. Copy the internationalization file containing the different language strings for this repository to your Jekyll folder:
80
+
81
+ - `_data/lang.yml`
82
+
83
+ 6. Continue with the _Setup_ section further below to customize the theme and add some content for your conference
84
+
85
+
86
+ ## Setup
87
+
88
+ 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/)) which is 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_.
89
+
90
+ The actual 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_.
91
+
92
+ In order to be up and running simply use the default content of this repository as an initial base for your new website. After having setup a new Jekyll website copy the following files and folders into the website's folder:
93
+
94
+ - `_config.example.yml` -> `_config.yml`
95
+ - `_data/`
96
+ - `_rooms/`
97
+ - `_speakers/`
98
+ - `_talks/`
99
+ - `index.md`
100
+ - `location/`
101
+ - `program/`
102
+ - `speakers/`
103
+ - `talks/`
104
+
105
+ There exists a Python file in this repository, `create_entries.py`, which can be used to import content from a CSV table and generate the different talk, speakers and room files automatically based on it. Just open your terminal and type `python create_entries.py --help` to show the help and get started.
106
+
107
+ In case you do not want to install the entire Ruby/Jekyll toolchain on your machine you can make use of [GitHub Actions](https://github.com/features/actions), Github's continuous integration platform. This repository contains an example Github Action configuration file which automatically builds the website upon adding a new tag. It then attaches the generated website as package to a release for easy downloading. Simply copy the following file to your repository and adapt it to your needs:
108
+
109
+ - `workflows.example.yml` -> `.github/workflows.main.yml`
110
+
111
+
112
+ ## Configuration
113
+
114
+ All configurations and customization for this theme are stored under the `conference` property in the `_config.yml` file. You can find an example configuration containing most of the here discussed parameters under `_config.example.yml` in this repository.
115
+
116
+ ### Theme Verifications
117
+
118
+ 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`).
119
+
120
+ Example:
121
+
122
+ ```yaml
123
+ conference:
124
+ show_errors: false
125
+ ```
126
+
127
+ ### Collection URLs
128
+
129
+ The three required collections containing the files for the talks, speakers and rooms have to be specified in the `_config.yml` file. The first block declares them and sets the URL under which they will later be accessed. The second block defines the default layout for each of the collection.
130
+
131
+ ```yaml
132
+ collections:
133
+ talks:
134
+ output: true
135
+ permalink: /:collection/:title/
136
+ speakers:
137
+ output: true
138
+ permalink: /:collection/:title/
139
+ rooms:
140
+ output: true
141
+ permalink: /:collection/:title/
142
+
143
+ defaults:
144
+ - scope:
145
+ path: ""
146
+ type: talks
147
+ values:
148
+ layout: talk
149
+ - scope:
150
+ path: ""
151
+ type: speakers
152
+ values:
153
+ layout: speaker
154
+ - scope:
155
+ path: ""
156
+ type: rooms
157
+ values:
158
+ layout: room
159
+ ```
160
+
161
+ In order 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.
162
+
163
+ _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.
164
+
165
+
166
+ ### Language
167
+
168
+ In order to adapt the language of the theme set the `lang` property. Make sure you have copied the internationalization file from this repository to `_data/lang.yml`. Currently the following languages are supported:
169
+
170
+ - English: `en` (Default)
171
+ - German: `de`
172
+ - French: `fr`
173
+ - Portuguese: `pt`
174
+
175
+ Example:
176
+
177
+ ```yaml
178
+ conference:
179
+ lang: en
180
+ ```
181
+
182
+ ### Navigation Bar
183
+
184
+ The navigation bar is located at the top and visible on every site. On the right it show the title of the website (`site.title`) followed by the links listed under the `links` property of the `navigation` property. Each link consists of
185
+
186
+ - the text to show (`name`),
187
+ - a relative (`relative_url`) or absolute link address (`absolute_url`) or a collapsed menu listing additional sublinks (`menu`), and
188
+ - optionally if it is disabled (`disabled: true`).
189
+
190
+ Example:
191
+
192
+ ```yaml
193
+ conference:
194
+ navigation:
195
+ links:
196
+ - name: Program
197
+ relative_url: /program/
198
+ - name: Previous Editions
199
+ menu:
200
+ - name: 2020 (current)
201
+ disabled: true
202
+ - name: 2019
203
+ relative_url: /2019/
204
+ ```
205
+
206
+ Optionally, a logo or link of your organization hosting the conference can be shown on the right side of the navigation bar. It is activate through the `logo` property under the `navigation` property containing
207
+
208
+ - the text to show (`name`),
209
+ - an absolute link address (`url`), and
210
+ - optionally a logo to show instead of the text (`img`), whereby the path to the image file relative to the `/assets/images/` folder has to be specified.
211
+
212
+ Example:
213
+
214
+ ```yaml
215
+ conference:
216
+ navigation:
217
+ ...
218
+ logo:
219
+ name: Magic Organisation
220
+ url: 'https://github.com'
221
+ ```
222
+
223
+ ### Main Landing Page
224
+
225
+ The main landing page is shown at the root of the website to greet new visitors. In order 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.
226
+
227
+ 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:
228
+
229
+ - a `img` property specifying the path to the image file relative to the `/assets/images/` folder.
230
+
231
+ Example:
232
+
233
+ ```yaml
234
+ conference:
235
+ main:
236
+ logo:
237
+ img: 'main_logo.png'
238
+ ```
239
+
240
+ 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 links in the form of buttons. Each link consists of
241
+
242
+ - the text to show (`name`),
243
+ - a relative (`relative_url`) or absolute link address (`absolute_url`) or a collapsed menu listing additional sublinks (`menu`), and
244
+ - optionally if it is disabled (`disabled: true`).
245
+
246
+ Example:
247
+
248
+ ```yaml
249
+ conference:
250
+ main:
251
+ ...
252
+ links:
253
+ - name: Program
254
+ relative_url: /program/
255
+ - name: Tickets
256
+ disabled: true
257
+ absolute_url: ''
258
+ ```
259
+
260
+ ### Information Boxes
261
+
262
+ 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 dismissable and can inform your visitors about recent changes. They are activate through the `info_bars` property which contains a list for each information banner to show. Each banner consists of
263
+
264
+ - a title (`title`),
265
+ - a color (`color`) following the Bootstrap color scheme (see below), possible values are:
266
+ - `primary` (your website's main color, normally blue)
267
+ - `secondary` (your website's secondary color, normally grey)
268
+ - `success` (green)
269
+ - `alert` (red)
270
+ - `warning` (yellow)
271
+ - `info` (blue)
272
+ - `light` (white)
273
+ - `dark` (dark grey)
274
+ - an additional text (`text`, markdown supported),
275
+ - the option to show it on all pages, only the main landing page (`main_only: true`), or all pages except the main landing page (`pages_only: true`).
276
+
277
+ Example:
278
+
279
+ ```yaml
280
+ conference:
281
+ info_bars:
282
+ - title: Sold Out!
283
+ color: primary
284
+ main_only: true
285
+ text: |
286
+ We're truly sorry but we are sold out.
287
+
288
+ ---
289
+
290
+ Try again next year.
291
+ ```
292
+
293
+ ### Talk Settings: Main Categories
294
+
295
+ 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. In order 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:
296
+
297
+ - its name (`name`, must be corresponding to the listed categories in the talk's FrontMatter), and
298
+ - a color (`color`) following the Bootstrap color scheme (see below), possible values are:
299
+ - `primary` (your website's main color, normally blue)
300
+ - `secondary` (your website's secondary color, normally grey)
301
+ - `success` (green)
302
+ - `alert` (red)
303
+ - `warning` (yellow)
304
+ - `info` (blue)
305
+ - `light` (white)
306
+ - `dark` (dark grey)
307
+
308
+ Example:
309
+
310
+ ```yaml
311
+ conference:
312
+ talks:
313
+ # Talk categories
314
+ main_categories:
315
+ - name: Cat A
316
+ color: info
317
+ - name: Cat B
318
+ color: success
319
+ ```
320
+
321
+ ### Speaker Settings: First name
322
+
323
+ In the program as well as the speaker's overview the speaker's first name can be abbreviated to its first letter. Of course, you also have the option to not specify a first name for each speaker in the first place. In order to shorten the first name add the `show_firstname: true` setting (default: `false`) to the `speakers` property.
324
+
325
+ Example:
326
+
327
+ ```yaml
328
+ conference:
329
+ speakers:
330
+ show_firstname: false
331
+ ```
332
+
333
+ ### Location Settings: Hide all and configure map
334
+
335
+ In case 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).
336
+ In order to hide all rooms add the `hide: true` setting (default: `false`) to the `location` property.
337
+
338
+ 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.
339
+
340
+ The `location` layout automatically includes an [OpenStreetMap](https://www.openstreetmap.org/) container to point to your venue. If you want to hide it add the `enable: false` setting (default: `true`) to the `map` property under the `location` property. Otherwise, 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/).
341
+ 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).
342
+
343
+ Example:
344
+
345
+ ```yaml
346
+ conference:
347
+ location:
348
+ hide: false
349
+ map:
350
+ enable: true
351
+ default_zoom: 17
352
+ home_coord: 47.37808, 8.53935
353
+ map_provider: "OpenStreetMap.Mapnik"
354
+ ```
355
+
356
+ The map is based on the JavaScript Library [Leaflet](https://leafletjs.com/) and can be customized by editing the `assets/js/map.js` file, e.g. adding additional layers with markers, text, or shapes to the map. To start, copy simply the file from this repository. Please not that editing the `assets/js/map.js` file might break the map configuration as set in your `_config.yml` file.
357
+
358
+ ### Program Settings
359
+
360
+ The schedule shown as program can be slightly customized:
361
+
362
+ - The time steps shown with a new line can be adapted with the `time_steps` setting given in minute (default: `15` minutes)
363
+ - Besides the full hour the individual time steps can be hidden by setting `show_alltimes: false` (default: `true`)
364
+
365
+ If your `program` file is not located under `/program` you can indicate an alternative path by setting the `url` property (default: `/program`) under the `program` property.
366
+ Example:
367
+
368
+ ```yaml
369
+ conference:
370
+ program:
371
+ time_steps: 15 # in minutes
372
+ show_alltimes: true
373
+ ```
374
+
375
+ ## Content
376
+
377
+ The different talks, speakers and rooms are stored as a collection of file. Each file contains a small header in form of a YAML block (called [FrontMatter](https://jekyllrb.com/docs/front-matter/)) which is used to store additional information beside a description.
378
+ The actual schedule defining when and in which room a talk takes place is stored as a [YAML data file](https://jekyllrb.com/docs/datafiles/).
379
+
380
+ ### Schedule / Program
381
+
382
+ 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 consists of an array of rooms each consisting of a
383
+
384
+ - `room` name (must correspond to one of the room identifier), and
385
+ - an array of `talks` which also can be empty `[]`.
386
+
387
+ The order of the room in the file defines the order of the rooms on the website (program and room listings). Each talk in the array consists of
388
+
389
+ - a `name` (must correspond to one of the talk identifier),
390
+ - a starting time `time_start` given as `H:M` ([`strftime`](http://www.strfti.me) formated), and
391
+ - an end time `time_end`.
392
+
393
+ The array should (manually) be ordered by time. Currently talks can only take place on the same day and multi-day conferences are not supported.
394
+
395
+ Example:
396
+
397
+ ```yaml
398
+ - room: Room A
399
+ talks:
400
+ - name: Vim Impetus Placerat Cotidieque Ad
401
+ time_start: '12:00'
402
+ time_end: '12:45'
403
+ - name: Condimentum Vitae Sapien Pellentesque
404
+ time_start: '12:45'
405
+ time_end: '13:30'
406
+ - room: Room B
407
+ talks:
408
+ ...
409
+ ```
410
+
411
+ ### Talks
412
+
413
+ Each talk is represented by a file in the `_talks/` directory. It must begin with valid [YAML Front Matter](https://jekyllrb.com/docs/frontmatter/) containing
414
+
415
+ - the talk's `name` (used as identifier),
416
+ - one or more existing `speakers` name(s), and
417
+ - optionally one or more `categories` of which one should be a main category as defined in the site's configuration
418
+ - optionally a list of `links` whereby each link element consist of
419
+ - a `name`, and
420
+ - either an absolute link `href` or a `file` name (of a file stored under `/documents/`)
421
+ - optionally a `icon` property indicating the name of a [FontAwesome](https://fontawesome.com/icons?d=gallery&s=solid&m=free) icon to be shown in front of the link name (links with icons are shown separately and above regular links without icons)
422
+ - optionally a `iframe` property which if set to `true` opens a modal instead where the link's source is embedded in a iframe (e.g. for embedding videos thus having a default iframe ratio of 24:11)
423
+ - optionally `hide: true` if the talk's page should not be linked to.
424
+
425
+ ### Speakers
426
+
427
+ Each speaker is represented by a file in the `_speakers/` directory. It must begin with valid [YAML Front Matter](https://jekyllrb.com/docs/frontmatter/) containing
428
+
429
+ - the speaker's `name` (used as identifier), as well as its
430
+ - `first_name`,
431
+ - `last_name`,
432
+ - optionally a list of `links` whereby each link element consist of
433
+ - a `name`, and
434
+ - either an absolute link `href` or a `file` name (of a file stored under `/documents/`)
435
+ - optionally `hide: true` if the speaker's page should not be linked to.
436
+
437
+ ### Rooms
438
+
439
+ 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
440
+
441
+ - the room's `name`, and
442
+ - optionally `hide: true` if the room's page should not be linked to.
443
+
444
+
445
+ ## Overview Pages
446
+
447
+ 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:
448
+
449
+ - `talks/index.md` with `layout: talk-overview`
450
+ - `speakers/index.md` with `layout: speaker-overview`
451
+ - `location/index.md` with `layout: location`
452
+ - `program/index.md` with `layout: program`
453
+
454
+ They can be empty but should contain the `layout` property in the FrontMatter header.
455
+
456
+ If you choose a different location for the overview pages you must:
457
+
458
+ - in case of the `talks` and `speaker` overview file, adapt the URL of the two collections as described further above in the section _Collection URLs_, and
459
+ - in case of the `location` and `program` file, adapt the corresponding `url` parameter as described further above in the sections _Location Settings_ and _Program Settings_.
460
+
461
+ ### Location / Room Overview
462
+
463
+ The `location` layout contains a map container (if not disabled, see section _Location Settings_ above) which can be customized. See the section above for further details.
464
+
465
+ ### Additional Pages
466
+
467
+ Additional static pages can easily be added as files and linked to via navigation bar or main landing page (see above on how to).
468
+
469
+
470
+ ## Design
471
+
472
+ The design is based on the [Bootstrap 4](http://getbootstrap.com) and thus easily expandable. Furthermore, it makes use of the [FontAwesome Icons](fontawesome.com/) across the theme.
473
+ Custom Bootstrap themes or simple color schemes such as designed with [Bootstrap Magic](https://pikock.github.io/bootstrap-magic/) can be added in the [main](assets/css/main.scss) SASS stylesheet:
474
+
475
+ 1. Create a new file under `assets/css/main.scss` with the following content (or copy the one of this repository):
476
+
477
+ ```scss
478
+ ---
479
+ ---
480
+
481
+ $fa-font-path: '{{ site.baseurl }}/assets/webfonts';
482
+
483
+ @import 'conference';
484
+ ```
485
+
486
+ Do not skip the `$fa-font-path` variable or modify it as otherwise, the FontAwesome icons will not be able to load.
487
+
488
+ 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;`
489
+ 3. Add any additional CSS styles after it.
490
+
491
+
492
+ ## License
493
+
494
+ This project is licensed under the MIT License. You can view [LICENSE.md](LICENSE.md) for more details.
495
+
496
+ This project redistributes other opensource tools and libraries. You can view [REDISTRIBUTED.md](REDISTRIBUTED.md) for third party licenses.