jekyll-twitter-bootstrap 5.3.0.dev5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +222 -0
  4. data/README_OWNER.md +33 -0
  5. data/_config.yml +85 -0
  6. data/_includes/_components/carousel.html +78 -0
  7. data/_includes/_components/columns_icons.html +60 -0
  8. data/_includes/_components/columns_icons_grid.html +97 -0
  9. data/_includes/_components/columns_icons_hanging.html +51 -0
  10. data/_includes/_components/columns_image_cards.html +52 -0
  11. data/_includes/_components/featurette_left.html +21 -0
  12. data/_includes/_components/featurette_right.html +21 -0
  13. data/_includes/_components/hero_centered.html +18 -0
  14. data/_includes/_components/hero_centered_dark.html +20 -0
  15. data/_includes/_components/hero_image_right.html +23 -0
  16. data/_includes/_components/jumbotron_full.html +20 -0
  17. data/_includes/_components/jumbotron_split.html +46 -0
  18. data/_includes/categories.html +16 -0
  19. data/_includes/footer.html +33 -0
  20. data/_includes/footer_custom.html +0 -0
  21. data/_includes/google_analytics.html +13 -0
  22. data/_includes/head.html +16 -0
  23. data/_includes/head_custom.html +0 -0
  24. data/_includes/header.html +30 -0
  25. data/_includes/header_custom.html +0 -0
  26. data/_includes/posts_categories.html +14 -0
  27. data/_includes/posts_latest.html +22 -0
  28. data/_includes/posts_tags.html +14 -0
  29. data/_includes/tags.html +16 -0
  30. data/_layouts/base.html +16 -0
  31. data/_layouts/blog.html +73 -0
  32. data/_layouts/example_components.html +471 -0
  33. data/_layouts/home.html +7 -0
  34. data/_layouts/page.html +9 -0
  35. data/_layouts/page_no_title.html +5 -0
  36. data/_layouts/page_sidebar.html +24 -0
  37. data/_layouts/post.html +41 -0
  38. data/_sass/styles.scss +0 -0
  39. data/assets/css/styles.css +176 -0
  40. data/assets/images/bootstrap-themes.png +0 -0
  41. data/assets/images/favicons/apple-touch-icon.png +0 -0
  42. data/assets/images/favicons/favicon-16x16.png +0 -0
  43. data/assets/images/favicons/favicon-32x32.png +0 -0
  44. data/assets/images/favicons/favicon.ico +0 -0
  45. data/assets/images/favicons/safari-pinned-tab.svg +1 -0
  46. data/assets/images/unsplash-photo-1.jpg +0 -0
  47. data/assets/images/unsplash-photo-2.jpg +0 -0
  48. data/assets/images/unsplash-photo-3.jpg +0 -0
  49. data/assets/svg/bootstrap-icons.svg +58 -0
  50. data/assets/svg/bootstrap.svg +23 -0
  51. data/assets/svg/placeholder-500-500.svg +5 -0
  52. data/assets/svg/placeholder-full-gray.svg +3 -0
  53. metadata +157 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6c2028738ca85151c6052ba1cf60d10945e3e59989c3bc0f92bdf3da0cae1c40
4
+ data.tar.gz: 868a5f0da7a71549d12b6a27f0e6622bc3beb5502d9d13e5229b3fc80551041c
5
+ SHA512:
6
+ metadata.gz: c99905564e985532324fc48b44ed2c2db40fee44159675ea025e91368b09cf307ebc7f9e846366a3dbc5112778ce147432d1bb5cd7c3c4dd4785f037a9f6c144
7
+ data.tar.gz: 7ce6cbde1eef80758eecd227616bff56691d2804bb3698f20be4954ead27393dae8a414fcf36e57d948f5a8ab2cc6a86067995c0275e9f76ad84458e772b67f2
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023 Kenny Carlile
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
13
+ all 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
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,222 @@
1
+ # jekyll-twitter-bootstrap
2
+
3
+ Jekyll Twitter Bootstrap is a Jekyll theme based on [Twitter's Bootstrap framework](https://getbootstrap.com/docs/5.3/) (currently, version 5.3.0). The intent of this theme is to provide a more thorough starting point for using Jekyll and Bootstrap together.
4
+
5
+ ## About
6
+
7
+ - Author: [Kenny Carlile](https://www.kcarlile.com/)
8
+ - Theme Version: 5.3.0.dev
9
+ - Links:
10
+ - [GitHub page for Jekyll Twitter Bootstrap theme](https://github.com/KCarlile/jekyll-twitter-bootstrap)
11
+ - [Ruby Gems page for Jekyll Twitter Bootstrap theme](https://rubygems.org/gems/jekyll-twitter-bootstrap) [![Gem Version](https://badge.fury.io/rb/jekyll-twitter-bootstrap.svg)](https://badge.fury.io/rb/jekyll-twitter-bootstrap)
12
+ - Dependencies:
13
+ - [Twitter Bootstrap 5.3.0](https://getbootstrap.com/docs/5.3/)
14
+ - [Jekyll Paginate](https://github.com/jekyll/jekyll-paginate): Default pagination generator for Jekyll.
15
+ - [Jekyll Feed](https://github.com/jekyll/jekyll-feed): A Jekyll plugin to generate an Atom (RSS-like) feed of your Jekyll posts.
16
+
17
+ ## Installation
18
+
19
+ Add this line to your Jekyll site's `Gemfile`:
20
+
21
+ ```ruby
22
+ gem "jekyll-twitter-bootstrap"
23
+ ```
24
+
25
+ And add this line to your Jekyll site's `_config.yml`:
26
+
27
+ ```yaml
28
+ theme: jekyll-twitter-bootstrap
29
+ ```
30
+
31
+ And then execute:
32
+
33
+ ```bash
34
+ $ bundle
35
+ ```
36
+
37
+ Or install it yourself as:
38
+
39
+ ```bash
40
+ $ gem install jekyll-twitter-bootstrap
41
+ ```
42
+
43
+ To launch the local Jekyll server for testing, run:
44
+ ```bash
45
+ bundle exec jekyll serve
46
+ ```
47
+
48
+ Alternately, you can run the included `server` script like this:
49
+
50
+ ```bash
51
+ $ ./server
52
+ ```
53
+
54
+ You may need to make the `server` script executable by running `$ sudo chmod +x ./server`.
55
+
56
+ ## Usage
57
+
58
+ ### Layouts
59
+
60
+ The following layouts are available in the `_layouts/` directory (indentation denotes child of previous row):
61
+
62
+ | `_layouts/` Filename | Description |
63
+ | -------------------- | ----------- |
64
+ | `base.html` | Base HTML template for all pages. |
65
+ |     `page_sidebar.html` | Main content template with sidebar with rendered sidebar includes as specified in the page's front matter. (Layout `base.html`) |
66
+ |         `blog.html` | Paginated listing of blog posts starting with the most recent and includes Categories and Tags sidebar includes. (Layout `page_sidebar.html`) |
67
+ |         `post.html` | Single post listing which includes Categories and Tags sidebar includes. (Layout `page_sidebar.html`) |
68
+ |     `page.html` | Basic page content with rendered title and body only. (Layout `base.html`) |
69
+ |     `page_no_title.html` | Basic page content with rendered body only. (Layout `base.html`) |
70
+ |         `example_components.html` | An example layout with components that shows how to call them and what they look like. (Layout `page_no_title.html`) |
71
+ |         `home.html` | Simply a wrapper for `page_no_title.html` layout as Jekyll's default pages use the `layout: home`. (Layout `page_no_title.html`) |
72
+
73
+ ### Includes
74
+
75
+ The following includes are available in the `_includes/` directory (indentation denotes child of previous row):
76
+
77
+ | `_includes/` Filename | Description |
78
+ | --------------------- | ----------- |
79
+ | `categories.html` | Displays linked categories and the post count for each. |
80
+ | `footer.html` | Displays the logo, copyright, and bottom navigation. |
81
+ |     `footer_custom.html` | Empty file used for adding custom content to the end of the footer. |
82
+ | `head.html` | Includes the meta information in the head of the base page. |
83
+ |     `google_analytics.html` | Includes the Google Analytics (GA) code, which is visible _if_ the GA tracking ID is provided in `_config.yml` _and_ if the page being rendered does not have the following front matter value: `ga_do_not_track: true` |
84
+ |     `head_custom.html` | Empty file used for adding custom content to the end of the head. |
85
+ | `header.html` | Displays the header image and top navigation. |
86
+ |     `header_custom.html` | Empty file used for adding custom content to the end of the header. |
87
+ | `post_categories.html` | Displays a list of linked post titles by category. |
88
+ | `post_tags.html` | Displays a list of linked post titles by tag. |
89
+ | `tags.html` | Displays linked tags and the post count for each. |
90
+ | `posts_latest.html` | Displays excerpts of the last _N_ posts as specified in the include parameter `posts_count`. See below for usage. |
91
+
92
+ #### `_includes/posts_latest.html` Usage
93
+
94
+ You can show excerpts of the _N_ latest posts, sorted by most recent first, by using the `posts_latest.html` include as shown below. Change the value assigned to `posts_count` to alter the number of most recent posts displayed. Omitting a value for `posts_count` will result in _all_ posts being displayed.
95
+
96
+ For example, to add the two most recent posts to your home page's markdown, add this below:
97
+
98
+ ```markdown
99
+ ## Recent Posts
100
+
101
+ {% include posts_latest.html posts_count=2 %}
102
+ ```
103
+
104
+ ### Components
105
+
106
+ Components are pre-built mini-templates to which you can pass values for rendering more advanced page elements. The `_layouts/example_components.html` layout shows how to call them. To see these examples, you can specify the `example_components` layout a page's front matter like this: `layout: example_components`
107
+
108
+ The following components are based on the [Twitter Bootstrap examples](https://getbootstrap.com/docs/5.3/examples/) and are available in the `_includes/_components/` directory:
109
+
110
+ | `_includes/_components/` Filename | Description |
111
+ | ----------------------- | ----------- |
112
+ | `carousel.html` | Provides three rotating slides with title, body, and linkable button for each. |
113
+ | `columns_icons.html` | Displays up to three icons, titles, bodies, and clickable links in three-column layout. |
114
+ | `columns_icons_grid.html` | Displays up to eight hanging icons, titles, and bodies in two-row, four-column layout. |
115
+ | `columns_icons_hanging.html` | Displays up to three small hanging icons, titles, bodies, and linkable buttons in three-column layout. |
116
+ | `columns_image_cards.html` | Displays up to three cards with full image backgrounds including a title and clickable button in three-column layout. |
117
+ | `featurette_left.html` | Displays a full-width title, tagline, and body on the left with an image on the right. |
118
+ | `featurette_right.html` | Displays a full-width title, tagline, and body on the right with an image on the left. |
119
+ | `hero_centered.html` | Displays a full-width centered title, body, and two optional linked buttons. |
120
+ | `hero_centered_dark.html` | Displays a full-width centered title, body, and two optional linked buttons on a dark background. |
121
+ | `hero_image_right.html` | Displays a full-width title, body, and two optional linked buttons on the left with an image on the right. |
122
+ | `jumbotron_full.html` | Displays a full-width jumbotron card with title, body, and two optional linked buttons. |
123
+ | `jumbotron_split.html` | Displays two half-width jumbotron cards each with title, body, and a linked button. |
124
+
125
+ ### Assets
126
+
127
+ The `assets/` directory contains the following content for use in the examples and defaults provided (indentation denotes child of previous row):
128
+
129
+ | `assets/` Filename | Description |
130
+ | ------------------ | ----------- |
131
+ | `css/` | CSS files for overriding and/or extending Twitter Bootstrap's default CSS which is loaded via CDN (see `_includes/head.html`). |
132
+ | `images/` | Static images (JPG, GIF, PNG, etc.) used on the site including those for examples and defaults. |
133
+ |     `favicons/` | Files used for favicons on the site including those for examples and defaults. |
134
+ | `svg/` | Scalable Vector Graphics (SVGs) used on the site including those for examples and defaults. |
135
+
136
+ ### Blog and Posts
137
+
138
+ This theme includes layouts and includes for:
139
+
140
+ | Type | Description | Paginated | Source |
141
+ | ---- | ----------- | --------- | ------ |
142
+ | All posts listing | All blog posts listed in descending chronological order. | Yes | `blog/index.html |
143
+ | Individual post listing | A single blog post. | No | `_layouts/post.html` |
144
+ | Posts listed by category | All blog posts, grouped by Category, listed in descending chronological order. | No | `categories/index.html`|
145
+ | Posts listed by tag | All blog posts, grouped by Tag, listed in descending chronological order. | No | `tags/index.html`|
146
+
147
+ All of those layouts ultimately use the `_layouts/page_sidebar.html` with Categories and Tags in the sidebar. To render components in the sidebar, add the name of the `_include/` template to your page's front matter like this:
148
+
149
+ ```yaml
150
+ sidebar:
151
+ - categories
152
+ - tags
153
+ ```
154
+
155
+ To leverage this theme's blogging functionality, you'll need to create the following files in your site's structure:
156
+
157
+ | File | Contents | Purpose |
158
+ | ---- | -------- | ------- |
159
+ | `blog/index.html` | See [`blog/index.html`](https://github.com/KCarlile/jekyll-twitter-bootstrap/blob/main/blog/index.html) | Renders the main blog listing. |
160
+ | `categories/index.html` | See [`categories/index.html`](https://github.com/KCarlile/jekyll-twitter-bootstrap/blob/main/categories/index.html) | Renders the main blog listing by category. |
161
+ | `tags/index.html` | See [`tags/index.html`](https://github.com/KCarlile/jekyll-twitter-bootstrap/blob/main/tags/index.html) | Renders the main blog listing by tag. |
162
+
163
+ ### Configuration
164
+
165
+ The theme's [`_config.yml`](https://github.com/KCarlile/jekyll-twitter-bootstrap/blob/main/_config.yml) file is well documented and contains typical Jekyll theme configuration values as well as some specific to the Jekyll Twitter Bootstrap theme. The [`_config.yml`](https://github.com/KCarlile/jekyll-twitter-bootstrap/blob/main/_config.yml) file includes inline comments to explain intent, default values, and usage. Please view the [`_config.yml`](https://github.com/KCarlile/jekyll-twitter-bootstrap/blob/main/_config.yml) file for more information regarding site and theme configuration.
166
+
167
+ ## Contributing
168
+
169
+ Bug reports and pull requests are welcome on GitHub at <https://github.com/KCarlile/jekyll-twitter-bootstrap>. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](https://www.contributor-covenant.org/) code of conduct.
170
+
171
+ ## Development
172
+
173
+ To set up your environment to develop this theme, run `bundle install`.
174
+
175
+ Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
176
+
177
+ When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
178
+ To add a custom directory to your theme-gem, please edit the regexp in `jekyll-twitter-bootstrap.gemspec` accordingly.
179
+
180
+ ## FAQ
181
+
182
+ - __Q:__ Why use Bootstrap with Jekyll?
183
+ - __A:__ Bootstrap provides a lot of easy utilities for formatting without having to write a lot of your own custom CSS. It's ease of use makes it a great starting point for basic sites. Combining the power of Bootstrap and Jekyll means you can get your site up and running faster while still being able to customize it as needed.
184
+
185
+ - __Q:__ This isn't the only Bootstrap-based theme for Jekyll. What about those other ones?
186
+ - __A:__ At the time of creation, the other Bootstrap-based Jekyll themes didn't have the level of maturity needed or they were based on older versions of Bootstrap.
187
+
188
+ - __Q:__ If I want my posts to be referred to as _Articles_ (or something else) instead of _Blog_, how can I make that change?
189
+ - __A:__ There are a few steps necessary to change your post listing name from _Blog_ to something else.
190
+ - Rename `blog/index.html` to `articles/index.html`
191
+ - In `articles/index.html`, change the name of the page from "Blog" to "Articles":
192
+ ```yaml
193
+ ---
194
+ # title: Blog
195
+ title: Articles
196
+ layout: blog
197
+ sidebar:
198
+ - categories
199
+ - tags
200
+ ---
201
+ ...
202
+ ```
203
+ The layout can remain named `blog` unless you really want to override and rename the layout.
204
+ - In your `_config.yml` file, change these lines from `blog` to `article`:
205
+ ```yaml
206
+ ...
207
+ # Add pages here to explicitly appear in this order in your navigation.
208
+ header_pages:
209
+ # - blog/index.html
210
+ - articles/index.html
211
+ ...
212
+ # paginate_path: "/blog/:num"
213
+ paginate_path: "/articles/:num"
214
+ # Define the post permalink format.
215
+ #permalink: /blog/:year/:month/:day/:title:output_ext
216
+ permalink: /articles/:year/:month/:day/:title:output_ext
217
+ ...
218
+ ```
219
+
220
+ ## License
221
+
222
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/README_OWNER.md ADDED
@@ -0,0 +1,33 @@
1
+ # jekyll-twitter-bootstrap - Owner Notes
2
+
3
+ ## Publishing to RubyGems.org
4
+
5
+ Gem page: <https://rubygems.org/gems/jekyll-twitter-bootstrap>
6
+
7
+ ```bash
8
+ # Sign in to RubyGems.org
9
+ $ gem signin
10
+
11
+ # Remove a published version of the gem
12
+ $ gem yank -v 5.3.0.dev jekyll-twitter-bootstrap
13
+
14
+ # Build a new version of the gem
15
+ # In jekyll-twitter-bootstrap.gemspec, specify a new version
16
+ # spec.version = "5.3.0.dev1"
17
+ # ...then build
18
+ $ gem build
19
+ WARNING: open-ended dependency on bundler (>= 0, development) is not recommended
20
+ use a bounded requirement, such as '~> x.y'
21
+ WARNING: See https://guides.rubygems.org/specification-reference/ for help
22
+ Successfully built RubyGem
23
+ Name: jekyll-twitter-bootstrap
24
+ Version: 5.3.0.dev1
25
+ File: jekyll-twitter-bootstrap-5.3.0.dev1.gem
26
+
27
+ # Push the gem to RubyGems.org
28
+ $ gem push jekyll-twitter-bootstrap-5.3.0.dev1.gem
29
+ Pushing gem to https://rubygems.org...
30
+ Successfully registered gem: jekyll-twitter-bootstrap (5.3.0.dev1)
31
+ ```
32
+
33
+ RubyGems.org command reference: <https://guides.rubygems.org/command-reference/>
data/_config.yml ADDED
@@ -0,0 +1,85 @@
1
+ # ------------------------------------------------------------
2
+ # Standard Theme Configuration
3
+ # ------------------------------------------------------------
4
+ title: Jekyll Twitter Bootstrap (Site Title)
5
+ author:
6
+ name: Your Name
7
+ email: your-email@domain.com
8
+ url: https://www.yoursite.com
9
+
10
+ # The `>` after `description:` means to ignore line-breaks until next key.
11
+ # If you want to omit the line-break after the end of text, use `>-` instead.
12
+ description: >
13
+ Jekyll Twitter Bootstrap is a Jekyll theme based on Twitter Bootstrap for
14
+ easy customization by leveraging the Bootstrap framework for styling and
15
+ layout.
16
+
17
+ # Build settings
18
+ theme: jekyll-twitter-bootstrap
19
+ # Used to show excerpt/first paragraph for blog posts in listing.
20
+ show_excerpts: true
21
+ # Used in posts for explicitly delimiting excerpt.
22
+ excerpt_separator: <!--more-->
23
+ # Configure jekyll-paginate
24
+ paginate: 10
25
+ paginate_path: "/blog/:num"
26
+ # Define the post permalink format.
27
+ permalink: /blog/:year/:month/:day/:title:output_ext
28
+ # Default front matter for content types.
29
+ defaults:
30
+ # Posts should default to layout=post and sidebar=categories,tags.
31
+ -
32
+ scope:
33
+ path: ""
34
+ type: "posts"
35
+ values:
36
+ layout: "post"
37
+ sidebar:
38
+ - categories
39
+ - tags
40
+
41
+ # Add pages here to explicitly appear in this order in your navigation.
42
+ header_pages:
43
+ - index.md
44
+
45
+ # Specify directories or files to exclude from the build.
46
+ exclude:
47
+ - jekyll-twitter-bootstrap.gemspec
48
+ - LICENSE.txt
49
+ - README.md
50
+ - server
51
+
52
+ plugins:
53
+ - jekyll-paginate
54
+ - jekyll-feed
55
+
56
+ # jekyll-feed plugin configuration
57
+ # Default if not overridden: /feed.xml
58
+ feed:
59
+ path:
60
+
61
+ # ------------------------------------------------------------
62
+ # Jekyll Twitter Bootstrap Theme-Specific Configuration
63
+ # ------------------------------------------------------------
64
+ jekyll-twitter-bootstrap:
65
+ # Starting year for copyright in footer.
66
+ # If empty, the current year only is used (e.g. 2023).
67
+ # If populated, the year specified is prepended to the current year with a
68
+ # hyphen to indicate a range (e.g. 2022-2023).
69
+ copyright_year_start: 2022
70
+ # Date format used by the site. See https://strftime.net/ for syntax.
71
+ # The default (empty value) is: '%B %e, %Y at %l:%M%p'
72
+ date_format:
73
+ # HTML to override the defaults for header and footer logos.
74
+ # This should be the full <img .../> or <svg...></svg> code
75
+ # for the image referenced within the site.
76
+ # Defaults if not overridden:
77
+ # header: <svg class="bi me-2" width="40" height="32"><use xlink:href="/assets/svg/bootstrap.svg#bootstrap"/></svg>
78
+ # footer: <svg class="bi" width="30" height="24"><use xlink:href="/assets/svg/bootstrap-icons.svg#bootstrap"/></svg>
79
+ logo:
80
+ header:
81
+ footer:
82
+ # To enable Google Analytics (GA) tracking, provide your GA tracking ID below.
83
+ # To disable GA tracking for a particular page, add the following to the
84
+ # page's front matter: ga_do_not_track: true
85
+ google_analytics_tracking_id:
@@ -0,0 +1,78 @@
1
+ {%- if !include.carousel_id and include.carousel_id != '' -%}
2
+ {% assign carousel_id = include.carousel_id %}
3
+ {% else %}
4
+ {% assign carousel_id = "carousel-component" %}
5
+ {%- endif -%}
6
+
7
+ {%- if include.slide1_alignment == "Left" -%}
8
+ {% assign slide1_align_class = "text-start" %}
9
+ {%- elsif include.slide1_alignment == "Right" -%}
10
+ {% assign slide1_align_class = "text-end" %}
11
+ {%- endif -%}
12
+
13
+ {%- if include.slide2_alignment == "Left" -%}
14
+ {% assign slide2_align_class = "text-start" %}
15
+ {%- elsif include.slide2_alignment == "Right" -%}
16
+ {% assign slide2_align_class = "text-end" %}
17
+ {%- endif -%}
18
+
19
+ {%- if include.slide3_alignment == "Left" -%}
20
+ {% assign slide3_align_class = "text-start" %}
21
+ {%- elsif include.slide3_alignment == "Right" -%}
22
+ {% assign slide3_align_class = "text-end" %}
23
+ {%- endif -%}
24
+ <!-- BEGIN Carousel -->
25
+ <div id="{{ carousel_id }}" class="carousel slide my-5" data-bs-ride="carousel">
26
+ <div class="carousel-indicators">
27
+ <button type="button" data-bs-target="#{{ carousel_id }}" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
28
+ <button type="button" data-bs-target="#{{ carousel_id }}" data-bs-slide-to="1" aria-label="Slide 2"></button>
29
+ <button type="button" data-bs-target="#{{ carousel_id }}" data-bs-slide-to="2" aria-label="Slide 3"></button>
30
+ </div>
31
+ <div class="carousel-inner">
32
+ <div class="carousel-item active">
33
+ {%- if include.slide1_image_path -%}
34
+ <img class="bd-placeholder-img" width="100%" height="100%" src="{{ slide1_image_path }}" />
35
+ {%- endif -%}
36
+ <div class="container">
37
+ <div class="carousel-caption {{ slide1_align_class }}">
38
+ <h1>{{ include.slide1_title }}</h1>
39
+ <div class="mb-3 fs-4">{{ include.slide1_tagline }}</div>
40
+ <p><a class="btn btn-lg btn-primary" href="{{ slide1_link_url }}">{{ slide1_link_text }}</a></p>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class="carousel-item">
45
+ {%- if include.slide2_image_path -%}
46
+ <img class="bd-placeholder-img" width="100%" height="100%" src="{{ slide2_image_path }}" />
47
+ {%- endif -%}
48
+ <div class="container">
49
+ <div class="carousel-caption {{ slide2_align_class }}">
50
+ <h1>{{ include.slide2_title }}</h1>
51
+ <div class="mb-3 fs-4">{{ include.slide2_tagline }}</div>
52
+ <p><a class="btn btn-lg btn-primary" href="{{ slide2_link_url }}">{{ slide2_link_text }}</a></p>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ <div class="carousel-item">
57
+ {%- if include.slide3_image_path -%}
58
+ <img class="bd-placeholder-img" width="100%" height="100%" src="{{ slide3_image_path }}" />
59
+ {%- endif -%}
60
+ <div class="container">
61
+ <div class="carousel-caption {{ slide3_align_class }}">
62
+ <h1>{{ include.slide3_title }}</h1>
63
+ <div class="mb-3 fs-4">{{ include.slide3_tagline }}</div>
64
+ <p><a class="btn btn-lg btn-primary" href="{{ slide3_link_url }}">{{ slide3_link_text }}</a></p>
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <button class="carousel-control-prev" type="button" data-bs-target="#{{ carousel_id }}" data-bs-slide="prev">
70
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
71
+ <span class="visually-hidden">Previous</span>
72
+ </button>
73
+ <button class="carousel-control-next" type="button" data-bs-target="#{{ carousel_id }}" data-bs-slide="next">
74
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
75
+ <span class="visually-hidden">Next</span>
76
+ </button>
77
+ </div>
78
+ <!-- END Carousel -->
@@ -0,0 +1,60 @@
1
+ <!-- BEGIN Columns Icons -->
2
+ <div class="container px-4 py-5 component-columns-icons">
3
+ {%- if include.title -%}
4
+ <h2 class="pb-2 border-bottom">{{ include.title }}</h2>
5
+ {%- endif -%}
6
+ <div class="row g-4 py-5 row-cols-1 row-cols-lg-3">
7
+ {%- if !include.col1_title -%}
8
+ <div class="feature col">
9
+ {%- if !include.col1_icon_path -%}
10
+ <div class="feature-icon d-inline-flex align-items-center justify-content-center text-bg-primary bg-gradient fs-2 mb-3">
11
+ <svg class="bi" width="1em" height="1em"><use xlink:href="{{ include.col1_icon_path }}"/></svg>
12
+ </div>
13
+ {%- endif -%}
14
+ <h3 class="fs-2">{{ include.col1_title }}</h3>
15
+ <div class="mb-3">{{ include.col1_body }}</div>
16
+ {%- if !include.col1_link_text -%}
17
+ <a href="{{ include.col1_link_url }}" class="icon-link d-inline-flex align-items-center">
18
+ {{ include.col1_link_text }}
19
+ <svg class="bi" width="1em" height="1em"><use xlink:href="/assets/svg/bootstrap-icons.svg#chevron-right"/></svg>
20
+ </a>
21
+ {%- endif -%}
22
+ </div>
23
+ {%- endif -%}
24
+ {%- if !include.col2_title -%}
25
+ <div class="feature col">
26
+ {%- if !include.col2_icon_path -%}
27
+ <div class="feature-icon d-inline-flex align-items-center justify-content-center text-bg-primary bg-gradient fs-2 mb-3">
28
+ <svg class="bi" width="1em" height="1em"><use xlink:href="{{ include.col2_icon_path }}"/></svg>
29
+ </div>
30
+ {%- endif -%}
31
+ <h3 class="fs-2">{{ include.col2_title }}</h3>
32
+ <div class="mb-3">{{ include.col2_body }}</div>
33
+ {%- if !include.col2_link_text -%}
34
+ <a href="{{ include.col2_link_url }}" class="icon-link d-inline-flex align-items-center">
35
+ {{ include.col2_link_text }}
36
+ <svg class="bi" width="1em" height="1em"><use xlink:href="/assets/svg/bootstrap-icons.svg#chevron-right"/></svg>
37
+ </a>
38
+ {%- endif -%}
39
+ </div>
40
+ {%- endif -%}
41
+ {%- if !include.col3_title -%}
42
+ <div class="feature col">
43
+ {%- if !include.col3_icon_path -%}
44
+ <div class="feature-icon d-inline-flex align-items-center justify-content-center text-bg-primary bg-gradient fs-2 mb-3">
45
+ <svg class="bi" width="1em" height="1em"><use xlink:href="{{ include.col3_icon_path }}"/></svg>
46
+ </div>
47
+ {%- endif -%}
48
+ <h3 class="fs-2">{{ include.col3_title }}</h3>
49
+ <div class="mb-3">{{ include.col3_body }}</div>
50
+ {%- if !include.col3_link_text -%}
51
+ <a href="{{ include.col3_link_url }}" class="icon-link d-inline-flex align-items-center">
52
+ {{ include.col3_link_text }}
53
+ <svg class="bi" width="1em" height="1em"><use xlink:href="/assets/svg/bootstrap-icons.svg#chevron-right"/></svg>
54
+ </a>
55
+ {%- endif -%}
56
+ </div>
57
+ {%- endif -%}
58
+ </div>
59
+ </div>
60
+ <!-- END Columns Icons -->
@@ -0,0 +1,97 @@
1
+ <!-- BEGIN Columns Icons Grid -->
2
+ <div class="container px-4 py-5 columns-icon-grid">
3
+ {%- if include.title -%}
4
+ <h2 class="pb-2 border-bottom">Icon grid</h2>
5
+ {%- endif -%}
6
+ <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 g-4 pt-5">
7
+ {%- if include.item1_title -%}
8
+ <div class="col d-flex align-items-start">
9
+ {%- if item1_icon_path -%}
10
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item1_icon_path }}"/></svg>
11
+ {%- endif -%}
12
+ <div>
13
+ <h3 class="fw-bold mb-0 fs-4">{{ item1_title }}</h3>
14
+ <div class="mb-3">{{ item1_body }}</div>
15
+ </div>
16
+ </div>
17
+ {%- endif -%}
18
+ {%- if include.item2_title -%}
19
+ <div class="col d-flex align-items-start">
20
+ {%- if item2_icon_path -%}
21
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item2_icon_path }}"/></svg>
22
+ {%- endif -%}
23
+ <div>
24
+ <h3 class="fw-bold mb-0 fs-4">{{ item2_title }}</h3>
25
+ <p>{{ item2_body }}</p>
26
+ </div>
27
+ </div>
28
+ {%- endif -%}
29
+ {%- if include.item3_title -%}
30
+ <div class="col d-flex align-items-start">
31
+ {%- if item3_icon_path -%}
32
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item3_icon_path }}"/></svg>
33
+ {%- endif -%}
34
+ <div>
35
+ <h3 class="fw-bold mb-0 fs-4">{{ item3_title }}</h3>
36
+ <p>{{ item3_body }}</p>
37
+ </div>
38
+ </div>
39
+ {%- endif -%}
40
+ {%- if include.item4_title -%}
41
+ <div class="col d-flex align-items-start">
42
+ {%- if item4_icon_path -%}
43
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item4_icon_path }}"/></svg>
44
+ {%- endif -%}
45
+ <div>
46
+ <h3 class="fw-bold mb-0 fs-4">{{ item4_title }}</h3>
47
+ <p>{{ item4_body }}</p>
48
+ </div>
49
+ </div>
50
+ {%- endif -%}
51
+ {%- if include.item5_title -%}
52
+ <div class="col d-flex align-items-start">
53
+ {%- if item5_icon_path -%}
54
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item5_icon_path }}"/></svg>
55
+ {%- endif -%}
56
+ <div>
57
+ <h3 class="fw-bold mb-0 fs-4">{{ item5_title }}</h3>
58
+ <p>{{ item5_body }}</p>
59
+ </div>
60
+ </div>
61
+ {%- endif -%}
62
+ {%- if include.item6_title -%}
63
+ <div class="col d-flex align-items-start">
64
+ {%- if item6_icon_path -%}
65
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item6_icon_path }}"/></svg>
66
+ {%- endif -%}
67
+ <div>
68
+ <h3 class="fw-bold mb-0 fs-4">{{ item6_title }}</h3>
69
+ <p>{{ item6_body }}</p>
70
+ </div>
71
+ </div>
72
+ {%- endif -%}
73
+ {%- if include.item7_title -%}
74
+ <div class="col d-flex align-items-start">
75
+ {%- if item7_icon_path -%}
76
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item7_icon_path }}"/></svg>
77
+ {%- endif -%}
78
+ <div>
79
+ <h3 class="fw-bold mb-0 fs-4">{{ item7_title }}</h3>
80
+ <p>{{ item7_body }}</p>
81
+ </div>
82
+ </div>
83
+ {%- endif -%}
84
+ {%- if include.item8_title -%}
85
+ <div class="col d-flex align-items-start">
86
+ {%- if item8_icon_path -%}
87
+ <svg class="bi text-muted flex-shrink-0 me-3" width="1.75em" height="1.75em"><use xlink:href="{{ item8_icon_path }}"/></svg>
88
+ {%- endif -%}
89
+ <div>
90
+ <h3 class="fw-bold mb-0 fs-4">{{ item8_title }}</h3>
91
+ <p>{{ item8_body }}</p>
92
+ </div>
93
+ </div>
94
+ {%- endif -%}
95
+ </div>
96
+ </div>
97
+ <!-- END Columns Icons Grid -->