jekyll-nagymaros 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +92 -0
- data/_config.yml +22 -0
- data/_data/contributors.yml +0 -0
- data/_data/index.yml +0 -0
- data/_data/locations.yml +0 -0
- data/_data/program.yml +0 -0
- data/_includes/footer.html +6 -0
- data/_includes/head.html +18 -0
- data/_includes/header.html +31 -0
- data/_includes/metadata.liquid +11 -0
- data/_layouts/404.html +16 -0
- data/_layouts/contributors.html +42 -0
- data/_layouts/default.html +13 -0
- data/_layouts/index.html +35 -0
- data/_layouts/locations.html +19 -0
- data/_layouts/page.html +16 -0
- data/_layouts/program.html +114 -0
- data/_sass/_custom.scss +0 -0
- data/_sass/_elements.scss +46 -0
- data/_sass/_fonts.scss +46 -0
- data/_sass/_utilities.scss +43 -0
- data/_sass/overrides/_bootstrap.scss +81 -0
- data/_sass/overrides/_leaflet.scss +20 -0
- data/assets/css/bootstrap.css +12068 -0
- data/assets/css/leaflet.css +661 -0
- data/assets/css/open-color.css +343 -0
- data/assets/css/styles.scss +11 -0
- data/assets/images/layers-2x.png +0 -0
- data/assets/images/layers.png +0 -0
- data/assets/images/marker-icon-2x.png +0 -0
- data/assets/images/marker-icon.png +0 -0
- data/assets/images/marker-shadow.png +0 -0
- data/assets/js/bootstrap.js +4494 -0
- data/assets/js/leaflet.js +6 -0
- data/assets/js/main.js +60 -0
- data/assets/webfonts/Inter-Bold.woff2 +0 -0
- data/assets/webfonts/Inter-BoldItalic.woff2 +0 -0
- data/assets/webfonts/Inter-Italic.woff2 +0 -0
- data/assets/webfonts/Inter-Light.woff2 +0 -0
- data/assets/webfonts/Inter-LightItalic.woff2 +0 -0
- data/assets/webfonts/Inter-Medium.woff2 +0 -0
- data/assets/webfonts/Inter-MediumItalic.woff2 +0 -0
- data/assets/webfonts/Inter-Regular.woff2 +0 -0
- data/assets/webfonts/ZillaSlab-Light.woff2 +0 -0
- data/assets/webfonts/ZillaSlab-LightItalic.woff2 +0 -0
- metadata +137 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 143fe5368b1aa6a48989390d78cdb0760ae46eb3f2c57497efef271188a7f217
|
4
|
+
data.tar.gz: e6b5fc6447df3d621888abf1db389bedb386e2a48177cd9b2d2825996f959ad1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bd4172b1713a9b1049cf57d4b1f79ba3e174b3d1efd95a267dc080598a248c1712edbb002aa904f75cd6aee6e80e090438e03afdafec7cc11cff93a782dce09c
|
7
|
+
data.tar.gz: 6c02ab99aa0c33ce02f9a67cc2e946dbcb24bc5c7be37b899ec4576f713b9b6a5765f8f892a12e8446b82f2bb9468c2acbc9486b15576610e72a6ae7de0c20fb
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2023 Michele Piazzai
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
# jekyll-nagymaros
|
2
|
+
|
3
|
+
Nagymaros is a [Jekyll](https://jekyllrb.com) theme designed for conferences, workshops, meetings, and similar events. It has a simple and intuitive structure featuring four pages that provide key information about the event:
|
4
|
+
|
5
|
+
- An index, meant for basic details and links to external sources, such as submission systems.
|
6
|
+
- A program, allowing for single or multi-day schedules and color-coded event categories.
|
7
|
+
- A map of conference locations, customizable with markers, areas, and tooltips.
|
8
|
+
- An alphabetical list of contributors, with optional roles and email addresses.
|
9
|
+
|
10
|
+
The theme is based on [Bootstrap 5](https://getbootstrap.com/), which makes it mobile-first and fully responsive. Body text is set in Inter, a clean sans-serif typeface that guarantees readability at small screen sizes. A slab-serif typeface, Zilla Slab, is used instead in display headings. The layout is adapted from [jekyll-conference-theme](https://github.com/DigitaleGesellschaft/jekyll-theme-conference) and remains quite similar to it, but compared to this theme, Nagymaros aims to be simpler and easier to customize.
|
11
|
+
|
12
|
+
See the [demo](https://jekyll-nagymaros.netlify.app) to find out what the theme looks like.
|
13
|
+
|
14
|
+
![](https://github.com/piazzai/jekyll-nagymaros/blob/master/screenshot.png)
|
15
|
+
|
16
|
+
## Installation
|
17
|
+
|
18
|
+
The theme can be installed as usual by cloning this repository and editing the files. However, it is far more convenient to install it as a gem, in which case all the files you do not want or need to customize remain hidden from view, but will still be read and processed during build.
|
19
|
+
|
20
|
+
If you choose to install the theme as a gem, your site should include at a minimum the following files:
|
21
|
+
|
22
|
+
```bash
|
23
|
+
.
|
24
|
+
├── 404.md
|
25
|
+
├── _config.yml
|
26
|
+
├── contributors.md
|
27
|
+
├── _data
|
28
|
+
│ ├── contributors.yml
|
29
|
+
│ ├── index.yml
|
30
|
+
│ ├── locations.yml
|
31
|
+
│ └── program.yml
|
32
|
+
├── Gemfile
|
33
|
+
├── index.md
|
34
|
+
├── locations.md
|
35
|
+
└── program.md
|
36
|
+
|
37
|
+
```
|
38
|
+
|
39
|
+
To install the theme, you can then add this line to your `Gemfile`:
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
gem "jekyll-nagymaros"
|
43
|
+
```
|
44
|
+
|
45
|
+
And this line to `_config.yml`:
|
46
|
+
|
47
|
+
```yaml
|
48
|
+
theme: jekyll-nagymaros
|
49
|
+
```
|
50
|
+
|
51
|
+
The easiest way to set up a new website in this way is to clone the contents of the `demo` folder. This provides a working set of files to get you started.
|
52
|
+
|
53
|
+
After you are done creating the basic files, run bundler:
|
54
|
+
|
55
|
+
$ bundle
|
56
|
+
|
57
|
+
Or install the gem yourself as:
|
58
|
+
|
59
|
+
$ gem install jekyll-nagymaros
|
60
|
+
|
61
|
+
To customize hidden files, you can create new files with the same names and paths. For example, to change the layout of the index page, you can create a `_layouts` folder and a file `index.html` within this folder that contains your custom code. During build, Jekyll will give priority to your files over the theme's.
|
62
|
+
|
63
|
+
## Usage
|
64
|
+
|
65
|
+
Core customization occurs in `_config.yml`. Aside from the usual configuration variables, you can set a value for the variable `home`, which specifies the page of your site to which you want the home button in the navigation bar to redirect. By default, this is set to the index. In addition, you can set a value for `copyright`, which corresponds to the name of the copyright holder in the notice within the theme's footer. By default, no value is provided for this variable, in which case the whole copyright notice is suppressed. Finally, you can set a value for `indexing`, which tells search engine crawlers whether to index your site. By default, the value is `false`, in which case the following code is placed in the head of every page:
|
66
|
+
|
67
|
+
```html
|
68
|
+
<meta name="robots" content="noindex, nofollow">
|
69
|
+
```
|
70
|
+
|
71
|
+
If you set `indexing: true`, however, crawlers will be allowed to index your site and Jekyll will populate the head of every page with SEO tags through the `jekyll-seo-tag` plugin.
|
72
|
+
|
73
|
+
Data that appears in the theme's four default pages must be configured via YAML files located in the `_data` folder. See the corresponding files in `demo/_data` to understand how to write your own YAML, or better yet, clone these files and edit them.
|
74
|
+
|
75
|
+
The order of appearance of pages in the theme's navigation bar is determined by the value of `navorder` set in each page's front matter. For example, setting `navorder: 1` will make the page appear first in the list. Note that a page will only appear in the navigation bar if the `navorder` variable is set, so it is possible to hide some pages from navigation simply by not giving this variable a value.
|
76
|
+
|
77
|
+
Customizing the CSS is possible by creating a file `_sass/_custom.scss`. You can use this both to define new styles or to overwrite the theme's defaults. The file will be automatically compiled during build.
|
78
|
+
|
79
|
+
## Credits
|
80
|
+
|
81
|
+
The theme builds on the following projects:
|
82
|
+
|
83
|
+
- [Bootstrap](https://getbootstrap.com/)
|
84
|
+
- [Inter](https://rsms.me/inter/)
|
85
|
+
- [jekyll-theme-conference](https://github.com/DigitaleGesellschaft/jekyll-theme-conference)
|
86
|
+
- [Leaflet.js](https://leafletjs.com/)
|
87
|
+
- [Open Color](https://yeun.github.io/open-color)
|
88
|
+
- [Zilla Slab](https://github.com/mozilla/zilla-slab)
|
89
|
+
|
90
|
+
## Bugs
|
91
|
+
|
92
|
+
If you find any problem using this theme, please [open an issue](https://github.com/piazzai/jekyll-nagymaros/issues).
|
data/_config.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
title: ""
|
2
|
+
description: ""
|
3
|
+
baseurl: ""
|
4
|
+
url: ""
|
5
|
+
|
6
|
+
home: false
|
7
|
+
copyright: false
|
8
|
+
indexing: false
|
9
|
+
|
10
|
+
exclude:
|
11
|
+
- demo/
|
12
|
+
- jekyll-nagymaros.gemspec
|
13
|
+
- LICENSE
|
14
|
+
- README.md
|
15
|
+
- screenshot.png
|
16
|
+
|
17
|
+
plugins:
|
18
|
+
- jekyll-seo-tag
|
19
|
+
- jekyll-sitemap
|
20
|
+
|
21
|
+
sass:
|
22
|
+
sourcemap: never
|
File without changes
|
data/_data/index.yml
ADDED
File without changes
|
data/_data/locations.yml
ADDED
File without changes
|
data/_data/program.yml
ADDED
File without changes
|
data/_includes/head.html
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
<head>
|
2
|
+
<meta charset="UTF-8">
|
3
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
4
|
+
{% if site.indexing and page.layout != 404 %}
|
5
|
+
{% seo %}
|
6
|
+
{% else %}
|
7
|
+
<meta name="robots" content="noindex, nofollow">
|
8
|
+
{% if page.title %}
|
9
|
+
<title>{{ site.title | prepend: ' | ' | prepend: page.title }}</title>
|
10
|
+
{% else %}
|
11
|
+
<title>{{ site.title | append: ' | ' | append: site.description }}</title>
|
12
|
+
{% endif %}
|
13
|
+
{% endif %}
|
14
|
+
<link rel="stylesheet" href="{{ '/assets/css/bootstrap.css' | relative_url }}">
|
15
|
+
<link rel="stylesheet" href="{{ '/assets/css/leaflet.css' | relative_url }}">
|
16
|
+
<link rel="stylesheet" href="{{ '/assets/css/open-color.css' | relative_url }}">
|
17
|
+
<link rel="stylesheet" href="{{ '/assets/css/styles.css' | relative_url }}">
|
18
|
+
</head>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<header class="bg-gray-4">
|
2
|
+
<div class="container">
|
3
|
+
<nav class="navbar navbar-expand-sm">
|
4
|
+
{% if site.home %}
|
5
|
+
{% assign home = site.home | relative_url %}
|
6
|
+
{% else %}
|
7
|
+
{% assign home = '/' | relative_url %}
|
8
|
+
{% endif %}
|
9
|
+
<a class="navbar-brand" href="{{ home }}">{{ site.title }}</a>
|
10
|
+
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navigation" aria-controls="navigation" aria-expanded="false" aria-label="Toggle navigation">
|
11
|
+
<span class="navbar-toggler-icon"></span>
|
12
|
+
</button>
|
13
|
+
<div class="collapse navbar-collapse" id="navigation">
|
14
|
+
<div class="navbar-nav">
|
15
|
+
{% assign links = site.pages | sort: 'navorder' %}
|
16
|
+
{% for link in links %}
|
17
|
+
{% if link.navorder %}
|
18
|
+
{% assign current = link.name | split: '.' | first %}
|
19
|
+
{% assign href = link.url | relative_url %}
|
20
|
+
{% if page.layout == current %}
|
21
|
+
<a class="nav-link active" aria-current="page" href="{{ href }}">{{ link.title }}</a>
|
22
|
+
{% else %}
|
23
|
+
<a class="nav-link" href="{{ href }}">{{ link.title }}</a>
|
24
|
+
{% endif %}
|
25
|
+
{% endif %}
|
26
|
+
{% endfor %}
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</nav>
|
30
|
+
</div>
|
31
|
+
</header>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{% if page.title %}
|
2
|
+
{% assign title = page.title %}
|
3
|
+
{% else %}
|
4
|
+
{% assign title = site.title %}
|
5
|
+
{% endif %}
|
6
|
+
|
7
|
+
{% if page.description %}
|
8
|
+
{% assign description = page.description %}
|
9
|
+
{% else %}
|
10
|
+
{% assign description = site.description %}
|
11
|
+
{% endif %}
|
data/_layouts/404.html
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include metadata.liquid %}
|
6
|
+
|
7
|
+
<main>
|
8
|
+
<div class="container text-center">
|
9
|
+
{% assign span = 'class="h1 bg-gray-3 color-gray-0 rounded" id="digit"' %}
|
10
|
+
<span {{ span }}>4</span>
|
11
|
+
<span {{ span }}>0</span>
|
12
|
+
<span {{ span }}>4</span>
|
13
|
+
<h1 class="display-5">{{ title }}</h1>
|
14
|
+
<p class="fs-5"><a href="{{ '/' | relative_url }}">Return to the homepage</a></p>
|
15
|
+
</div>
|
16
|
+
</main>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include metadata.liquid %}
|
6
|
+
{% include header.html %}
|
7
|
+
|
8
|
+
<main class="my-4">
|
9
|
+
<div class="container">
|
10
|
+
<h1 class="display-5">{{ title }}</h1>
|
11
|
+
{{ content }}
|
12
|
+
{% if site.data.contributors %}
|
13
|
+
<hr class="my-4">
|
14
|
+
{% assign groups = site.data.contributors.groups %}
|
15
|
+
{% for group in groups %}
|
16
|
+
{% if group.title %}
|
17
|
+
<h5 class="fw-normal">{{ group.title }}</h5>
|
18
|
+
{% endif %}
|
19
|
+
{% if group.columns %}
|
20
|
+
{% assign div = ' id="roster"' %}
|
21
|
+
{% else %}
|
22
|
+
{% assign div = '' %}
|
23
|
+
{% endif %}
|
24
|
+
<div {{ div }}>
|
25
|
+
<ul class="list-unstyled">
|
26
|
+
{% assign members = group.members | sort_natural: 'surname' %}
|
27
|
+
{% for member in members %}
|
28
|
+
{% assign full = member.name | append: ' ' | append: member.surname %}
|
29
|
+
{% if member.email %}
|
30
|
+
<li class="fw-light"><a href="mailto:{{ member.email }}">{{ full }}</a></li>
|
31
|
+
{% else %}
|
32
|
+
<li class="fw-light">{{ full }}</li>
|
33
|
+
{% endif %}
|
34
|
+
{% endfor %}
|
35
|
+
</ul>
|
36
|
+
</div>
|
37
|
+
{% endfor %}
|
38
|
+
{% endif %}
|
39
|
+
</div>
|
40
|
+
</main>
|
41
|
+
|
42
|
+
{% include footer.html %}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
|
4
|
+
{% include head.html %}
|
5
|
+
|
6
|
+
<body>
|
7
|
+
{{ content }}
|
8
|
+
<script src="{{ '/assets/js/bootstrap.js' | relative_url }}"></script>
|
9
|
+
<script src="{{ '/assets/js/leaflet.js' | relative_url }}"></script>
|
10
|
+
<script src="{{ '/assets/js/main.js' | relative_url }}"></script>
|
11
|
+
</body>
|
12
|
+
|
13
|
+
</html>
|
data/_layouts/index.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include metadata.liquid %}
|
6
|
+
{% include header.html %}
|
7
|
+
|
8
|
+
<main class="my-4">
|
9
|
+
<div class="container px-5 py-3 bg-gray-2 rounded">
|
10
|
+
<h1 class="display-3">{{ title }}</h1>
|
11
|
+
<p class="lead">{{ description }}</p>
|
12
|
+
<hr class="my-4">
|
13
|
+
{{ content }}
|
14
|
+
{% if site.data.index.buttons %}
|
15
|
+
<div class="btn-group-lg mt-4 mb-3" role="group">
|
16
|
+
{% assign buttons = site.data.index.buttons %}
|
17
|
+
{% for button in buttons %}
|
18
|
+
{% assign classes = 'btn btn-primary d-block d-lg-inline-block my-lg-0' %}
|
19
|
+
{% unless forloop.first or forloop.last %}
|
20
|
+
{% assign classes = classes | append: ' my-2 mx-lg-2' %}
|
21
|
+
{% endunless %}
|
22
|
+
{% if button.disabled %}
|
23
|
+
{% assign classes = classes | append: ' disabled' %}
|
24
|
+
{% assign a = '' %}
|
25
|
+
{% else %}
|
26
|
+
{% assign a = 'href="' | append: button.url | append: '"' %}
|
27
|
+
{% endif %}
|
28
|
+
<a {{ a }} type="button" class="{{ classes }}" target="_blank">{{ button.text | upcase }}</a>
|
29
|
+
{% endfor %}
|
30
|
+
</div>
|
31
|
+
{% endif %}
|
32
|
+
</div>
|
33
|
+
</main>
|
34
|
+
|
35
|
+
{% include footer.html %}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include metadata.liquid %}
|
6
|
+
{% include header.html %}
|
7
|
+
|
8
|
+
<main class="my-4">
|
9
|
+
<div class="container">
|
10
|
+
<h1 class="display-5">{{ title }}</h1>
|
11
|
+
{{ content }}
|
12
|
+
{% if site.data.locations %}
|
13
|
+
<hr class="my-4">
|
14
|
+
<div id="map"></div>
|
15
|
+
{% endif %}
|
16
|
+
</div>
|
17
|
+
</main>
|
18
|
+
|
19
|
+
{% include footer.html %}
|
data/_layouts/page.html
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include metadata.liquid %}
|
6
|
+
{% include header.html %}
|
7
|
+
|
8
|
+
<main class="my-4">
|
9
|
+
<div class="container">
|
10
|
+
<h1 class="display-5">{{ title }}</h1>
|
11
|
+
<hr class="my-4">
|
12
|
+
{{ content }}
|
13
|
+
</div>
|
14
|
+
</main>
|
15
|
+
|
16
|
+
{% include footer.html %}
|
@@ -0,0 +1,114 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
{% include metadata.liquid %}
|
6
|
+
{% include header.html %}
|
7
|
+
|
8
|
+
<main class="my-4">
|
9
|
+
<div class="container">
|
10
|
+
<h1 class="display-5">{{ title }}</h1>
|
11
|
+
{{ content }}
|
12
|
+
{% if site.data.program %}
|
13
|
+
<hr class="my-4">
|
14
|
+
<div class="row">
|
15
|
+
{% assign size = site.data.program.days.size %}
|
16
|
+
{% if size > 1 %}
|
17
|
+
<div class="col-lg-2">
|
18
|
+
{% assign directions = 'horizontal, vertical' | split: ', ' %}
|
19
|
+
{% for direction in directions %}
|
20
|
+
{% if direction == 'horizontal' %}
|
21
|
+
{% assign classes = 'd-block d-lg-none text-center mb-3' %}
|
22
|
+
{% assign control = 'btn-group' %}
|
23
|
+
{% else %}
|
24
|
+
{% assign classes = 'd-none d-lg-block' %}
|
25
|
+
{% assign control = 'btn-group-vertical' %}
|
26
|
+
{% endif %}
|
27
|
+
<div class="{{ classes }}">
|
28
|
+
<div class="btn {{ control }} p-0 aos-init aos-animate" role="tablist" data-aos="fade-up">
|
29
|
+
{% for day in site.data.program.days %}
|
30
|
+
{% assign slug = day.name | slugify %}
|
31
|
+
{% assign classes = 'btn btn-secondary' %}
|
32
|
+
{% if forloop.first %}
|
33
|
+
{% assign classes = classes | append: ' active' %}
|
34
|
+
{% endif %}
|
35
|
+
<button type="button" class="{{ classes }}" data-bs-toggle="tab" data-bs-target="#{{ slug }}" role="tab" aria-controls="{{ slug }}" aria-selected="true">
|
36
|
+
<span class="fs-5">{{ day.name }}</span>
|
37
|
+
</button>
|
38
|
+
{% endfor %}
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
{% endfor %}
|
42
|
+
</div>
|
43
|
+
{% assign width = 10 %}
|
44
|
+
{% else %}
|
45
|
+
{% assign width = 12 %}
|
46
|
+
{% endif %}
|
47
|
+
<div class="col-lg-{{ width }}">
|
48
|
+
{% for day in site.data.program.days %}
|
49
|
+
{% assign slug = day.name | slugify %}
|
50
|
+
{% assign classes = 'tab-pane fade' %}
|
51
|
+
{% if forloop.first %}
|
52
|
+
{% assign classes = classes | append: ' active show' %}
|
53
|
+
{% endif %}
|
54
|
+
<div class="tab-content aos-init aos-animate" data-aos="fade-up">
|
55
|
+
<div class="{{ classes }}" id="{{ slug }}" role="tabpanel" aria-labelledby="{{ slug }}-tab">
|
56
|
+
{% assign categories = site.data.program.legend.categories %}
|
57
|
+
<ul class="list-unstyled lh-sm">
|
58
|
+
{% for event in day.events %}
|
59
|
+
{% if event.category %}
|
60
|
+
{% assign category = categories | find: 'name', event.category %}
|
61
|
+
{% assign color = category.color %}
|
62
|
+
{% else %}
|
63
|
+
{% assign color = 'gray-4' %}
|
64
|
+
{% endif %}
|
65
|
+
{% assign start = event.time | split: ' to ' | slice: 0 %}
|
66
|
+
{% assign end = event.time | split: ' to ' | slice: 1 %}
|
67
|
+
{% if forloop.last %}
|
68
|
+
{% assign classes = color | append: ' mb-2' %}
|
69
|
+
{% else %}
|
70
|
+
{% assign classes = color | append: ' mb-4' %}
|
71
|
+
{% endif %}
|
72
|
+
<li class="d-flex flex-column flex-lg-row ms-2">
|
73
|
+
<div class="row col-lg-2 me-lg-4 text-lg-end mb-2">
|
74
|
+
<small class="fw-light text-muted">{{ start }}–{{ end }}</small>
|
75
|
+
</div>
|
76
|
+
<div class="row col-lg-10 border-start border-3 border-{{ classes }}">
|
77
|
+
{% if event.category %}
|
78
|
+
<h5 class="fw-normal m-0 mb-2">{{ event.title }}</h5>
|
79
|
+
<p class="fw-light m-0">{{ event.subtitle }}</p>
|
80
|
+
{% else %}
|
81
|
+
<h5 class="fw-light text-muted m-0 mb-2">{{ event.title }}</h5>
|
82
|
+
<p class="fw-light text-muted m-0">{{ event.subtitle }}</p>
|
83
|
+
{% endif %}
|
84
|
+
</div>
|
85
|
+
</li>
|
86
|
+
{% endfor %}
|
87
|
+
</ul>
|
88
|
+
<div class="text-center">
|
89
|
+
{% assign legend = day.events | map: 'category' | compact | uniq %}
|
90
|
+
{% assign size = legend | size %}
|
91
|
+
{% if size > 0 %}
|
92
|
+
{% if site.data.program.legend.title %}
|
93
|
+
<h5 class="fw-normal">{{ site.data.program.legend.title }}</h5>
|
94
|
+
{% endif %}
|
95
|
+
{% for item in legend %}
|
96
|
+
{% assign border = categories | where: 'name', item | map: 'color' | first %}
|
97
|
+
{% assign bg = border | split: '-' | first | prepend: 'bg-' | append: '-1' %}
|
98
|
+
{% assign classes = border | prepend: ' border-' | prepend: bg %}
|
99
|
+
{% if border %}
|
100
|
+
<small class="d-block d-lg-inline-block mt-2 me-lg-2 px-3 py-1 border-start border-3 {{ classes }}">{{ item | upcase }}</small>
|
101
|
+
{% endif %}
|
102
|
+
{% endfor %}
|
103
|
+
{% endif %}
|
104
|
+
</div>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
{% endfor %}
|
108
|
+
</div>
|
109
|
+
</div>
|
110
|
+
{% endif %}
|
111
|
+
</div>
|
112
|
+
</main>
|
113
|
+
|
114
|
+
{% include footer.html %}
|
data/_sass/_custom.scss
ADDED
File without changes
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#digit {
|
2
|
+
display: inline-block;
|
3
|
+
font-size: 6rem;
|
4
|
+
height: 6rem;
|
5
|
+
line-height: 6rem;
|
6
|
+
margin-top: 15%;
|
7
|
+
width: 6rem;
|
8
|
+
|
9
|
+
$sizes: (
|
10
|
+
576: 8,
|
11
|
+
768: 10,
|
12
|
+
992: 12,
|
13
|
+
);
|
14
|
+
|
15
|
+
@each $size, $size-value in $sizes {
|
16
|
+
@media (min-width: #{$size}px) {
|
17
|
+
font-size: #{$size-value}rem;
|
18
|
+
height: #{$size-value}rem;
|
19
|
+
line-height: #{$size-value}rem;
|
20
|
+
width: #{$size-value}rem;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
#map {
|
26
|
+
height: 65vh;
|
27
|
+
}
|
28
|
+
|
29
|
+
#roster {
|
30
|
+
@media (min-width: 576px) {
|
31
|
+
column-count: 1;
|
32
|
+
}
|
33
|
+
|
34
|
+
@media (min-width: 768px) {
|
35
|
+
column-count: 2;
|
36
|
+
}
|
37
|
+
|
38
|
+
@media (min-width: 992px) {
|
39
|
+
column-count: 3;
|
40
|
+
}
|
41
|
+
|
42
|
+
div {
|
43
|
+
page-break-inside: avoid;
|
44
|
+
break-inside: avoid-column;
|
45
|
+
}
|
46
|
+
}
|
data/_sass/_fonts.scss
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
$weights: (
|
2
|
+
"Light": 300,
|
3
|
+
"Medium": 500,
|
4
|
+
"Bold": 700,
|
5
|
+
);
|
6
|
+
|
7
|
+
$styles: (
|
8
|
+
normal: "",
|
9
|
+
italic: "Italic",
|
10
|
+
);
|
11
|
+
|
12
|
+
@each $style, $style-value in $styles {
|
13
|
+
@font-face {
|
14
|
+
font-family: "Zilla Slab";
|
15
|
+
font-display: swap;
|
16
|
+
font-style: #{$style};
|
17
|
+
font-weight: 300;
|
18
|
+
src: url("../webfonts/ZillaSlab-Light#{$style-value}.woff2") format("woff2");
|
19
|
+
}
|
20
|
+
|
21
|
+
@each $weight, $weight-value in $weights {
|
22
|
+
@font-face {
|
23
|
+
font-family: "Inter";
|
24
|
+
font-display: swap;
|
25
|
+
font-style: #{$style};
|
26
|
+
font-weight: #{$weight-value};
|
27
|
+
src: url("../webfonts/Inter-#{$weight}#{$style-value}.woff2") format("woff2");
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
@font-face {
|
33
|
+
font-family: "Inter";
|
34
|
+
font-display: swap;
|
35
|
+
font-style: normal;
|
36
|
+
font-weight: 400;
|
37
|
+
src: url("../webfonts/Inter-Regular.woff2") format("woff2");
|
38
|
+
}
|
39
|
+
|
40
|
+
@font-face {
|
41
|
+
font-family: "Inter";
|
42
|
+
font-display: swap;
|
43
|
+
font-style: italic;
|
44
|
+
font-weight: 400;
|
45
|
+
src: url("../webfonts/Inter-Italic.woff2") format("woff2");
|
46
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
$colors: (
|
2
|
+
"gray",
|
3
|
+
"red",
|
4
|
+
"pink",
|
5
|
+
"grape",
|
6
|
+
"violet",
|
7
|
+
"indigo",
|
8
|
+
"blue",
|
9
|
+
"cyan",
|
10
|
+
"teal",
|
11
|
+
"green",
|
12
|
+
"lime",
|
13
|
+
"yellow",
|
14
|
+
"orange"
|
15
|
+
);
|
16
|
+
|
17
|
+
@each $color in $colors {
|
18
|
+
@for $scale from 0 through 9 {
|
19
|
+
.bg-#{$color}-#{$scale} {
|
20
|
+
--bs-bg-opacity: 1;
|
21
|
+
background-color: rgba(
|
22
|
+
var(--oc-#{$color}-#{$scale}-rgb),
|
23
|
+
var(--bs-bg-opacity)
|
24
|
+
) !important;
|
25
|
+
}
|
26
|
+
|
27
|
+
.border-#{$color}-#{$scale} {
|
28
|
+
--bs-bg-opacity: 1;
|
29
|
+
border-color: rgba(
|
30
|
+
var(--oc-#{$color}-#{$scale}-rgb),
|
31
|
+
var(--bs-bg-opacity)
|
32
|
+
) !important;
|
33
|
+
}
|
34
|
+
|
35
|
+
.color-#{$color}-#{$scale} {
|
36
|
+
--bs-bg-opacity: 1;
|
37
|
+
color: rgba(
|
38
|
+
var(--oc-#{$color}-#{$scale}-rgb),
|
39
|
+
var(--bs-bg-opacity)
|
40
|
+
) !important;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|