devops4lib-jekyll-theme-conference 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +9 -0
  3. data/README.md +781 -0
  4. data/_includes/js/conference.js +55 -0
  5. data/_includes/js/init.js +39 -0
  6. data/_includes/js/lib/a_popper.min.js +4 -0
  7. data/_includes/js/lib/bootstrap.js +6 -0
  8. data/_includes/js/lib/jquery-3.5.1.min.js +2 -0
  9. data/_includes/js/lib/leaflet-easybutton.js +376 -0
  10. data/_includes/js/lib/leaflet-locatecontrol.js +4 -0
  11. data/_includes/js/lib/leaflet-providers.js +877 -0
  12. data/_includes/js/lib/leaflet.js +5 -0
  13. data/_includes/js/lib/syncscroll.js +140 -0
  14. data/_includes/js/live.js +779 -0
  15. data/_includes/js/map.js +43 -0
  16. data/_includes/js/modal.js +78 -0
  17. data/_includes/js/program.js +41 -0
  18. data/_includes/partials/checks.html +69 -0
  19. data/_includes/partials/footer.html +18 -0
  20. data/_includes/partials/get_day_hash.html +20 -0
  21. data/_includes/partials/get_day_time.html +21 -0
  22. data/_includes/partials/get_enable_map.html +11 -0
  23. data/_includes/partials/get_link.html +85 -0
  24. data/_includes/partials/get_link_types.html +15 -0
  25. data/_includes/partials/get_live_timestamps.html +49 -0
  26. data/_includes/partials/get_main_category.html +9 -0
  27. data/_includes/partials/get_page_description.html +23 -0
  28. data/_includes/partials/get_page_title.html +33 -0
  29. data/_includes/partials/get_room_live_href.html +8 -0
  30. data/_includes/partials/get_talk_time.html +24 -0
  31. data/_includes/partials/get_talk_timestamp.html +15 -0
  32. data/_includes/partials/get_time_pronoun.html +6 -0
  33. data/_includes/partials/header.html +67 -0
  34. data/_includes/partials/info_bar.html +38 -0
  35. data/_includes/partials/list_categories.html +4 -0
  36. data/_includes/partials/list_page_meta.html +23 -0
  37. data/_includes/partials/list_speakers.html +22 -0
  38. data/_includes/partials/list_sub_categories.html +8 -0
  39. data/_includes/partials/modal_link.html +21 -0
  40. data/_includes/partials/modal_live.html +49 -0
  41. data/_includes/partials/navbar.html +97 -0
  42. data/_includes/partials/navbar_rooms.html +36 -0
  43. data/_includes/partials/show_live_button.html +21 -0
  44. data/_includes/partials/show_room.html +5 -0
  45. data/_includes/partials/show_talk.html +5 -0
  46. data/_includes/partials/show_talk_duration.html +3 -0
  47. data/_includes/partials/show_talk_time.html +17 -0
  48. data/_layouts/config.html +78 -0
  49. data/_layouts/data.html +126 -0
  50. data/_layouts/default.html +5 -0
  51. data/_layouts/home.html +87 -0
  52. data/_layouts/location.html +25 -0
  53. data/_layouts/page.html +13 -0
  54. data/_layouts/program.html +201 -0
  55. data/_layouts/room.html +70 -0
  56. data/_layouts/speaker-overview.html +47 -0
  57. data/_layouts/speaker.html +111 -0
  58. data/_layouts/stream-overview.html +43 -0
  59. data/_layouts/talk-overview.html +112 -0
  60. data/_layouts/talk.html +123 -0
  61. data/_sass/bootstrap/_alert.scss +52 -0
  62. data/_sass/bootstrap/_badge.scss +54 -0
  63. data/_sass/bootstrap/_breadcrumb.scss +44 -0
  64. data/_sass/bootstrap/_button-group.scss +163 -0
  65. data/_sass/bootstrap/_buttons.scss +142 -0
  66. data/_sass/bootstrap/_card.scss +286 -0
  67. data/_sass/bootstrap/_carousel.scss +197 -0
  68. data/_sass/bootstrap/_close.scss +40 -0
  69. data/_sass/bootstrap/_code.scss +48 -0
  70. data/_sass/bootstrap/_custom-forms.scss +524 -0
  71. data/_sass/bootstrap/_dropdown.scss +192 -0
  72. data/_sass/bootstrap/_forms.scss +347 -0
  73. data/_sass/bootstrap/_functions.scss +144 -0
  74. data/_sass/bootstrap/_grid.scss +73 -0
  75. data/_sass/bootstrap/_images.scss +42 -0
  76. data/_sass/bootstrap/_input-group.scss +192 -0
  77. data/_sass/bootstrap/_jumbotron.scss +17 -0
  78. data/_sass/bootstrap/_list-group.scss +154 -0
  79. data/_sass/bootstrap/_media.scss +8 -0
  80. data/_sass/bootstrap/_mixins.scss +47 -0
  81. data/_sass/bootstrap/_modal.scss +240 -0
  82. data/_sass/bootstrap/_nav.scss +123 -0
  83. data/_sass/bootstrap/_navbar.scss +324 -0
  84. data/_sass/bootstrap/_pagination.scss +74 -0
  85. data/_sass/bootstrap/_popover.scss +170 -0
  86. data/_sass/bootstrap/_print.scss +141 -0
  87. data/_sass/bootstrap/_progress.scss +47 -0
  88. data/_sass/bootstrap/_reboot.scss +484 -0
  89. data/_sass/bootstrap/_root.scss +20 -0
  90. data/_sass/bootstrap/_spinners.scss +56 -0
  91. data/_sass/bootstrap/_tables.scss +185 -0
  92. data/_sass/bootstrap/_toasts.scss +46 -0
  93. data/_sass/bootstrap/_tooltip.scss +115 -0
  94. data/_sass/bootstrap/_transitions.scss +20 -0
  95. data/_sass/bootstrap/_type.scss +125 -0
  96. data/_sass/bootstrap/_utilities.scss +18 -0
  97. data/_sass/bootstrap/_variables.scss +1142 -0
  98. data/_sass/bootstrap/bootstrap-grid.scss +29 -0
  99. data/_sass/bootstrap/bootstrap-reboot.scss +12 -0
  100. data/_sass/bootstrap/bootstrap.scss +44 -0
  101. data/_sass/bootstrap/mixins/_alert.scss +13 -0
  102. data/_sass/bootstrap/mixins/_background-variant.scss +23 -0
  103. data/_sass/bootstrap/mixins/_badge.scss +17 -0
  104. data/_sass/bootstrap/mixins/_border-radius.scss +76 -0
  105. data/_sass/bootstrap/mixins/_box-shadow.scss +20 -0
  106. data/_sass/bootstrap/mixins/_breakpoints.scss +123 -0
  107. data/_sass/bootstrap/mixins/_buttons.scss +110 -0
  108. data/_sass/bootstrap/mixins/_caret.scss +62 -0
  109. data/_sass/bootstrap/mixins/_clearfix.scss +7 -0
  110. data/_sass/bootstrap/mixins/_deprecate.scss +10 -0
  111. data/_sass/bootstrap/mixins/_float.scss +14 -0
  112. data/_sass/bootstrap/mixins/_forms.scss +178 -0
  113. data/_sass/bootstrap/mixins/_gradients.scss +45 -0
  114. data/_sass/bootstrap/mixins/_grid-framework.scss +80 -0
  115. data/_sass/bootstrap/mixins/_grid.scss +69 -0
  116. data/_sass/bootstrap/mixins/_hover.scss +37 -0
  117. data/_sass/bootstrap/mixins/_image.scss +36 -0
  118. data/_sass/bootstrap/mixins/_list-group.scss +21 -0
  119. data/_sass/bootstrap/mixins/_lists.scss +7 -0
  120. data/_sass/bootstrap/mixins/_nav-divider.scss +11 -0
  121. data/_sass/bootstrap/mixins/_pagination.scss +22 -0
  122. data/_sass/bootstrap/mixins/_reset-text.scss +17 -0
  123. data/_sass/bootstrap/mixins/_resize.scss +6 -0
  124. data/_sass/bootstrap/mixins/_screen-reader.scss +34 -0
  125. data/_sass/bootstrap/mixins/_size.scss +7 -0
  126. data/_sass/bootstrap/mixins/_table-row.scss +39 -0
  127. data/_sass/bootstrap/mixins/_text-emphasis.scss +17 -0
  128. data/_sass/bootstrap/mixins/_text-hide.scss +11 -0
  129. data/_sass/bootstrap/mixins/_text-truncate.scss +8 -0
  130. data/_sass/bootstrap/mixins/_transition.scss +26 -0
  131. data/_sass/bootstrap/mixins/_visibility.scss +8 -0
  132. data/_sass/bootstrap/utilities/_align.scss +8 -0
  133. data/_sass/bootstrap/utilities/_background.scss +19 -0
  134. data/_sass/bootstrap/utilities/_borders.scss +75 -0
  135. data/_sass/bootstrap/utilities/_clearfix.scss +3 -0
  136. data/_sass/bootstrap/utilities/_display.scss +26 -0
  137. data/_sass/bootstrap/utilities/_embed.scss +39 -0
  138. data/_sass/bootstrap/utilities/_flex.scss +51 -0
  139. data/_sass/bootstrap/utilities/_float.scss +11 -0
  140. data/_sass/bootstrap/utilities/_interactions.scss +5 -0
  141. data/_sass/bootstrap/utilities/_overflow.scss +5 -0
  142. data/_sass/bootstrap/utilities/_position.scss +32 -0
  143. data/_sass/bootstrap/utilities/_screenreaders.scss +11 -0
  144. data/_sass/bootstrap/utilities/_shadows.scss +6 -0
  145. data/_sass/bootstrap/utilities/_sizing.scss +20 -0
  146. data/_sass/bootstrap/utilities/_spacing.scss +73 -0
  147. data/_sass/bootstrap/utilities/_stretched-link.scss +19 -0
  148. data/_sass/bootstrap/utilities/_text.scss +72 -0
  149. data/_sass/bootstrap/utilities/_visibility.scss +13 -0
  150. data/_sass/bootstrap/vendor/_rfs.scss +204 -0
  151. data/_sass/conference.scss +255 -0
  152. data/_sass/font-awesome/_animated.scss +20 -0
  153. data/_sass/font-awesome/_bordered-pulled.scss +20 -0
  154. data/_sass/font-awesome/_core.scss +21 -0
  155. data/_sass/font-awesome/_fixed-width.scss +6 -0
  156. data/_sass/font-awesome/_icons.scss +1462 -0
  157. data/_sass/font-awesome/_larger.scss +23 -0
  158. data/_sass/font-awesome/_list.scss +18 -0
  159. data/_sass/font-awesome/_mixins.scss +56 -0
  160. data/_sass/font-awesome/_rotated-flipped.scss +24 -0
  161. data/_sass/font-awesome/_screen-reader.scss +5 -0
  162. data/_sass/font-awesome/_shims.scss +2066 -0
  163. data/_sass/font-awesome/_stacked.scss +31 -0
  164. data/_sass/font-awesome/_variables.scss +1479 -0
  165. data/_sass/font-awesome/brands.scss +23 -0
  166. data/_sass/font-awesome/fontawesome.scss +16 -0
  167. data/_sass/font-awesome/regular.scss +23 -0
  168. data/_sass/font-awesome/scss/_animated.scss +20 -0
  169. data/_sass/font-awesome/scss/_bordered-pulled.scss +20 -0
  170. data/_sass/font-awesome/scss/_core.scss +21 -0
  171. data/_sass/font-awesome/scss/_fixed-width.scss +6 -0
  172. data/_sass/font-awesome/scss/_icons.scss +1441 -0
  173. data/_sass/font-awesome/scss/_larger.scss +23 -0
  174. data/_sass/font-awesome/scss/_list.scss +18 -0
  175. data/_sass/font-awesome/scss/_mixins.scss +56 -0
  176. data/_sass/font-awesome/scss/_rotated-flipped.scss +24 -0
  177. data/_sass/font-awesome/scss/_screen-reader.scss +5 -0
  178. data/_sass/font-awesome/scss/_shims.scss +2066 -0
  179. data/_sass/font-awesome/scss/_stacked.scss +31 -0
  180. data/_sass/font-awesome/scss/_variables.scss +1458 -0
  181. data/_sass/font-awesome/scss/brands.scss +23 -0
  182. data/_sass/font-awesome/scss/fontawesome.scss +16 -0
  183. data/_sass/font-awesome/scss/regular.scss +23 -0
  184. data/_sass/font-awesome/scss/solid.scss +24 -0
  185. data/_sass/font-awesome/scss/v4-shims.scss +6 -0
  186. data/_sass/font-awesome/solid.scss +24 -0
  187. data/_sass/font-awesome/v4-shims.scss +6 -0
  188. data/_sass/leaflet/leaflet-easybutton.scss +56 -0
  189. data/_sass/leaflet/leaflet-locatecontrol.scss +2 -0
  190. data/_sass/leaflet/leaflet.scss +640 -0
  191. data/assets/css/main.scss +6 -0
  192. data/assets/icons/live.svg +57 -0
  193. data/assets/js/config.json +3 -0
  194. data/assets/js/data.json +3 -0
  195. data/assets/js/main.js +4 -0
  196. data/assets/webfonts/fa-brands-400.eot +0 -0
  197. data/assets/webfonts/fa-brands-400.svg +3717 -0
  198. data/assets/webfonts/fa-brands-400.ttf +0 -0
  199. data/assets/webfonts/fa-brands-400.woff +0 -0
  200. data/assets/webfonts/fa-brands-400.woff2 +0 -0
  201. data/assets/webfonts/fa-regular-400.eot +0 -0
  202. data/assets/webfonts/fa-regular-400.svg +801 -0
  203. data/assets/webfonts/fa-regular-400.ttf +0 -0
  204. data/assets/webfonts/fa-regular-400.woff +0 -0
  205. data/assets/webfonts/fa-regular-400.woff2 +0 -0
  206. data/assets/webfonts/fa-solid-900.eot +0 -0
  207. data/assets/webfonts/fa-solid-900.svg +5028 -0
  208. data/assets/webfonts/fa-solid-900.ttf +0 -0
  209. data/assets/webfonts/fa-solid-900.woff +0 -0
  210. data/assets/webfonts/fa-solid-900.woff2 +0 -0
  211. metadata +296 -0
@@ -0,0 +1,38 @@
1
+ {%- if site.conference.show_errors -%}
2
+ {%- include partials/checks.html -%}
3
+ {%- if errors.size > 0 -%}
4
+ {%- for error in errors %}
5
+ <div class="alert alert-danger fade show" role="alert">
6
+ <h5 class="alert-heading">There was an error when generating when generating the site!</h5>
7
+
8
+ {{ error | markdownify }}
9
+ </div>
10
+ {%- endfor -%}
11
+ {%- endif -%}
12
+ {%- endif -%}
13
+
14
+ {%- if site.conference.info_bars.size > 0 -%}
15
+ {%- for info_bar in site.conference.info_bars -%}
16
+ {%- if page.url == "/" and info_bar.pages_only != true -%}
17
+ {%- assign show_info_bar = true -%}
18
+ {%- endif -%}
19
+ {%- if page.url != "/" and info_bar.main_only != true -%}
20
+ {%- assign show_info_bar = true -%}
21
+ {%- endif -%}
22
+
23
+ {%- if show_info_bar %}
24
+ <div class="alert alert-{{ info_bar.color }} alert-dismissible fade show" role="alert">
25
+ {%- if info_bar.title %}
26
+ <h4 class="alert-heading">{{ info_bar.title }}</h4>
27
+ {%- endif %}
28
+
29
+ {{ info_bar.text | markdownify }}
30
+
31
+ <button type="button" class="close" data-dismiss="alert" aria-label="Close">
32
+ <span aria-hidden="true">&times;</span>
33
+ </button>
34
+ </div>
35
+ {%- endif -%}
36
+ {%- assign show_info_bar = false -%}
37
+ {%- endfor -%}
38
+ {%- endif -%}
@@ -0,0 +1,4 @@
1
+ {%- include partials/get_main_category.html -%}
2
+
3
+ <span class="badge badge-{{ main_cat_color }}">{{ main_cat }}</span>
4
+ {%- include partials/list_sub_categories.html -%}
@@ -0,0 +1,23 @@
1
+ {% unless site.conference.link_preview.disable -%}
2
+ {%- include partials/get_page_title.html default=site.title replace_quotes=true -%}
3
+ {%- include partials/get_page_description.html default=site.title replace_quotes=true -%}
4
+
5
+ <meta name="description" content="{{ page_description }}" />
6
+
7
+ <meta name="twitter:card" content="summary" />
8
+ {%- if site.conference.link_preview.img and site.conference.link_preview.img.twitter %}
9
+ <meta name="twitter:image" content="{{ site.conference.link_preview.img.twitter | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
10
+ {%- endif %}
11
+ <meta name="twitter:title" content="{{ page_title }}" />
12
+ <meta name="twitter:description" content="{{ page_description }}" />
13
+
14
+ <meta property="og:site_name" content="{{ site.title }}" />
15
+ {%- if site.conference.link_preview.img and site.conference.link_preview.img.open_graph %}
16
+ <meta property="og:image" content="{{ site.conference.link_preview.img.open_graph | prepend: '/assets/images/' | prepend: site.baseurl | prepend: site.url }}" />
17
+ {%- endif %}
18
+ <meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url }}" />
19
+ <meta property="og:title" content="{{ page_title }}" />
20
+ <meta property="og:description" content="{{ page_description }}" />
21
+ <meta property="og:type" content="website" />
22
+
23
+ {%- endunless %}
@@ -0,0 +1,22 @@
1
+ {% for speaker_name in talk.speakers -%}
2
+ {%- assign speaker = site.speakers | where: 'name', speaker_name | first -%}
3
+ {%- if site.conference.speakers.show_firstname -%}
4
+ {%- assign speaker_short = speaker.first_name | append: ' ' | append: speaker.last_name -%}
5
+ {%- else -%}
6
+ {%- assign speaker_short = speaker.first_name | slice: 0 | append : '. ' | append: speaker.last_name -%}
7
+ {%- endif -%}
8
+
9
+ {%- if speaker.hide or include.text_only -%}
10
+ {{- speaker_short -}}
11
+ {%- else -%}
12
+ <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">
13
+ {{- speaker_short -}}
14
+ </a>
15
+ {%- endif -%}
16
+
17
+ {%- unless forloop.last %}
18
+ {%- assign forloop_index_before_last = talk.speakers.size | minus: 1 -%}
19
+ {% if forloop.index == forloop_index_before_last and include.text_only %} {{ site.data.lang[site.conference.lang].pronoun.and | default: 'and' }} {% else %}, {% endif -%}
20
+ {%- endunless -%}
21
+
22
+ {%- endfor -%}
@@ -0,0 +1,8 @@
1
+ {%- assign has_sub_categories = false -%}
2
+
3
+ {%- for cat in talk.categories -%}
4
+ {%- if cat != main_cat -%}
5
+ {%- assign has_sub_categories = true -%}
6
+ <span class="badge badge-light text-reset font-weight-normal">{{ cat }}</span>&nbsp;
7
+ {%- endif -%}
8
+ {%- endfor -%}
@@ -0,0 +1,21 @@
1
+ <div class="modal fade" id="link-modal" tabindex="-1" role="dialog" aria-labelledby="link-modal-label" aria-hidden="true">
2
+ <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
3
+ <div class="modal-content">
4
+ <div class="modal-header">
5
+ <div class="modal-title" id="link-modal-label">
6
+ <h3 class="mb-2 font-weight-light"></h3>
7
+ <h5 class="mb-0 font-weight-light"></h5>
8
+ </div>
9
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
10
+ <span aria-hidden="true">&times;</span>
11
+ </button>
12
+ </div>
13
+ <div class="modal-body embed-responsive embed-responsive-16by9">
14
+ <iframe class="embed-responsive-item" src="" allowfullscreen></iframe>
15
+ </div>
16
+ <div class="modal-footer justify-content-start">
17
+ <p></p>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </div>
@@ -0,0 +1,49 @@
1
+ <div class="modal fade" id="stream-modal" tabindex="-1" role="dialog" aria-labelledby="link-modal-label" aria-hidden="true">
2
+ <div class="modal-dialog modal-lg" role="document">
3
+ <div class="modal-content">
4
+
5
+ <div class="modal-header">
6
+ <h5 class="modal-title">
7
+ {{ site.data.lang[site.conference.lang].live.stream | default: "Live Stream" }}
8
+ </h5>
9
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
10
+ <span aria-hidden="true">&times;</span>
11
+ </button>
12
+ </div>
13
+
14
+ <div class="modal-body embed-responsive embed-responsive-16by9">
15
+ <iframe class="embed-responsive-item" src="" frameborder="none" allowfullscreen="allowfullscreen" seamless="seamless" scrolling="no"></iframe>
16
+ <div id="stream-placeholder" class="embed-responsive-item d-none justify-content-center align-items-center">
17
+ <div></div>
18
+ </div>
19
+ </div>
20
+
21
+ <div class="modal-footer flex-column justify-content-start d-none live-past" id="stream-info" data-time="">
22
+ <div class="my-0 small align-self-start live-time" id="stream-info-time" data-time=""></div>
23
+ <div class="pl-2 align-self-start" id="stream-info-color">
24
+ <p class="mb-0">
25
+ <a class="text-reset" href="#" id="stream-info-talk"></a>
26
+ </p>
27
+ <p class="font-weight-light mb-0" id="stream-info-speakers"></p>
28
+ </div>
29
+ <div class="align-self-center m-0 mt-1" id="stream-info-links"></div>
30
+ </div>
31
+
32
+ <div class="modal-footer justify-content-around">
33
+ {% for room in site.rooms -%}
34
+ <a id="stream-button{{ forloop.index }}" href="#" class="btn btn-outline-primary d-none d-sm-inline {% unless room.live %}disabled{% endunless %}" role="button" data-room="{{ room.name }}">
35
+ {{ room.name }}
36
+ </a>
37
+ {%- endfor %}
38
+ <div class="form-group w-100 d-block d-sm-none">
39
+ <select class="form-control" id="stream-select">
40
+ {% for room in site.rooms -%}
41
+ <option value="{{ forloop.index }}" {% unless room.live %}disabled{% endunless %}>{{ room.name }}</option>
42
+ {%- endfor %}
43
+ </select>
44
+ </div>
45
+ </div>
46
+
47
+ </div>
48
+ </div>
49
+ </div>
@@ -0,0 +1,97 @@
1
+ <nav class="navbar navbar-expand-{{ site.conference.navigation.breakpoint | default: 'md' }} navbar-light bg-light mb-3">
2
+ <div class="container">
3
+
4
+ <a class="navbar-brand" href="{{ site.baseurl }}/">{{ site.title }}</a>
5
+
6
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
7
+ <span class="navbar-toggler-icon"></span>
8
+ </button>
9
+
10
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
11
+ <ul class="navbar-nav mr-auto">
12
+ {%- for link in site.conference.navigation.links -%}
13
+
14
+ {%- if link.menu %}
15
+ <li class="nav-item dropdown">
16
+ <a class="nav-link dropdown-toggle" href="#" id="navbar-dropdown{{ forloop.index0 }}" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
17
+ {{ link.name }}
18
+ </a>
19
+ <div class="dropdown-menu" aria-labelledby="navbar-dropdown{{ forloop.index0 }}">
20
+ {%- assign parent_link = link -%}
21
+ {%- for link in parent_link.menu -%}
22
+ {%- assign link_styleclass = "dropdown-item" -%}
23
+ {%- include partials/get_link.html %}
24
+ {{ link_tag }}
25
+ {{ link.name }}
26
+ </a>
27
+ {%- endfor %}
28
+ </div>
29
+ </li>
30
+
31
+ {%- elsif link.live -%}
32
+ {%- include partials/get_live_timestamps.html -%}
33
+
34
+ {%- if link.name_inactive -%}
35
+ <li class="nav-item live-hide" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
36
+ <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">
37
+ {{ link.name_inactive }}
38
+ </a>
39
+ </li>
40
+ {%- endif -%}
41
+
42
+ <li class="nav-item live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
43
+ {%- if site.conference.live.streaming.enable %}
44
+ <a class="nav-link" title="
45
+ {%- if link.name -%}
46
+ {{- link.name -}}
47
+ {%- else -%}
48
+ {{- site.data.lang[site.conference.lang].live.stream | default: "Live Stream" -}}
49
+ {%- endif -%}
50
+ " {% if site.conference.live.streaming.external -%}
51
+ href="{{ site.conference.live.streaming.external }}"
52
+ {%- else -%}
53
+ data-toggle="modal" data-target="#stream-modal" data-room="{{ r.name }}" href="#"
54
+ {%- endif -%}
55
+ >
56
+ {%- else %}
57
+ {%- assign link_styleclass = "nav-link" -%}
58
+ {%- include partials/get_link.html %}
59
+ {{ link_tag }}
60
+ {%- endif %}
61
+
62
+ {{ link.name | default: "" }}
63
+
64
+ <span class="live-button badge badge-dark font-weight-normal text-left">
65
+ <object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
66
+ {{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
67
+ </span>
68
+ </a>
69
+ </li>
70
+
71
+ {%- else %}
72
+ <li class="nav-item {% if page.url contains link.relative_url %}active{% endif %}">
73
+ {%- assign link_styleclass = "nav-link" -%}
74
+ {%- include partials/get_link.html -%}
75
+ {{ link_tag }}
76
+ {{ link.name }}
77
+ </a>
78
+ </li>
79
+ {%- endif -%}
80
+ {%- endfor %}
81
+ </ul>
82
+ </div>
83
+
84
+ {%- if site.conference.navigation.logo %}
85
+ <div class="navbar-brand navbar-logo mr-0 ml-1 text-right overflow-hidden">
86
+ <a href="{{ site.conference.navigation.logo.url }}">
87
+ {%- if site.conference.navigation.logo.img %}
88
+ <img src="{{ site.conference.navigation.logo.img | prepend: '/assets/images/' | prepend: site.baseurl }}" class="align-middle" alt="{{ site.conference.navigation.logo.name }}" />
89
+ {%- else %}
90
+ {{ site.conference.navigation.logo.name }}
91
+ {%- endif %}
92
+ </a>
93
+ </div>
94
+ {%- endif %}
95
+
96
+ </div>
97
+ </nav>
@@ -0,0 +1,36 @@
1
+ {% assign all_hidden = true -%}
2
+ {% unless site.conference.location.hide %}
3
+ {% for room in site.rooms %}
4
+ {% unless room.hide %}
5
+ {% assign all_hidden = false %}
6
+ {% break %}
7
+ {% endunless %}
8
+ {% endfor %}
9
+ {% endunless %}
10
+
11
+ {% unless all_hidden %}
12
+ <ul class="nav nav-pills d-print-none mb-3">
13
+ <li class="nav-item">
14
+ <a class="nav-link {% if page.name contains 'index' %}active{% endif %}" href="{{ site.conference.location.url | prepend: site.baseurl }}">
15
+ {% if site.conference.location.navbar_title -%}
16
+ {{- site.conference.location.navbar_title -}}
17
+ {%- else -%}
18
+ {{- site.data.lang[site.conference.lang].location.directions | default: "Directions" -}}
19
+ {%- endif %}
20
+ </a>
21
+ </li>
22
+ {% for room in site.rooms or site.conference.location.hide -%}
23
+ <li class="nav-item">
24
+ {% if room.hide -%}
25
+ <span class="nav-item nav-link disabled">
26
+ {{ room.name }}
27
+ </span>
28
+ {%- else -%}
29
+ <a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
30
+ {{ room.name }}
31
+ </a>
32
+ {%- endif %}
33
+ </li>
34
+ {%- endfor %}
35
+ </ul>
36
+ {% endunless %}
@@ -0,0 +1,21 @@
1
+ {%- if site.conference.live -%}
2
+ {%- include partials/get_talk_timestamp.html -%}
3
+
4
+ {%- if site.conference.live.streaming.enable -%}
5
+ <a title="{{ link.name }}" {% if site.conference.live.streaming.external -%}
6
+ href="{{ site.conference.live.streaming.external }}"
7
+ {%- else -%}
8
+ data-toggle="modal" data-target="#stream-modal" data-room="{{ r.name }}" href="#"
9
+ {%- endif -%}
10
+ {%- else -%}
11
+ <span
12
+ {%- endif %} class="live-show live-button badge badge-dark font-weight-normal text-center d-none {{ live_button_styleclass }}" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
13
+ <object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
14
+ {{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
15
+ {%- if site.conference.live.streaming.enable -%}
16
+ </a>
17
+ {%- else -%}
18
+ </span>
19
+ {%- endif -%}
20
+ {%- assign live_button_styleclass = "" -%}
21
+ {%- endif -%}
@@ -0,0 +1,5 @@
1
+ {%- if room.hide or site.conference.location.hide -%}
2
+ <span class="badge badge-light font-weight-normal text-left"><i class="far fa-square"></i>&nbsp;{{ room.name }}</span>
3
+ {%- else -%}
4
+ <a href="{{ room.url | prepend: site.baseurl }}" class="badge badge-light font-weight-normal"><i class="far fa-square"></i>&nbsp;{{ room.name }}</a>
5
+ {%- endif -%}
@@ -0,0 +1,5 @@
1
+ {%- if talk.hide -%}
2
+ {{ talk.name }}
3
+ {%- else -%}
4
+ <a class="text-reset" href="{{ talk.url | prepend: site.baseurl }}">{{ talk.name }}</a>
5
+ {%- endif -%}
@@ -0,0 +1,3 @@
1
+ <span class="badge badge-light font-weight-normal text-left">
2
+ <i class="fas fa-stopwatch"></i>&nbsp;{{ talk_duration_min }}min
3
+ </span>
@@ -0,0 +1,17 @@
1
+ {%- assign nbr_days = site.data.program.days | size -%}
2
+
3
+ <a href="
4
+ {{- site.conference.program.url | prepend: site.baseurl -}}
5
+ {%- if nbr_days > 1 and day_hash -%}
6
+ #{{ day_hash }}
7
+ {%- endif -%}
8
+ " class="badge badge-light font-weight-normal text-left {{ talk_time_styleclass }}">
9
+ <i class="far fa-clock"></i>&nbsp;
10
+ {%- if nbr_days > 1 and day_abbr -%}
11
+ {%- unless talk_day_hide -%} {{ day_abbr }}, {% endunless -%}
12
+ {%- assign talk_day_hide = false -%}
13
+ {% endif -%}
14
+ {{- talk_start_hour -}}:{%- if talk_start_min < 10 -%}0{%- endif -%}{{- talk_start_min -}}
15
+ </a>
16
+
17
+ {%- assign talk_time_styleclass = "" -%}
@@ -0,0 +1,78 @@
1
+ {
2
+ {%- include partials/get_enable_map.html -%}
3
+ {%- if enable_map %}
4
+ "map": {
5
+ "map_provider": "{{ site.conference.location.map.map_provider | default: 'OpenStreetMap.Mapnik' }}",
6
+ "home_coord": [{{ site.conference.location.map.home_coord | default: '47.3744489, 47.3744489' }}],
7
+ "default_zoom": {{ site.conference.location.map.default_zoom | default: 17 }}
8
+ },
9
+ {%- endif %}
10
+
11
+ {% if site.conference.live -%}
12
+ "live": {
13
+ "time": {
14
+ {% assign d = site.data.program.days | first -%}
15
+ {%- include partials/get_day_time.html -%}
16
+ {%- assign t = day_start_talk -%}
17
+
18
+ {%- include partials/get_talk_timestamp.html -%}
19
+ {%- assign conf_start = timestamp_start -%}
20
+
21
+ {%- assign d = site.data.program.days | last -%}
22
+ {%- include partials/get_day_time.html -%}
23
+ {%- assign t = day_end_talk -%}
24
+
25
+ {%- include partials/get_talk_timestamp.html -%}
26
+ {%- assign conf_end = timestamp_end -%}
27
+
28
+ "start": {{ conf_start }},
29
+ "end": {{ conf_end }}
30
+ },
31
+
32
+ "streaming": {
33
+ "enable": {{ site.conference.live.streaming.enable | default: "false" }},
34
+ "pause": {{ site.conference.live.streaming.pause | default: 60 }},
35
+ "prepend": {{ site.conference.live.streaming.prepend | default: 5 }},
36
+ "extend": {{ site.conference.live.streaming.extend | default: 5 }}
37
+ },
38
+
39
+ "demo": {
40
+ "enable": {{ site.conference.live.demo.enable | default: "false" }},
41
+ "duration": {{ site.conference.live.demo.duration | default: 300 }},
42
+ "pause": {{ site.conference.live.demo.pause | default: 10 }}
43
+ }
44
+ },
45
+ {%- endif %}
46
+
47
+ "lang": {
48
+ {%- if enable_map %}
49
+ "map": {
50
+ "focus_conf": "{{ site.data.lang[site.conference.lang].location.focus_conf | default: "Center map on conference location" }}",
51
+ "focus_me": "{{ site.data.lang[site.conference.lang].location.focus_me | default: "Show me where I am" }}"
52
+ }
53
+ {%- endif -%}
54
+
55
+ {%- if site.conference.live and site.conference.live.streaming.enable -%}
56
+ {%- if enable_map %},{% endif %}
57
+ "live": {
58
+ "pre_stream": "{{ site.data.lang[site.conference.lang].live.pre_stream | default: "Live stream has not started yet." }}",
59
+ "post_stream": "{{ site.data.lang[site.conference.lang].live.post_stream | default: "Live stream has ended." }}",
60
+ "pause_stream": "{{ site.data.lang[site.conference.lang].live.pause_stream | default: "Live stream is currently paused." }}",
61
+ "time": {
62
+ "soon": "{{ site.data.lang[site.conference.lang].live.time.soon | default: "soon" }}",
63
+ "now": "{{ site.data.lang[site.conference.lang].live.time.now | default: "now" }}",
64
+ "in": "{{ site.data.lang[site.conference.lang].live.time.in | default: "in" }} ",
65
+ "since": "{{ site.data.lang[site.conference.lang].live.time.since | default: "since" }} ",
66
+ "weeks": "{{ site.data.lang[site.conference.lang].live.time.weeks | default: "weeks" }}",
67
+ "week": "{{ site.data.lang[site.conference.lang].live.time.week | default: "week" }}",
68
+ "days": "{{ site.data.lang[site.conference.lang].live.time.days | default: "days" }}",
69
+ "day": "{{ site.data.lang[site.conference.lang].live.time.day | default: "day" }}",
70
+ "hours": "{{ site.data.lang[site.conference.lang].live.time.hours | default: "hours" }}",
71
+ "hour": "{{ site.data.lang[site.conference.lang].live.time.hour | default: "hour" }}",
72
+ "minutes": "{{ site.data.lang[site.conference.lang].live.time.minutes | default: "minutes" }}",
73
+ "minute": "{{ site.data.lang[site.conference.lang].live.time.minute | default: "minute" }}"
74
+ }
75
+ }
76
+ {%- endif %}
77
+ }
78
+ }
@@ -0,0 +1,126 @@
1
+ {
2
+ {% if site.conference.live and site.conference.live.streaming.enable -%}
3
+ "days": [
4
+ {%- for d in site.data.program.days %}
5
+ {
6
+ {%- include partials/get_day_hash.html %}
7
+ "name": "{{ day_name }}",
8
+ "hash": "{{ day_hash }}",
9
+ "date": "{{ d.date }}"
10
+ }{%- unless forloop.last -%},{%- endunless %}
11
+ {%- endfor %}
12
+ ],
13
+
14
+ "rooms": {
15
+ {%- assign first_room = true -%}
16
+ {%- for room in site.rooms %}
17
+ {%- if room.live -%}
18
+ {%- include partials/get_room_live_href.html -%}
19
+ {%- unless room_live_href -%}
20
+ {%- continue -%}
21
+ {%- endunless -%}
22
+
23
+ {%- unless first_room -%}
24
+ ,
25
+ {%- else -%}
26
+ {%- assign first_room = false -%}
27
+ {%- endunless %}
28
+ "{{ room.name }}": {
29
+ "id": {{ forloop.index }},
30
+ "name": "{{ room.name }}",
31
+ "href": "{{ room_live_href }}"
32
+ }
33
+ {%- endif -%}
34
+ {%- endfor %}
35
+ },
36
+
37
+ "speakers": {
38
+ {%- for speaker in site.speakers %}
39
+ "{{ speaker.name }}" : {
40
+ {%- if site.conference.speakers.show_firstname %}
41
+ "name": "{{ speaker.first_name | append: ' ' | append: speaker.last_name }}",
42
+ {%- else %}
43
+ "name": "{{ speaker.first_name | slice: 0 | append : '. ' | append: speaker.last_name }}",
44
+ {%- endif -%}
45
+ {%- if speaker.hide %}
46
+ "href": ""
47
+ {%- else %}
48
+ "href": "{{ speaker.url | prepend: site.baseurl }}"
49
+ {%- endif %}
50
+ }{%- unless forloop.last -%},{%- endunless %}
51
+ {%- endfor %}
52
+ },
53
+
54
+ "talks": {
55
+ {%- assign first_room = true -%}
56
+ {%- for room in site.rooms -%}
57
+ {%- assign first_talk = true -%}
58
+ {%- for d in site.data.program.days -%}
59
+ {%- for r in d.rooms -%}
60
+ {%- if room.name == r.name and room.live %}
61
+
62
+ {%- if first_talk -%}
63
+ {%- unless first_room -%}
64
+ ,
65
+ {%- else -%}
66
+ {%- assign first_room = false -%}
67
+ {%- endunless %}
68
+ "{{ room.name | replace: '"', '\"' }}": [
69
+ {%- assign first_talk = false %}
70
+ {%- else -%}
71
+ ,
72
+ {%- endif -%}
73
+
74
+ {%- for t in r.talks %}
75
+ {%- assign talk = site.talks | where: 'name', t.name | first %}
76
+ {
77
+ "name": "{{ talk.name | replace: '"', '\"' }}",
78
+
79
+ {%- unless talk.hide %}
80
+ "href": "{{ talk.url | prepend: site.baseurl }}",
81
+ {%- else %}
82
+ "href": "",
83
+ {%- endunless -%}
84
+
85
+ {%- include partials/get_main_category.html %}
86
+ "color": "{{ main_cat_color }}",
87
+ "speakers": [
88
+ {%- for speaker_name in talk.speakers %}
89
+ "{{ speaker_name}}"{%- unless forloop.last -%},{%- endunless -%}
90
+ {%- endfor %}
91
+ ],
92
+
93
+ {%- include partials/get_talk_timestamp.html %}
94
+ "start": {{ timestamp_start }},
95
+ "end": {{ timestamp_end }}
96
+
97
+ {%- if talk.live.links -%},
98
+ "live_links": [
99
+ {%- for link in talk.live.links %}
100
+ {
101
+ "name": "{{ link.name | replace: '"', '\"' }}",
102
+ "href": "{{ link.absolute_url | replace: '"', '%22' }}"
103
+ {%- if link.icon -%},
104
+ "icon": "{{ link.icon | replace: '"', '\"' }}"
105
+ {%- endif %}
106
+ {%- if link.disabled -%},
107
+ "disabled": true
108
+ {%- endif %}
109
+ }{%- unless forloop.last -%},{%- endunless -%}
110
+ {%- endfor %}
111
+ ]
112
+ {%- endif %}
113
+ }{%- unless forloop.last -%},{%- endunless -%}
114
+ {%- endfor -%}
115
+ {%- endif -%}
116
+ {%- endfor -%}
117
+ {%- endfor -%}
118
+
119
+ {%- unless first_talk %}
120
+ ]
121
+ {%- endunless -%}
122
+ {%- endfor %}
123
+ }
124
+
125
+ {%- endif %}
126
+ }
@@ -0,0 +1,5 @@
1
+ {% include partials/header.html %}
2
+
3
+ {{ content }}
4
+
5
+ {% include partials/footer.html %}