jekyll-theme-conference 2.5.4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -40
  3. data/_includes/js/conference-live.js +188 -102
  4. data/_includes/js/conference-program.js +48 -0
  5. data/_includes/js/conference.js +11 -11
  6. data/_includes/js/jquery-3.5.1.min.js +2 -0
  7. data/_includes/partials/checks.html +66 -31
  8. data/_includes/partials/footer.html +3 -3
  9. data/_includes/partials/get_day_hash.html +20 -0
  10. data/_includes/partials/get_day_time.html +19 -0
  11. data/_includes/partials/get_link.html +41 -41
  12. data/_includes/partials/get_link_types.html +14 -14
  13. data/_includes/partials/get_live_timestamps.html +49 -0
  14. data/_includes/partials/get_main_category.html +9 -9
  15. data/_includes/partials/get_talk_time.html +7 -7
  16. data/_includes/partials/get_talk_timestamp.html +4 -0
  17. data/_includes/partials/get_time_pronoun.html +6 -0
  18. data/_includes/partials/header.html +15 -12
  19. data/_includes/partials/info_bar.html +22 -22
  20. data/_includes/partials/list_categories.html +2 -2
  21. data/_includes/partials/list_speakers.html +14 -18
  22. data/_includes/partials/list_sub_categories.html +7 -7
  23. data/_includes/partials/{live-modal.html → live_modal.html} +4 -7
  24. data/_includes/partials/navbar.html +25 -33
  25. data/_includes/partials/navbar_rooms.html +21 -20
  26. data/_includes/partials/{live_button.html → show_live_button.html} +6 -8
  27. data/_includes/partials/show_room.html +5 -5
  28. data/_includes/partials/show_talk.html +3 -3
  29. data/_includes/partials/show_talk_time.html +16 -2
  30. data/_layouts/data.html +91 -0
  31. data/_layouts/home.html +2 -10
  32. data/_layouts/program.html +179 -148
  33. data/_layouts/room.html +42 -38
  34. data/_layouts/speaker.html +40 -36
  35. data/_layouts/talk-overview.html +83 -53
  36. data/_layouts/talk.html +36 -34
  37. data/_sass/conference.scss +29 -7
  38. data/assets/icons/live.svg +33 -57
  39. data/assets/js/data.json +3 -0
  40. data/assets/js/main.js +0 -6
  41. metadata +13 -9
  42. data/_includes/js/conference-data.js +0 -87
  43. data/_includes/js/jquery-3.2.1.slim.min.js +0 -4
  44. data/_includes/partials/get_conf_time.html +0 -54
  45. data/_includes/partials/get_timestamp.html +0 -4
  46. data/_layouts/delete_hidden.html +0 -25
@@ -1,9 +1,9 @@
1
- {% for main_cat in site.conference.talks.main_categories %}
2
- {% for cat in talk.categories %}
3
- {% if cat == main_cat.name %}
4
- {% assign main_cat = main_cat.name %}
5
- {% assign main_cat_color = main_cat.color %}
6
- {% break %}
7
- {% endif %}
8
- {% endfor %}
9
- {% endfor %}
1
+ {%- for main_cat in site.conference.talks.main_categories -%}
2
+ {%- for cat in talk.categories -%}
3
+ {%- if cat == main_cat.name -%}
4
+ {%- assign main_cat = main_cat.name -%}
5
+ {%- assign main_cat_color = main_cat.color -%}
6
+ {%- break -%}
7
+ {%- endif -%}
8
+ {%- endfor -%}
9
+ {%- endfor -%}
@@ -1,9 +1,9 @@
1
- {% assign talk_start = t.time_start %}
2
- {% assign talk_end = t.time_end %}
1
+ {%- assign talk_start = t.time_start -%}
2
+ {%- assign talk_end = t.time_end -%}
3
3
 
4
- {% assign talk_start_hour = talk_start | split: ':' | first %}
5
- {% assign talk_start_min = talk_start | split: ':' | last | divided_by: site.conference.program.time_steps | floor | times: site.conference.program.time_steps %}
6
- {% assign talk_end_hour = talk_end | split: ':' | first %}
7
- {% assign talk_end_min = talk_end | split: ':' | last | divided_by: site.conference.program.time_steps | ceil | times: site.conference.program.time_steps %}
4
+ {%- assign talk_start_hour = talk_start | split: ':' | first -%}
5
+ {%- assign talk_start_min = talk_start | split: ':' | last | divided_by: site.conference.program.time_steps | floor | times: site.conference.program.time_steps -%}
6
+ {%- assign talk_end_hour = talk_end | split: ':' | first -%}
7
+ {%- assign talk_end_min = talk_end | split: ':' | last | divided_by: site.conference.program.time_steps | ceil | times: site.conference.program.time_steps -%}
8
8
 
9
- {% assign talk_duration_min = talk_end_hour | minus: talk_start_hour | times: 60 | minus: talk_start_min | plus: talk_end_min %}
9
+ {%- assign talk_duration_min = talk_end_hour | minus: talk_start_hour | times: 60 | minus: talk_start_min | plus: talk_end_min -%}
@@ -0,0 +1,4 @@
1
+ {%- assign datetime_start = d.date | append: " " | append: t.time_start -%}
2
+ {%- assign timestamp_start = datetime_start | date: "%s" -%}
3
+ {%- assign datetime_end = d.date | append: " " | append: t.time_end -%}
4
+ {%- assign timestamp_end = datetime_end | date: "%s" -%}
@@ -0,0 +1,6 @@
1
+ {%- assign nbr_days = site.data.program.days | size -%}
2
+ {%- if nbr_days > 1 and day_abbr -%}
3
+ {%- assign time_pronoun = site.data.lang[site.conference.lang].pronoun.on_ | default: "on" -%}
4
+ {%- else -%}
5
+ {%- assign time_pronoun = site.data.lang[site.conference.lang].pronoun.at | default: "at" -%}
6
+ {%- endif -%}
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html lang="{{ site.conference.lang }}">
2
+ <html lang="{{ site.conference.lang | default: 'en' }}">
3
3
 
4
4
  <head>
5
5
  <meta charset="utf-8" />
@@ -10,36 +10,39 @@
10
10
  </title>
11
11
  <meta name="description" content="{{ site.description }}" />
12
12
 
13
- <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css" />
13
+ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/main.css?t={{ site.time | date: "%s" }}" />
14
14
 
15
- {%- if site.conference.live -%}
16
- <link rel="prefetch" href="{{ site.baseurl }}/assets/icons/live.svg" />
17
- {%- endif -%}
15
+ <link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-regular-400.woff2" type="font/woff2" crossorigin="anonymous" />
16
+ <link rel="preload" as="font" href="{{ site.baseurl }}/assets/webfonts/fa-solid-900.woff2" type="font/woff2" crossorigin="anonymous" />
17
+ {% if site.conference.live -%}
18
+ <link rel="prefetch" as="image" href="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml" crossorigin="anonymous" />
19
+ <link rel="prefetch" as="fetch" href="{{ site.baseurl }}/assets/js/data.json" type="application/json" crossorigin="anonymous" />
20
+ {%- endif %}
18
21
 
19
22
  {%- if site.conference.live.streaming -%}
20
23
  {%- for room in site.rooms -%}
21
- {%- if room.live -%}
22
- <link rel="preconnect" href="{{ room.live }}" />
24
+ {%- if room.live %}
25
+ <link rel="preconnect" href="{{ room.live }}" />
23
26
  {%- endif -%}
24
27
  {%- endfor -%}
25
- {%- endif -%}
28
+ {%- endif %}
26
29
  </head>
27
30
 
28
31
  <body class="pb-4">
29
32
  <header>
30
33
  <!-- navigation bar (web only): -->
31
- {% include partials/navbar.html %}
34
+ {%- include partials/navbar.html -%}
32
35
 
33
- {% unless page.url == "/" %}
36
+ {%- unless page.url == "/" -%}
34
37
  <!-- site title (print only): -->
35
38
  <div class="container d-none d-print-block mt-4 mb-4">
36
39
  <h1 class="display-4">
37
40
  {{ site.title }}
38
41
  </h1>
39
42
  </div>
40
- {% endunless %}
43
+ {%- endunless -%}
41
44
 
42
45
  </header>
43
46
  <main class="container">
44
47
 
45
- {% include partials/info_bar.html %}
48
+ {%- include partials/info_bar.html -%}
@@ -1,30 +1,30 @@
1
- {% if site.conference.show_errors %}
2
- {% include partials/checks.html %}
3
- {% if errors.size > 0 %}
4
- {% for error in errors %}
1
+ {%- if site.conference.show_errors -%}
2
+ {%- include partials/checks.html -%}
3
+ {%- if errors.size > 0 -%}
4
+ {%- for error in errors %}
5
5
  <div class="alert alert-danger fade show" role="alert">
6
6
  <h5 class="alert-heading">There was an error when generating when generating the site!</h5>
7
7
 
8
8
  {{ error | markdownify }}
9
9
  </div>
10
- {% endfor %}
11
- {% endif %}
12
- {% endif %}
10
+ {%- endfor -%}
11
+ {%- endif -%}
12
+ {%- endif -%}
13
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 %}
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
22
 
23
- {% if show_info_bar %}
23
+ {%- if show_info_bar %}
24
24
  <div class="alert alert-{{ info_bar.color }} alert-dismissible fade show" role="alert">
25
- {% if info_bar.title %}
25
+ {%- if info_bar.title %}
26
26
  <h4 class="alert-heading">{{ info_bar.title }}</h4>
27
- {% endif %}
27
+ {%- endif %}
28
28
 
29
29
  {{ info_bar.text | markdownify }}
30
30
 
@@ -32,7 +32,7 @@
32
32
  <span aria-hidden="true">&times;</span>
33
33
  </button>
34
34
  </div>
35
- {% endif %}
36
- {% assign show_info_bar = false %}
37
- {% endfor %}
38
- {% endif %}
35
+ {%- endif -%}
36
+ {%- assign show_info_bar = false -%}
37
+ {%- endfor -%}
38
+ {%- endif -%}
@@ -1,4 +1,4 @@
1
- {% include partials/get_main_category.html %}
1
+ {%- include partials/get_main_category.html -%}
2
2
 
3
3
  <span class="badge badge-{{ main_cat_color }}">{{ main_cat }}</span>
4
- {% include partials/list_sub_categories.html %}
4
+ {%- include partials/list_sub_categories.html -%}
@@ -1,20 +1,16 @@
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 %}
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
8
 
9
- {% if speaker.hide %}
10
- {{ speaker_short }}<!--
11
- {% else %}
12
- <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">{{ speaker_short }}</a><!--
13
- {% endif %}
14
- {% if forloop.last != true %}
15
- -->,
16
- {% else %}
17
- -->
18
- {% endif %}
9
+ {%- if speaker.hide -%}
10
+ {{ speaker_short }}
11
+ {%- else -%}
12
+ <a class="text-reset" href="{{ speaker.url | prepend: site.baseurl }}">{{ speaker_short }}</a>
13
+ {%- endif -%}
14
+ {%- if forloop.last != true %}, {% endif -%}
19
15
 
20
- {% endfor %}
16
+ {%- endfor -%}
@@ -1,8 +1,8 @@
1
- {% assign has_sub_categories = false %}
1
+ {%- assign has_sub_categories = false -%}
2
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>
7
- {% endif %}
8
- {% endfor %}
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 -%}
@@ -29,19 +29,16 @@
29
29
  </div>
30
30
 
31
31
  <div class="modal-footer justify-content-around">
32
- {% for r in site.data.program %}
33
- {% assign room = site.rooms | where: 'name', r.room | first %}
34
-
32
+ {%- for room in site.rooms -%}
35
33
  <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 }}">
36
34
  {{ room.name }}
37
35
  </a>
38
- {% endfor %}
36
+ {%- endfor %}
39
37
  <div class="form-group w-100 d-block d-sm-none">
40
38
  <select class="form-control" id="stream-select">
41
- {% for r in site.data.program %}
42
- {% assign room = site.rooms | where: 'name', r.room | first %}
39
+ {%- for room in site.rooms -%}
43
40
  <option {% unless room.live %}disabled{% endunless %}>{{ room.name }}</option>
44
- {% endfor %}
41
+ {%- endfor %}
45
42
  </select>
46
43
  </div>
47
44
  </div>
@@ -9,44 +9,36 @@
9
9
 
10
10
  <div class="collapse navbar-collapse" id="navbarSupportedContent">
11
11
  <ul class="navbar-nav mr-auto">
12
- {% for link in site.conference.navigation.links %}
12
+ {%- for link in site.conference.navigation.links -%}
13
13
 
14
- {% if link.menu %}
14
+ {%- if link.menu %}
15
15
  <li class="nav-item dropdown">
16
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
17
  {{ link.name }}
18
18
  </a>
19
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 %}
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
24
  {{ link_tag }}
25
25
  {{ link.name }}
26
26
  </a>
27
- {% endfor %}
27
+ {%- endfor %}
28
28
  </div>
29
29
  </li>
30
30
 
31
- {% elsif link.live %}
32
- {% include partials/get_conf_time.html %}
33
- {% assign time_start = conf_start %}
34
- {% assign time_end = conf_end %}
35
- {% include partials/get_timestamp.html %}
31
+ {%- elsif link.live -%}
32
+ {%- include partials/get_live_timestamps.html -%}
36
33
 
37
- {% assign offset_start = site.conference.live.streaming.start_early | default: 0 %}
38
- {% assign offset_end = site.conference.live.streaming.end_late | default: 0 %}
39
- {% assign timestamp_start = offset_start | times: -60 | plus: timestamp_start %}
40
- {% assign timestamp_end = offset_end | times: 60 | plus: timestamp_end %}
41
-
42
- <li class="nav-item live-show d-none" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
43
- {% if site.conference.live.streaming %}
34
+ <li class="nav-item live-show d-none" data-start="{{ live_starts }}" data-end="{{ live_ends }}">
35
+ {%- if site.conference.live.streaming %}
44
36
  <a class="nav-link" title="{% if link.name %}{{ link.name }}{% else %}{{ site.data.lang[site.conference.lang].live.streaming | default: "Live Stream" }}{% endif %}" data-toggle="modal" data-target="#stream-modal" data-room="" href="#">
45
- {% else %}
46
- {% assign link_styleclass = "nav-link" %}
47
- {% include partials/get_link.html %}
37
+ {%- else %}
38
+ {%- assign link_styleclass = "nav-link" -%}
39
+ {%- include partials/get_link.html %}
48
40
  {{ link_tag }}
49
- {% endif %}
41
+ {%- endif %}
50
42
 
51
43
  {{ link.name | default: "" }}
52
44
 
@@ -57,30 +49,30 @@
57
49
  </a>
58
50
  </li>
59
51
 
60
- {% else %}
52
+ {%- else %}
61
53
  <li class="nav-item {% if page.url contains link.relative_url %}active{% endif %}">
62
- {% assign link_styleclass = "nav-link" %}
63
- {% include partials/get_link.html %}
54
+ {%- assign link_styleclass = "nav-link" -%}
55
+ {%- include partials/get_link.html -%}
64
56
  {{ link_tag }}
65
57
  {{ link.name }}
66
58
  </a>
67
59
  </li>
68
- {% endif %}
69
- {% endfor %}
60
+ {%- endif -%}
61
+ {%- endfor %}
70
62
  </ul>
71
63
  </div>
72
64
 
73
- {% if site.conference.navigation.logo %}
65
+ {%- if site.conference.navigation.logo %}
74
66
  <div class="navbar-brand navbar-logo mr-0 w-25 text-right overflow-hidden">
75
67
  <a href="{{ site.conference.navigation.logo.url }}">
76
- {% if site.conference.navigation.logo.img %}
68
+ {%- if site.conference.navigation.logo.img %}
77
69
  <img src="{{ site.conference.navigation.logo.img | prepend: '/assets/images/' | prepend: site.baseurl }}" class="align-middle" alt="{{ site.conference.navigation.logo.name }}" />
78
- {% else %}
70
+ {%- else %}
79
71
  {{ site.conference.navigation.logo.name }}
80
- {% endif %}
72
+ {%- endif %}
81
73
  </a>
82
74
  </div>
83
- {% endif %}
75
+ {%- endif %}
84
76
 
85
77
  </div>
86
78
  </nav>
@@ -4,40 +4,41 @@
4
4
  {{ site.data.lang[site.conference.lang].location.directions | default: "Directions" }}
5
5
  </a>
6
6
  </li>
7
- {% for r in site.data.program %}
8
- {% assign room = site.rooms | where: 'name', r.room | first %}
7
+ {%- for room in site.rooms -%}
9
8
  <li class="nav-item">
10
- {% if room.hide %}
9
+ {%- if room.hide %}
11
10
  <span class="nav-item nav-link disabled">
12
11
  {{ room.name }}
13
12
  </span>
14
- {% else %}
13
+ {%- else %}
15
14
  <a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
16
15
  {{ room.name }}
17
16
  </a>
18
- {% endif %}
17
+ {%- endif %}
19
18
  </li>
20
- {% endfor %}
21
- {% for room in site.rooms %}
22
- {% assign room_displayed = false %}
23
- {% for r in site.data.program %}
24
- {% if room.name == r.room %}
25
- {% assign room_displayed = true %}
26
- {% break %}
27
- {% endif %}
28
- {% endfor %}
29
- {% unless room_displayed %}
19
+ {%- endfor -%}
20
+ {%- for room in site.rooms -%}
21
+ {%- assign room_displayed = false -%}
22
+ {%- for d in site.data.program.days -%}
23
+ {%- for r in d.rooms -%}
24
+ {%- if room.name == r.name -%}
25
+ {%- assign room_displayed = true -%}
26
+ {%- break -%}
27
+ {%- endif -%}
28
+ {%- endfor -%}
29
+ {%- endfor -%}
30
+ {%- unless room_displayed %}
30
31
  <li class="nav-item">
31
- {% if room.hide or site.conference.location.hide %}
32
+ {%- if room.hide or site.conference.location.hide %}
32
33
  <span class="nav-item nav-link disabled">
33
34
  {{ room.name }}
34
35
  </span>
35
- {% else %}
36
+ {%- else %}
36
37
  <a class="nav-link {% if this_room.name == room.name %}active{% endif %}" href="{{ room.url | prepend: site.baseurl }}">
37
38
  {{ room.name }}
38
39
  </a>
39
- {% endif %}
40
+ {%- endif %}
40
41
  </li>
41
- {% endunless %}
42
- {% endfor %}
42
+ {%- endunless -%}
43
+ {%- endfor %}
43
44
  </ul>
@@ -1,13 +1,11 @@
1
- {% if site.conference.live %}
2
- {% assign time_start = t.time_start %}
3
- {% assign time_end = t.time_end %}
4
- {% include partials/get_timestamp.html %}
1
+ {%- if site.conference.live -%}
2
+ {%- include partials/get_talk_timestamp.html -%}
5
3
 
6
4
  {%- if site.conference.live.streaming -%}
7
- <a title="{{ link.name }}" data-toggle="modal" data-target="#stream-modal" data-room="{{ r.room }}" href="#"
5
+ <a title="{{ link.name }}" data-toggle="modal" data-target="#stream-modal" data-room="{{ r.name }}" href="#"
8
6
  {%- else -%}
9
7
  <span
10
- {%- endif %} class="live-show live-button badge badge-dark font-weight-normal text-left d-none {{ live_button_styleclass }}" data-start="{{ timestamp_start }}" data-end="{{ timestamp_end }}">
8
+ {%- 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 }}">
11
9
  <object data="{{ site.baseurl }}/assets/icons/live.svg" type="image/svg+xml">!</object>
12
10
  {{ site.data.lang[site.conference.lang].live.live | default: "Live" }}
13
11
  {%- if site.conference.live.streaming -%}
@@ -15,5 +13,5 @@
15
13
  {%- else -%}
16
14
  </span>
17
15
  {%- endif -%}
18
- {% assign live_button_styleclass = "" %}
19
- {% endif %}
16
+ {%- assign live_button_styleclass = "" -%}
17
+ {%- endif -%}
@@ -1,5 +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 %}-->
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 -%}