jekyll-theme-nocc 2.0.0
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.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +92 -0
- data/_config.yml +102 -0
- data/_includes/carousel.html +39 -0
- data/_includes/code_block.html +3 -0
- data/_includes/disqus_comments.html +16 -0
- data/_includes/features.html +18 -0
- data/_includes/footer.html +55 -0
- data/_includes/google_analytics.html +8 -0
- data/_includes/head.html +33 -0
- data/_includes/image.html +20 -0
- data/_includes/navbar.html +48 -0
- data/_includes/read_time.html +3 -0
- data/_includes/scripts.html +88 -0
- data/_layouts/carousel.html +39 -0
- data/_layouts/default.html +17 -0
- data/_layouts/home.html +92 -0
- data/_layouts/images_gallery.html +63 -0
- data/_layouts/page.html +35 -0
- data/_layouts/post.html +62 -0
- data/_layouts/posts_index.html +33 -0
- data/_layouts/tag.html +35 -0
- data/_layouts/tags_index.html +79 -0
- data/_sass/_custom.scss +144 -0
- data/assets/css/styles.scss +3 -0
- data/assets/images/404.webp +0 -0
- data/assets/images/503.webp +0 -0
- data/assets/images/bg-about.webp +0 -0
- data/assets/images/bg-contact.webp +0 -0
- data/assets/images/bg-gallery.webp +0 -0
- data/assets/images/bg-index-2.webp +0 -0
- data/assets/images/bg-index-3.webp +0 -0
- data/assets/images/bg-index.webp +0 -0
- data/assets/images/bg-post.webp +0 -0
- data/assets/images/favicon.ico +0 -0
- data/assets/images/favicon.png +0 -0
- data/assets/images/favicon.svg +36 -0
- data/assets/images/gallery/Futuristic-drama.webp +0 -0
- data/assets/images/gallery/Random-Engineers.webp +0 -0
- data/assets/images/gallery/Weird-trio-with-mousehand.webp +0 -0
- data/assets/images/icon-192.png +0 -0
- data/assets/images/icon-512.png +0 -0
- data/assets/images/jekyll-logo.svg +129 -0
- data/assets/images/nocc-showcase.webp +0 -0
- data/assets/images/nocc-theme-showroom.png +0 -0
- data/assets/images/nocc-webshot.webp +0 -0
- data/assets/images/nocc_icon.svg +91 -0
- data/assets/images/nocc_package_logo.png +0 -0
- data/assets/images/npm-logo.svg +10 -0
- data/assets/vendor/nocc-bootstrap-theme/AUTHORS.md +3 -0
- data/assets/vendor/nocc-bootstrap-theme/CODE_OF_CONDUCT.md +3 -0
- data/assets/vendor/nocc-bootstrap-theme/CONTRIBUTING.md +5 -0
- data/assets/vendor/nocc-bootstrap-theme/LICENSE +21 -0
- data/assets/vendor/nocc-bootstrap-theme/README.md +209 -0
- data/assets/vendor/nocc-bootstrap-theme/css/nocc-theme.css +10442 -0
- data/assets/vendor/nocc-bootstrap-theme/css/nocc-theme.min.css +5 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/lora-webfont/lora-v35-latin-600.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/lora-webfont/lora-v35-latin-600italic.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/lora-webfont/lora-v35-latin-italic.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/lora-webfont/lora-v35-latin-regular.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/oxygen-webfont/oxygen-mono-v14-latin-regular.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-300.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-300italic.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-700.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-700italic.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-900.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-900italic.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-italic.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/fonts/roboto-webfont/roboto-v30-latin-regular.woff2 +0 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/bootstrap.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/clipboard.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/currency-bitcoin.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/download.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/envelope-at-fill.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/filetype-svg.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/gift-fill.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/github.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/google.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/link-45deg.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/linkedin.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/magic.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/moon.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/speedometer.svg +4 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/sun.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/twitter-x.svg +3 -0
- data/assets/vendor/nocc-bootstrap-theme/images/bg-about.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/bg-gallery.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/bg-index-2.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/bg-index-3.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/bg-index.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/bg-post.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/android-chrome-192x192.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/android-chrome-512x512.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/apple-touch-icon.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon-16x16.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon-32x32.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.ico +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.svg +54 -0
- data/assets/vendor/nocc-bootstrap-theme/images/favicon_io/site.webmanifest +1 -0
- data/assets/vendor/nocc-bootstrap-theme/images/gallery/Futuristic-drama.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/gallery/Random-Engineers.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/gallery/Weird-trio-with-mousehand.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/kofi_s_logo_nolabel.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc-showcase.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc-theme-showroom.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc-theme-webshot.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc-theme-webshot.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc-webshot.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc_home_image.webp +0 -0
- data/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc_logo.png +0 -0
- data/assets/vendor/nocc-bootstrap-theme/js/bootstrap/5.3.3/bootstrap.bundle.min.js +7 -0
- data/assets/vendor/nocc-bootstrap-theme/js/bootstrap/5.3.3/bootstrap.bundle.min.js.map +1 -0
- data/assets/vendor/nocc-bootstrap-theme/js/clipboardjs/clipboard.min.js +7 -0
- data/assets/vendor/nocc-bootstrap-theme/js/copy-clipboard.js +18 -0
- data/assets/vendor/nocc-bootstrap-theme/js/jq-bootstrap-validation.js +475 -0
- data/assets/vendor/nocc-bootstrap-theme/js/jq-bootstrap-validation.min.js +1 -0
- data/assets/vendor/nocc-bootstrap-theme/js/jquery/3.7.1/jquery.min.js +2 -0
- data/assets/vendor/nocc-bootstrap-theme/js/jquery/3.7.1/jquery.min.map +1 -0
- data/assets/vendor/nocc-bootstrap-theme/js/jquery/jqcloud/2.0.3/jqcloud.min.js +8 -0
- data/assets/vendor/nocc-bootstrap-theme/js/ko-fi/widget_2.min.js +1 -0
- data/assets/vendor/nocc-bootstrap-theme/js/theme-toggler.js +68 -0
- data/assets/vendor/nocc-bootstrap-theme/js/theme-toggler.min.js +1 -0
- data/assets/vendor/nocc-bootstrap-theme/manifest.json +1 -0
- data/assets/vendor/nocc-bootstrap-theme/package.json +78 -0
- metadata +284 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f68377affd630caa0340fd472f07e1ccd3f1c5c4d4bbf8e0fd1ebe27830775b8
|
4
|
+
data.tar.gz: 82548b646b5ee01ec9daf055fb7002e10c7f984bd7b738040a85a535597c971b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 10fe510840c716834157dc4f6e129c15addccd67cc3d3cc66f56fc07d81f9085ee6bcd79509e664c47b9b4abf8a8ed4e15532bdb37e1ff11027c4ff1abd28440
|
7
|
+
data.tar.gz: d7ae379b4925859bbe516dc3fcb49f819145f2a1e65be9253b4b5b958e083322438285e4f8954051aafcf841f678c3f54e8059d53b97ef5435896e51904d4bfa
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2025 Carles Loriente
|
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,92 @@
|
|
1
|
+
# jekyll-theme-nocc
|
2
|
+
|
3
|
+
## Introduction
|
4
|
+
|
5
|
+
**Are you tired of outdated Bootstrap themes?**
|
6
|
+
|
7
|
+
**Say hello to NOCC 🎉**: A Modern Bootstrap 5 Theme!
|
8
|
+
|
9
|
+
It comes in three powerful options:
|
10
|
+
|
11
|
+
- **💎 Theme Jekyll Nocc**: A Ruby gem that brings the power of NOCC directly to your Jekyll project. [Get it now!](https://rubygems.org/gems/jekyll-theme-nocc).
|
12
|
+
- **🌟 Nocc Bootstrap Theme**: An NPM Package that brings the power of NOCC directly to your NodeJS project. [Get it now!](https://www.npmjs.com/package/nocc-bootstrap-theme).
|
13
|
+
- **🌐 Full Site Bundle for Jekyll**: A complete static website showcasing NOCC's seamless integration. Featuring a beautifully designed homepage, dynamic tag cloud, image gallery, and more. [Explore on GitHub](https://github.com/carlesloriente/bootstrap-theme-jekyll).
|
14
|
+
|
15
|
+
> **ⓘ** NOCC is a complete replacement for Bootstrap 5.3.3
|
16
|
+
|
17
|
+
## Table of contents
|
18
|
+
|
19
|
+
- [jekyll-theme-nocc](#jekyll-theme-nocc)
|
20
|
+
- [Introduction](#introduction)
|
21
|
+
- [Table of contents](#table-of-contents)
|
22
|
+
- [Features](#features)
|
23
|
+
- [Installation](#installation)
|
24
|
+
- [Usage](#usage)
|
25
|
+
- [Contributing](#contributing)
|
26
|
+
- [Development](#development)
|
27
|
+
- [Creator](#creator)
|
28
|
+
- [Thanks](#thanks)
|
29
|
+
- [Copyright and License](#copyright-and-license)
|
30
|
+
|
31
|
+
## Features
|
32
|
+
|
33
|
+
1. **Use of the latest Bootstrap 5 library**
|
34
|
+
2. **Fully Responsive and Dual Color (light and dark)**
|
35
|
+
3. **CSS and JS files are minimized by default**
|
36
|
+
4. **Self-hosted Google web fonts**
|
37
|
+
5. **Demo site built-in**
|
38
|
+
|
39
|
+
## Installation
|
40
|
+
|
41
|
+
Add this line to your Jekyll site's `Gemfile`:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
gem "jekyll-theme-nocc"
|
45
|
+
```
|
46
|
+
|
47
|
+
And add this line to your Jekyll site's `_config.yml`:
|
48
|
+
|
49
|
+
```yaml
|
50
|
+
theme: jekyll-theme-nocc
|
51
|
+
```
|
52
|
+
|
53
|
+
And then execute:
|
54
|
+
|
55
|
+
$ bundle
|
56
|
+
|
57
|
+
Or install it yourself as:
|
58
|
+
|
59
|
+
$ gem install jekyll-theme-nocc
|
60
|
+
|
61
|
+
## Usage
|
62
|
+
|
63
|
+
TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
|
64
|
+
|
65
|
+
## Contributing
|
66
|
+
|
67
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/carlesloriente/jekyll-theme-nocc. 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.
|
68
|
+
|
69
|
+
## Development
|
70
|
+
|
71
|
+
To set up your environment to develop this theme, run `bundle install`.
|
72
|
+
|
73
|
+
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.
|
74
|
+
|
75
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
|
76
|
+
To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-nocc.gemspec` accordingly.
|
77
|
+
|
78
|
+
## Creator
|
79
|
+
|
80
|
+
**[Carles Loriente](https://www.linkedin.com/in/carles-loriente/)** is the creator and maintainer of the NOCC Bootstrap theme.
|
81
|
+
|
82
|
+
- [Linkedin](https://www.linkedin.com/in/carles-loriente)
|
83
|
+
- [Twitter](https://twitter.com/godarthvader)
|
84
|
+
- [GitHub](https://github.com/carlesloriente)
|
85
|
+
|
86
|
+
## Thanks
|
87
|
+
|
88
|
+
[Bootstrap 5](https://getbootstrap.com/) framework created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thorton](https://twitter.com/fat).
|
89
|
+
|
90
|
+
## Copyright and License
|
91
|
+
|
92
|
+
Copyright (c) 2025 Carles Loriente. Code released under the[MIT License](https://opensource.org/licenses/MIT).
|
data/_config.yml
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
landing : false
|
2
|
+
title : NOCC
|
3
|
+
author : Your Name
|
4
|
+
url : "https://www.yoururl.com"
|
5
|
+
author_url : "https://www.yoururl.com"
|
6
|
+
baseurl : "/"
|
7
|
+
timezone : "Europe/Madrid"
|
8
|
+
description : A responsive dual theme using Bootstrap 5 for Jekyll created by Carles Loriente.
|
9
|
+
full_description : >
|
10
|
+
A responsive dual theme using Bootstrap 5 for Jekyll created by Carles Loriente. Featuring a homepage, about page, tags cloud page, gallery of images page, examples post pages, post comments powered by Disqus, and contact page form powered by Formspree.
|
11
|
+
gh_repository : https://github.com/yourusername/yourrepo/
|
12
|
+
encoding : "utf-8"
|
13
|
+
locale : "en-US"
|
14
|
+
lang : "en"
|
15
|
+
formemail :
|
16
|
+
permalink : pretty
|
17
|
+
|
18
|
+
# Manifest
|
19
|
+
name : "NOCC Boostrap Jekyll Theme"
|
20
|
+
short_name : "NOCC"
|
21
|
+
language : "en"
|
22
|
+
lang_direction : "ltr"
|
23
|
+
color : "#FFFFFF"
|
24
|
+
|
25
|
+
# Theme Notice (please don't remove it ;))
|
26
|
+
theme_version : v2.0.0
|
27
|
+
theme_name : NOCC Bootstrap Jekyll Theme
|
28
|
+
theme_repo : https://github.com/carlesloriente/jekyll-theme-nocc/
|
29
|
+
theme_url : https://bootstrap-theme.notesoncloudcomputing.com/
|
30
|
+
theme_author : Carles Loriente
|
31
|
+
theme_author_url : https://www.notesoncloudcomputing.com/about/
|
32
|
+
theme_download : https://github.com/carlesloriente/jekyll-theme-nocc/archive/refs/heads/main.zip
|
33
|
+
theme_package : https://rubygems.org/gems/jekyll-theme-nocc
|
34
|
+
theme_logo : "/assets/vendor/nocc-bootstrap-theme/images/nocc/nocc_logo.webp"
|
35
|
+
|
36
|
+
# Social Profiles
|
37
|
+
email : "you@email.com"
|
38
|
+
twitter_username :
|
39
|
+
github_username :
|
40
|
+
linkedin_username :
|
41
|
+
kofi :
|
42
|
+
|
43
|
+
# Add your google-analytics ID here to activate google analytics
|
44
|
+
google_site_verification:
|
45
|
+
google_analytics :
|
46
|
+
google_adsense_account :
|
47
|
+
google_tag_id :
|
48
|
+
|
49
|
+
# Disqus Comments
|
50
|
+
# Leave shortname blank to disable comments site-wide.
|
51
|
+
# Disable comments for any post by adding `comments: false` to that post's YAML Front Matter.
|
52
|
+
disqus_shortname :
|
53
|
+
|
54
|
+
includes_dir : _includes
|
55
|
+
layouts_dir : _layouts
|
56
|
+
plugins_dir : _plugins
|
57
|
+
tags_dir : tags
|
58
|
+
|
59
|
+
collections:
|
60
|
+
posts:
|
61
|
+
permalink : /posts/:name/
|
62
|
+
output : true
|
63
|
+
tags:
|
64
|
+
permalink : /tags/:name/
|
65
|
+
output : true
|
66
|
+
|
67
|
+
defaults:
|
68
|
+
- scope:
|
69
|
+
path : "posts"
|
70
|
+
type : posts
|
71
|
+
values:
|
72
|
+
layout : post
|
73
|
+
- scope:
|
74
|
+
path : 'assets/**'
|
75
|
+
values:
|
76
|
+
sitemap : false
|
77
|
+
|
78
|
+
# Markdown Processors
|
79
|
+
kramdown:
|
80
|
+
auto_ids : true
|
81
|
+
entity_output : as_char
|
82
|
+
toc_levels : [1, 2, 3, 4, 5, 6]
|
83
|
+
smart_quotes : lsquo,rsquo,ldquo,rdquo
|
84
|
+
input : GFM
|
85
|
+
hard_wrap : false
|
86
|
+
footnote_nr : 1
|
87
|
+
show_warnings : false
|
88
|
+
|
89
|
+
# Build settings
|
90
|
+
paginate : 20
|
91
|
+
paginate_path : "/notes/page:num/"
|
92
|
+
plugins:
|
93
|
+
- jekyll-feed
|
94
|
+
- jekyll-paginate
|
95
|
+
- jekyll-redirect-from
|
96
|
+
|
97
|
+
sass:
|
98
|
+
load_paths:
|
99
|
+
- ./_sass
|
100
|
+
style : compressed
|
101
|
+
|
102
|
+
exclude: ["AUTHORS.md", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "CODEOWNERS", "LICENSE", "README.md", "SECURITY.md", "WORKFLOW.md", "Gemfile", "Gemfile.lock", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"]
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<section class="homehead">
|
2
|
+
<div class="mx-auto">
|
3
|
+
<div id="carouselRide" class="carousel slide carousel-fade" data-bs-ride="true">
|
4
|
+
<div class="carousel-inner">
|
5
|
+
<div class="overlay"></div>
|
6
|
+
<div class="page-heading">
|
7
|
+
{%- if page.title %}
|
8
|
+
<h1>{{ page.title }}</h1>
|
9
|
+
{% else -%}
|
10
|
+
<h1>{{ site.title }}</h1>
|
11
|
+
{% endif -%}
|
12
|
+
{%- if site.description %}
|
13
|
+
<h2 class="subheading">{{ site.description }}</h2>
|
14
|
+
{% endif -%}
|
15
|
+
</div>
|
16
|
+
{%- for image in page.carousel %}
|
17
|
+
<div class="carousel-item" data-bs-interval="20000">
|
18
|
+
<img src="{{ image }}" class="d-block w-100" aria-hidden="true">
|
19
|
+
</div>
|
20
|
+
{% endfor -%}
|
21
|
+
</div>
|
22
|
+
<button class="carousel-control-prev" type="button" data-bs-target="#carouselRide" data-bs-slide="prev">
|
23
|
+
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
24
|
+
<span class="visually-hidden">Previous</span>
|
25
|
+
</button>
|
26
|
+
<button class="carousel-control-next" type="button" data-bs-target="#carouselRide" data-bs-slide="next">
|
27
|
+
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
28
|
+
<span class="visually-hidden">Next</span>
|
29
|
+
</button>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<script type="text/javascript">
|
33
|
+
document.addEventListener('DOMContentLoaded', (event) => {
|
34
|
+
var carouselInner = document.getElementsByClassName('carousel-item');
|
35
|
+
var carouselItem = carouselInner[0];
|
36
|
+
carouselItem.className += ' active';
|
37
|
+
});
|
38
|
+
</script>
|
39
|
+
</section>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<div class="language-{{ include.lang }} highlighter-rouge"><pre class="highlight"><button type="button" class="btn-clipboard float-end tooltip" type="button" aria-label="Copy to clipboard" data-bs-original-title="Copy to clipboard"><span class="tooltiptext">Copy to clipboard</span><span class="clipboard filter-white"></span></button>
|
2
|
+
<code>{{ include.content }}</code>
|
3
|
+
</pre></div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{% if page.comments != false and jekyll.environment == "production" %}
|
2
|
+
<div id="disqus_thread"></div>
|
3
|
+
<script type="text/javascript">
|
4
|
+
var disqus_config = function () {
|
5
|
+
this.page.url = '{{ page.url | absolute_url }}';
|
6
|
+
this.page.identifier = '{{ page.url | absolute_url }}';
|
7
|
+
};
|
8
|
+
(function() {
|
9
|
+
var d = document, s = d.createElement('script');
|
10
|
+
s.src = 'https://{{ site.disqus_shortname }}.disqus.com/embed.js';
|
11
|
+
s.setAttribute('data-timestamp', +new Date());
|
12
|
+
(d.head || d.body).appendChild(s);
|
13
|
+
})();
|
14
|
+
</script>
|
15
|
+
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
|
16
|
+
{% endif %}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
<div id="icon-grid" class="container px-4 py-5">
|
3
|
+
<h2 class="pb-2 border-bottom">Key Features</h2>
|
4
|
+
<div class="row g-4 py-5 row-cols-2 row-cols-lg-3">
|
5
|
+
{% for feature in features -%}
|
6
|
+
<div class="col d-flex align-items-start">
|
7
|
+
<div class="features-icon features-icon-gradient text-body-emphasis d-inline-flex align-items-center justify-content-center fs-4 flex-shrink-0 me-3">
|
8
|
+
<img role="img" class="filter-white" alt="Free software" aria-label="Free Software" src="{{ feature.background }}" width="45em" height="45em">
|
9
|
+
</div>
|
10
|
+
<div>
|
11
|
+
<h3 class="fs-2 text-body-emphasis">{{ feature.background }}</h3>
|
12
|
+
{{ feature.content }}
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
{% endfor -%}
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
<div class="home-divider"></div>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
|
2
|
+
<!-- Footer -->
|
3
|
+
<footer class="footer mt-auto">
|
4
|
+
<div class="container">
|
5
|
+
<ul class="list-inline text-center">
|
6
|
+
{%- if site.email %}
|
7
|
+
<li class="list-inline-item rounded-circle">
|
8
|
+
<a href="mailto:{{ site.email | encode_email }}" hreflang="{{ site.lang }}" aria-label="{{ site.email }} address">
|
9
|
+
<img class="filter-white" src="{{ '/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/envelope-at-fill.svg' | relative_url }}" width="32px" height="32px" aria-hidden="true">
|
10
|
+
</a>
|
11
|
+
</li>
|
12
|
+
{%- endif -%}
|
13
|
+
{% if site.twitter_username %}
|
14
|
+
<li class="list-inline-item rounded-circle">
|
15
|
+
<a href="https://twitter.com/{{ site.twitter_username }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="{{ site.twitter_username }} Twitter">
|
16
|
+
<img class="filter-white" src="{{ '/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/twitter-x.svg' | relative_url }}" width="32px" height="32px" aria-hidden="true">
|
17
|
+
</a>
|
18
|
+
</li>
|
19
|
+
{%- endif -%}
|
20
|
+
{% if site.facebook_username %}
|
21
|
+
<li class="list-inline-item rounded-circle">
|
22
|
+
<a href="https://www.facebook.com/{{ site.facebook_username }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="{{ site.facebook_username }} Facebook">
|
23
|
+
<img class="filter-white" src="{{ '/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/facebook.svg' | relative_url }}" width="32px" height="32px" aria-hidden="true">
|
24
|
+
</a>
|
25
|
+
</li>
|
26
|
+
{%- endif -%}
|
27
|
+
{% if site.linkedin_username %}
|
28
|
+
<li class="list-inline-item rounded-circle">
|
29
|
+
<a href="https://www.linkedin.com/in/{{ site.linkedin_username }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="{{ site.linkedin_username }} Linkedin">
|
30
|
+
<img class="filter-white" src="{{ '/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/linkedin.svg' | relative_url }}" width="32px" height="32px" aria-hidden="true">
|
31
|
+
</a>
|
32
|
+
</li>
|
33
|
+
{%- endif -%}
|
34
|
+
{% if site.github_username %}
|
35
|
+
<li class="list-inline-item rounded-circle">
|
36
|
+
<a href="https://github.com/{{ site.github_username }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="{{ site.github_username }} GitHub">
|
37
|
+
<img class="filter-white" src="{{ '/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/github.svg' | relative_url }}" width="32px" height="32px" aria-hidden="true">
|
38
|
+
</a>
|
39
|
+
</li>
|
40
|
+
{%- endif -%}
|
41
|
+
{% if site.instagram_username %}
|
42
|
+
<li class="list-inline-item rounded-circle">
|
43
|
+
<a href="https://instagram.com/{{ site.instagram_username }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="{{ site.instagram_username }} Instagram">
|
44
|
+
<img class="filter-white" src="{{ '/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/instagram.svg' | relative_url }}" width="32px" height="32px" aria-hidden="true">
|
45
|
+
</a>
|
46
|
+
</li>
|
47
|
+
{%- endif %}
|
48
|
+
</ul>
|
49
|
+
<p class="copyright text-copyright">Copyright © <a href="{{ site.author_url }}" hreflang="{{ site.lang }}" aria-label="{{ site.title }} author">{{ site.author }}</a> {{ 'now' | date: "%Y" }}<br />
|
50
|
+
<a href="{{ site.theme_repo }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="{{ site.theme_name }}">{{ site.theme_name }}</a> {{ site.theme_version }} created by <a href="{{ site.theme_author_url }}" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="Autor website {{ site.theme_author_url }}">{{ site.theme_author }}</a><br />
|
51
|
+
Build with <a href="https://jekyllrb.com" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="Jekyll">Jekyll</a><br />
|
52
|
+
Proudly hosted by <a href="https://github.com" hreflang="{{ site.lang }}" target="_blank" rel="noopener noreferrer" aria-label="Github"><strong>GitHub</strong></a>
|
53
|
+
</p>
|
54
|
+
</div>
|
55
|
+
</footer>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
2
|
+
<script type="text/javascript" async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}" ></script>
|
3
|
+
<script type="text/javascript">
|
4
|
+
window.dataLayer = window.dataLayer || [];
|
5
|
+
function gtag(){dataLayer.push(arguments);}
|
6
|
+
gtag('js', new Date());
|
7
|
+
gtag('config', '{{ site.google_analytics }}', {cookie_flags: 'SameSite=None;Secure'});
|
8
|
+
</script>
|
data/_includes/head.html
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
<meta charset="utf-8">
|
2
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
3
|
+
<title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
|
4
|
+
<meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% elsif page.description %}{{ page.description | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% else %}{{ site.description | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% endif %}">
|
5
|
+
<meta name="google-site-verification" content="{{ site.google_site_verification }}">
|
6
|
+
<meta name="author" content="{{ site.author }}">
|
7
|
+
{%- if site.twitter_username %}
|
8
|
+
<meta name="twitter:site" content="{{ site.twitter_username }}">
|
9
|
+
<meta name="twitter:creator" content="{{ site.twitter_username }}">
|
10
|
+
{% endif -%}
|
11
|
+
<meta name="twitter:card" content="summary_large_image">
|
12
|
+
<meta property="twitter:domain" content='{{ site.url | split: "//" | last | split: "/" | first }}'>
|
13
|
+
<meta property="twitter:url" content="{{ page.url | absolute_url }}">
|
14
|
+
<meta name="twitter:title" content="{{ page.title | escape }}">
|
15
|
+
<meta name="twitter:description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% elsif page.description %}{{ page.description | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% else %}{{ site.description | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% endif %}">
|
16
|
+
<meta name="twitter:image" content="{{ page.background | absolute_url }}">
|
17
|
+
<meta property="og:url" content="{{ page.url | absolute_url }}">
|
18
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
19
|
+
<meta property="og:type" content="article">
|
20
|
+
<meta property="og:title" content="{{ page.title | escape }}">
|
21
|
+
<meta property="og:locale" content="{{ site.locale }}">
|
22
|
+
<meta property="og:published_time" content="{% if page.date %}{{ page.date }}{% else %}{{ site.date }}{% endif %}">
|
23
|
+
<meta property="og:description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% elsif page.description %}{{ page.description | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% else %}{{ site.description | strip_html | normalize_whitespace | truncate: 160 | escape | page.title }}{% endif %}">
|
24
|
+
<meta property="og:image" content="{{ page.background | absolute_url }}">
|
25
|
+
<link rel="stylesheet" href="{{ '/assets/vendor/nocc-bootstrap-theme/css/nocc-theme.min.css' | relative_url }}" type="text/css">
|
26
|
+
<link rel="stylesheet" href="{{ '/assets/css/styles.css' | relative_url }}" type="text/css">
|
27
|
+
<link rel="canonical" href="{{ page.url | replace:'index.html','' | absolute_url }}">
|
28
|
+
<link rel="alternate" type="application/rss+xml" title="{{ site.title | escape }}" href="{{ 'feed.xml' | relative_url }}">
|
29
|
+
<link rel="shortcut icon" href="{{ '/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.ico' | relative_url }}">
|
30
|
+
<link rel="icon" href="{{ '/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.ico' | relative_url }}" sizes="any">
|
31
|
+
<link rel="icon" href="{{ '/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.svg' | relative_url }}" type="image/svg+xml">
|
32
|
+
<link rel="apple-touch-icon" href="{{ '/assets/vendor/nocc-bootstrap-theme/images/favicon_io/favicon.png' | relative_url }}" type="image/png">
|
33
|
+
<link rel="manifest" href="/manifest.webmanifest">
|
@@ -0,0 +1,20 @@
|
|
1
|
+
{%- for file in site.static_files -%}
|
2
|
+
{%- if file.path contains include.folder -%}
|
3
|
+
{%- if file.extname == '.jpg' or
|
4
|
+
file.extname == '.jpeg' or
|
5
|
+
file.extname == '.JPG' or
|
6
|
+
file.extname == '.webp' or
|
7
|
+
file.extname == '.png' or
|
8
|
+
file.extname == '.JPEG' -%}
|
9
|
+
{% assign filenameparts = file.path | split: "/" %}
|
10
|
+
{% assign filename = filenameparts | last | replace: file.extname,"" -%}
|
11
|
+
<button class="thumbnail ratio ratio-4x3" id="{{ filename }}" data-bs-toggle="modal" data-bs-title="{{ filename }}" aria-label="{{ filename }}"
|
12
|
+
data-bs-image="{{ file.path }}"
|
13
|
+
data-bs-target="#image-gallery">
|
14
|
+
<img class="img-thumbnail"
|
15
|
+
src="{{ file.path }}"
|
16
|
+
alt="{{ filename }}">
|
17
|
+
</button>
|
18
|
+
{%- endif -%}
|
19
|
+
{%- endif -%}
|
20
|
+
{%- endfor - %}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<div class="position-fixed bottom-0 end-0 mb-3 me-3">
|
2
|
+
<button class="btn-toggle py-2 d-flex align-items-center" id="bd-toggle" data-bs-toggle="button" type="button" aria-expanded="false" aria-label="Toggle theme color">
|
3
|
+
<span class="daylight filter-white"></span>
|
4
|
+
</button>
|
5
|
+
</div>
|
6
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/theme-toggler.min.js' | relative_url }}"></script>
|
7
|
+
<!-- Navigation -->
|
8
|
+
<nav class="navbar navbar-expand-lg fixed-top" id="mainNav">
|
9
|
+
<div class="container">
|
10
|
+
<a class="navbar-brand" hreflang="{{ site.lang }}" href="{{ site.baseurl }}">{{ site.title | escape }}</a>
|
11
|
+
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
|
12
|
+
Menu
|
13
|
+
<i class="fa fa-bars"></i>
|
14
|
+
</button>
|
15
|
+
<div class="collapse navbar-collapse justify-content-end" id="navbarResponsive">
|
16
|
+
<ul class="navbar-nav">
|
17
|
+
<li class="nav-item">
|
18
|
+
<a class="nav-link" hreflang="{{ site.lang }}" href="{{ site.baseurl }}" aria-label="{{ site.title }} Home">Home</a>
|
19
|
+
</li>
|
20
|
+
<li class="nav-item">
|
21
|
+
<a class="nav-link" hreflang="{{ site.lang }}" href="{{ 'about/' | relative_url }}" aria-label="{{ site.title }} About">About</a>
|
22
|
+
</li>
|
23
|
+
<li class="nav-item">
|
24
|
+
<a class="nav-link" hreflang="{{ site.lang }}" href="{{ 'posts/' | relative_url }}" aria-label="{{ site.title }} Posts">Posts</a>
|
25
|
+
</li>
|
26
|
+
<li class="nav-item">
|
27
|
+
<a class="nav-link" hreflang="{{ site.lang }}" href="{{ site.tags_dir | append: '/' | relative_url }}" aria-label="{{ site.title }} Tags">Tags</a>
|
28
|
+
</li>
|
29
|
+
<li class="nav-item">
|
30
|
+
<a class="nav-link" hreflang="{{ site.lang }}" href="{{ 'gallery/' | relative_url }}" aria-label="{{ site.title }} Gallery of images">Gallery</a>
|
31
|
+
</li>
|
32
|
+
<li class="nav-item">
|
33
|
+
<a class="nav-link" hreflang="{{ site.lang }}" href="{{ 'contact/' | relative_url }}" aria-label="{{ site.title }} Contact form">Contact</a>
|
34
|
+
</li>
|
35
|
+
{%- if site.gh_repository %}
|
36
|
+
<li class="nav-item">
|
37
|
+
<a href="{{ site.gh_repository }}" hreflang="{{ site.lang }}" target="_blank" rel="noreferrer" aria-label="{{ site.title }} repo" title="{{ site.title }} repo"><img class="filter-white" src="/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/github.svg" width="24px" height="24px" aria-hidden="true" /></a>
|
38
|
+
</li>
|
39
|
+
{%- endif %}
|
40
|
+
{%- if site.kofi %}
|
41
|
+
<li class="nav-item">
|
42
|
+
<a href="https://ko-fi.com/{{ site.kofi }}" hreflang="{{ site.lang }}" target="_blank" rel="noreferrer" aria-label="Support me on ko-fi.com" title="Support me on ko-fi.com"><img class="nav-kofi" src="/assets/vendor/nocc-bootstrap-theme/images/nocc/kofi_s_logo_nolabel.webp" border="0" alt="Buy Me a Coffee at ko-fi.com" /></a>
|
43
|
+
</li>
|
44
|
+
{% endif -%}
|
45
|
+
</ul>
|
46
|
+
</div>
|
47
|
+
</div>
|
48
|
+
</nav>
|
@@ -0,0 +1,88 @@
|
|
1
|
+
|
2
|
+
{% unless page.tagsindex -%}
|
3
|
+
<script type="text/javascript" rel="preload" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/jquery/3.7.1/jquery.min.js' | relative_url }}"></script>
|
4
|
+
{% endunless -%}
|
5
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/clipboardjs/clipboard.min.js' | relative_url }}"></script>
|
6
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/copy-clipboard.js' | relative_url }}"></script>
|
7
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/bootstrap/5.3.3/bootstrap.bundle.min.js' | relative_url }}"></script>
|
8
|
+
{%- if jekyll.environment != "development" %}
|
9
|
+
<script type="text/javascript" src="https://notes-on-cloud-infrastructure.disqus.com/count.js" async id="dsq-count-scr"></script>
|
10
|
+
{%- endif %}
|
11
|
+
{%- if page.url contains 'contact' -%}
|
12
|
+
<!-- Form Validation -->
|
13
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/jq-bootstrap-validation.min.js' | relative_url }}"></script>
|
14
|
+
<!-- Send Form -->
|
15
|
+
<script>
|
16
|
+
$(function () {
|
17
|
+
$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
|
18
|
+
preventSubmit: true,
|
19
|
+
submitError: function ($form, event, errors) {
|
20
|
+
// additional error messages or events
|
21
|
+
},
|
22
|
+
submitSuccess: function ($form, event) {
|
23
|
+
event.preventDefault(); // prevent default submit behaviour
|
24
|
+
// get values from FORM
|
25
|
+
var name = $("input#name").val();
|
26
|
+
var email = $("input#email").val();
|
27
|
+
var message = $("textarea#message").val();
|
28
|
+
var firstName = name; // For Success/Failure Message
|
29
|
+
// Check for white space in name for Success/Fail message
|
30
|
+
if (firstName.indexOf(' ') >= 0) {
|
31
|
+
firstName = name.split(' ').slice(0, -1).join(' ');
|
32
|
+
}
|
33
|
+
$this = $("#sendMessageButton");
|
34
|
+
$this.prop("disabled", true); // Disable submit button until AJAX call is complete to prevent duplicate messages
|
35
|
+
$.ajax({
|
36
|
+
url: "//formspree.io/f/{{ site.formemail }}",
|
37
|
+
type: "POST",
|
38
|
+
data: {
|
39
|
+
name: name,
|
40
|
+
email: email,
|
41
|
+
message: message
|
42
|
+
},
|
43
|
+
cache: false,
|
44
|
+
success: function () {
|
45
|
+
// Success message
|
46
|
+
$('#success').html("<div class='alert alert-success'>");
|
47
|
+
$('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×").append("</button>");
|
48
|
+
$('#success > .alert-success').append("<strong>Your message has been sent. </strong>");
|
49
|
+
$('#success > .alert-success').append('</div>');
|
50
|
+
//clear all fields
|
51
|
+
$('#contactForm').trigger("reset");
|
52
|
+
},
|
53
|
+
error: function () {
|
54
|
+
// Fail message
|
55
|
+
$('#success').html("<div class='alert alert-success'>");
|
56
|
+
$('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×").append("</button>");
|
57
|
+
$('#success > .alert-success').append("<strong>Your message has been sent. </strong>");
|
58
|
+
$('#success > .alert-success').append('</div>');
|
59
|
+
//$('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×").append("</button>");
|
60
|
+
//$('#success > .alert-danger').append($("<strong>").text("Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"));
|
61
|
+
//$('#success > .alert-danger').append('</div>');
|
62
|
+
//clear all fields
|
63
|
+
$('#contactForm').trigger("reset");
|
64
|
+
},
|
65
|
+
complete: function () {
|
66
|
+
setTimeout(function () {
|
67
|
+
$this.prop("disabled", false); // Re-enable submit button when AJAX call is complete
|
68
|
+
}, 1000);
|
69
|
+
}
|
70
|
+
});
|
71
|
+
},
|
72
|
+
filter: function () {
|
73
|
+
return $(this).is(":visible");
|
74
|
+
}
|
75
|
+
});
|
76
|
+
|
77
|
+
$("a[data-toggle=\"tab\"]").click(function (e) {
|
78
|
+
e.preventDefault();
|
79
|
+
$(this).tab("show");
|
80
|
+
});
|
81
|
+
});
|
82
|
+
|
83
|
+
/*When clicking on Full hide fail/success boxes */
|
84
|
+
$('#name').focus(function () {
|
85
|
+
$('#success').html('');
|
86
|
+
});
|
87
|
+
</script>
|
88
|
+
{%- endif -%}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<section class="homehead">
|
2
|
+
<div class="mx-auto">
|
3
|
+
<div id="carouselRide" class="carousel slide carousel-fade" data-bs-ride="true">
|
4
|
+
<div class="carousel-inner">
|
5
|
+
<div class="overlay"></div>
|
6
|
+
<div class="page-heading">
|
7
|
+
{%- if page.title %}
|
8
|
+
<h1>{{ page.title }}</h1>
|
9
|
+
{% else -%}
|
10
|
+
<h1>{{ site.title }}</h1>
|
11
|
+
{% endif -%}
|
12
|
+
{%- if site.description %}
|
13
|
+
<h2 class="subheading">{{ site.description }}</h2>
|
14
|
+
{% endif -%}
|
15
|
+
</div>
|
16
|
+
{%- for image in page.carousel %}
|
17
|
+
<div class="carousel-item" data-bs-interval="20000">
|
18
|
+
<img src="{{ image }}" class="d-block w-100" aria-hidden="true">
|
19
|
+
</div>
|
20
|
+
{% endfor -%}
|
21
|
+
</div>
|
22
|
+
<button class="carousel-control-prev" type="button" data-bs-target="#carouselRide" data-bs-slide="prev">
|
23
|
+
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
24
|
+
<span class="visually-hidden">Previous</span>
|
25
|
+
</button>
|
26
|
+
<button class="carousel-control-next" type="button" data-bs-target="#carouselRide" data-bs-slide="next">
|
27
|
+
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
28
|
+
<span class="visually-hidden">Next</span>
|
29
|
+
</button>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<script type="text/javascript">
|
33
|
+
document.addEventListener('DOMContentLoaded', (event) => {
|
34
|
+
var carouselInner = document.getElementsByClassName('carousel-item');
|
35
|
+
var carouselItem = carouselInner[0];
|
36
|
+
carouselItem.className += ' active';
|
37
|
+
});
|
38
|
+
</script>
|
39
|
+
</section>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html class="h-100" lang="{{ site.lang }}" data-bs-theme="light">
|
3
|
+
<head>
|
4
|
+
{% include head.html %}
|
5
|
+
{%- if jekyll.environment != "development" -%}
|
6
|
+
{% include google_analytics.html %}
|
7
|
+
{%- endif -%}
|
8
|
+
</head>
|
9
|
+
<body class="d-flex flex-column h-100" style="overflow-x: hidden;">
|
10
|
+
<header>
|
11
|
+
{% include navbar.html %}
|
12
|
+
</header>
|
13
|
+
{{ content }}
|
14
|
+
{% include footer.html %}
|
15
|
+
{% include scripts.html %}
|
16
|
+
</body>
|
17
|
+
</html>
|