nocc-bootstrap-jekyll-theme 1.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 +44 -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 +208 -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 +282 -0
data/_layouts/home.html
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<main class="flex-shrink-0">
|
6
|
+
{%- if page.carousel %}
|
7
|
+
{% include carousel.html %}
|
8
|
+
{% else -%}
|
9
|
+
<section class="masthead" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(100, 100, 100, 0.5) 10%), url('{{ page.background }}')">
|
10
|
+
<div class="overlay"></div>
|
11
|
+
<div class="container">
|
12
|
+
<div class="row">
|
13
|
+
<div class="mx-auto">
|
14
|
+
<div class="page-heading">
|
15
|
+
{%- if page.title %}
|
16
|
+
<h1>{{ page.title }}</h1>
|
17
|
+
{% else -%}
|
18
|
+
<h1>{{ site.title }}</h1>
|
19
|
+
{% endif %}
|
20
|
+
{%- if site.description %}
|
21
|
+
<h2 class="subheading">{{ site.description }}</h2>
|
22
|
+
{% endif -%}
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</section>
|
28
|
+
{% endif -%}
|
29
|
+
{% if site.landing == true %}
|
30
|
+
<section>
|
31
|
+
<div class="container my-5">
|
32
|
+
<div class="row align-items-center rounded-hero border shadow-lg">
|
33
|
+
<div class="col-lg-8 p-3 p-lg-5">
|
34
|
+
{{ content }}
|
35
|
+
<div class="d-grid gap-2 d-md-flex justify-content-md-start mb-4 mb-lg-3">
|
36
|
+
<a id="download" class="btn btn-download px-4 me-md-2 fw-bold" href="{{ site.theme_download }}" aria-label="Download" target="_blank" role="button">Download</a>
|
37
|
+
<a class="btn btn-secondary px-4" href="{{ site.theme_bundle_repo }}" aria-label="GitHub Repository" target="_blank" role="button">Source Code</a>
|
38
|
+
<a class="btn btn-tertiary px-4" href="{{ site.theme_package }}" aria-label="Nocc NPM package" target="_blank" role="button">NPM Package</a>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
<div class="col-lg-4 p-0 overflow-hidden shadow-lg">
|
42
|
+
<img class="rounded-lg-3" src="{{ site.theme_logo }}" alt="NOCC Bootstrap theme logo" width="410">
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
<div class="home-divider"></div>
|
47
|
+
</section>
|
48
|
+
{% include_relative features.html %}
|
49
|
+
{% else %}
|
50
|
+
<section>
|
51
|
+
<div class="container my-5">
|
52
|
+
<div class="row">
|
53
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
54
|
+
{{ content }}
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
<div class="home-divider"></div>
|
59
|
+
</section>
|
60
|
+
{% endif %}
|
61
|
+
<section>
|
62
|
+
<div id="post-cards" class="container py-5">
|
63
|
+
<h2 class="pb-2 border-bottom">Recent articles</h2>
|
64
|
+
<div class="post-card row">
|
65
|
+
{% assign sorted = site.posts | sort: 'date' | reverse %}
|
66
|
+
{%- for post in sorted limit : 3 %}
|
67
|
+
<div class="col">
|
68
|
+
<div class="card h-100 overflow-hidden card-shadow" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(100, 100, 100, 0.5) 10%), url('{{ post.background }}')">
|
69
|
+
<div class="d-flex flex-column h-100 p-5 text-white">
|
70
|
+
<small>on {{ post.date | date: '%B %d, %Y' }}</small>
|
71
|
+
<h2 class="pt-5 mt-5">{{ post.title }}</h2>
|
72
|
+
<ul class="d-flex list-unstyled mt-auto">
|
73
|
+
<li class="me-auto float-end">
|
74
|
+
<small><a href="{{ post.url | relative_url }}" class="stretched-link" hreflang="{{ site.lang }}" aria-label="{{ post.title | escape }}"><img role="img" class="filter-white" alt="" aria-label="" src="/assets/vendor/nocc-bootstrap-theme/icons/1.11.0/link-45deg.svg" width="25em" height="25em">
|
75
|
+
</a></small>
|
76
|
+
</li>
|
77
|
+
{%- if post.tags %}
|
78
|
+
{% for tag in post.tags limit : 2 -%}
|
79
|
+
<li class="d-flex align-items-center me-3">
|
80
|
+
<span class="badge">#{{ tag }}</span>
|
81
|
+
</li>
|
82
|
+
{%- endfor %}
|
83
|
+
{%- endif %}
|
84
|
+
</ul>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
{% endfor -%}
|
89
|
+
</div>
|
90
|
+
</div>
|
91
|
+
</section>
|
92
|
+
</main>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<section class="masthead sechead" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(0,0,0,0.5) 100%), url('{{ page.background }}')">
|
6
|
+
<div class="overlay"></div>
|
7
|
+
<div class="container">
|
8
|
+
<div class="row">
|
9
|
+
<div class="mx-auto">
|
10
|
+
<div class="page-heading">
|
11
|
+
<h1>{{ page.title }}</h1>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
</section>
|
17
|
+
<section>
|
18
|
+
<div class="container">
|
19
|
+
<div class="row">
|
20
|
+
<div class="mx-auto">
|
21
|
+
<div class="image-gallery">
|
22
|
+
{% include image.html folder="/assets/images/gallery" %}
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
<div class="modal fade" id="image-gallery" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
28
|
+
<div class="modal-dialog modal-lg">
|
29
|
+
<div class="modal-content">
|
30
|
+
<div class="modal-header">
|
31
|
+
<h4 class="modal-title" id="image-gallery-title"></h4>
|
32
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
33
|
+
</div>
|
34
|
+
<div class="modal-body">
|
35
|
+
<img id="image-gallery-image" class="img-responsive col-md-12" src="">
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<script type="text/javascript">
|
41
|
+
document.addEventListener('DOMContentLoaded', (event) => {
|
42
|
+
var buttons = document.getElementsByTagName("button");
|
43
|
+
var buttonsCount = buttons.length;
|
44
|
+
for (let i = 0; i < buttonsCount; i++) {
|
45
|
+
buttons[i].onclick = function(e) {
|
46
|
+
const img = document.getElementById(this.id);
|
47
|
+
if (img) {
|
48
|
+
var url = img.getAttribute('data-bs-image');
|
49
|
+
var uri = encodeURI(url);
|
50
|
+
var name = img.getAttribute('data-bs-title');
|
51
|
+
}
|
52
|
+
const modal = document.querySelector("#image-gallery-image");
|
53
|
+
modal.removeAttribute('src');
|
54
|
+
modal.setAttribute('src', decodeURI(uri));
|
55
|
+
modal.setAttribute("disabled", "");
|
56
|
+
var title = document.getElementById("image-gallery-title");
|
57
|
+
title.textContent = name;
|
58
|
+
};
|
59
|
+
}
|
60
|
+
});
|
61
|
+
</script>
|
62
|
+
<div class="divider"></div>
|
63
|
+
</section>
|
data/_layouts/page.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<main class="flex-shrink-0">
|
6
|
+
{% if page.background %}
|
7
|
+
<section class="masthead sechead" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(0,0,0,0.5) 100%), url('{{ page.background }}')">
|
8
|
+
{% else %}
|
9
|
+
<section class="masthead sechead">
|
10
|
+
{% endif %}
|
11
|
+
<div class="overlay"></div>
|
12
|
+
<div class="container">
|
13
|
+
<div class="row">
|
14
|
+
<div class="mx-auto">
|
15
|
+
<div class="page-heading">
|
16
|
+
<h1>{{ page.title }}</h1>
|
17
|
+
{% if page.subtitle -%}
|
18
|
+
<h2 class="subheading">{{ page.subtitle }}</h2>
|
19
|
+
{%- endif %}
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
</section>
|
25
|
+
<section>
|
26
|
+
<div class="container">
|
27
|
+
<div class="row">
|
28
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
29
|
+
{{ content }}
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
<div class="divider"></div>
|
34
|
+
</section>
|
35
|
+
</main>
|
data/_layouts/post.html
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<main class="flex-shrink-0">
|
6
|
+
{% if page.background %}
|
7
|
+
<section class="masthead sechead" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(0,0,0,0.5) 100%), url('{{ page.background }}')">
|
8
|
+
{% else %}
|
9
|
+
<section class="masthead sechead">
|
10
|
+
{% endif %}
|
11
|
+
<div class="overlay"></div>
|
12
|
+
<div class="container">
|
13
|
+
<div class="row">
|
14
|
+
<div class="mx-auto">
|
15
|
+
<div class="post-heading">
|
16
|
+
<h1>{{ page.title }}</h1>
|
17
|
+
{%- if page.description %}
|
18
|
+
<h2 class="subheading">{{ page.description }}</h2>
|
19
|
+
{% endif -%}
|
20
|
+
<span class="meta">Posted by
|
21
|
+
{% if page.author %} <a href="{{ 'about/' | relative_url }}" hreflang="{{ site.lang }}" aria-label="Author">{{ page.author }} </a> {% else %}<a href="{{ 'posts/' | relative_url }}" hreflang="{{ site.lang }}" aria-label="Author">{{ site.author }} </a> {% endif %}
|
22
|
+
on {{ page.date | date: '%B %d, %Y' }} · {% include read_time.html content=page.content -%}</span>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</section>
|
28
|
+
<section>
|
29
|
+
<div class="container">
|
30
|
+
<div class="row">
|
31
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
32
|
+
{{ content }}
|
33
|
+
<hr>
|
34
|
+
{% if site.kofi %}
|
35
|
+
<div class="text-center">
|
36
|
+
<p><mark>Found a snippet that saved your day?</mark> Consider <a href="https://ko-fi.com/{{ site.kofi }}" target="_blank" rel="noopener" title="Support me on ko-fi.com">dropping a tip!</a></p>
|
37
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/ko-fi/widget_2.min.js' | relative_url }}"></script>
|
38
|
+
<script type="text/javascript">kofiwidget2.init("Buy me a coffee", "#176391", "{{ site.kofi }}");kofiwidget2.draw();</script>
|
39
|
+
</div>
|
40
|
+
<hr>
|
41
|
+
{% endif %}
|
42
|
+
<div class="clearfix">
|
43
|
+
{% if page.comments %}
|
44
|
+
{% if site.disqus_shortname %}
|
45
|
+
{% include disqus_comments.html %}
|
46
|
+
{% endif %}
|
47
|
+
{% endif %}
|
48
|
+
{% if page.previous.url %}
|
49
|
+
<a class="btn btn-primary float-start" href="{{ page.previous.url | prepend: site.baseurl | replace: '//', '/' }}" hreflang="{{ site.lang }}" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ page.previous.title }}">← Previous<span class="d-none d-md-inline">
|
50
|
+
Post</span></a>
|
51
|
+
{% endif %}
|
52
|
+
{% if page.next.url %}
|
53
|
+
<a class="btn btn-primary float-end" href="{{ page.next.url | prepend: site.baseurl | replace: '//', '/' }}" hreflang="{{ site.lang }}" data-bs-toggle="tooltip" data-bs-placement="top" title="{{ page.next.title }}">Next<span class="d-none d-md-inline">
|
54
|
+
Post</span> →</a>
|
55
|
+
{% endif %}
|
56
|
+
</div>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
</div>
|
60
|
+
<div class="divider"></div>
|
61
|
+
</section>
|
62
|
+
</main>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<main class="flex-shrink-0">
|
6
|
+
{% if page.background %}
|
7
|
+
<section class="masthead sechead" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(0,0,0,0.5) 100%), url('{{ page.background }}')">
|
8
|
+
{% else %}
|
9
|
+
<section class="masthead sechead">
|
10
|
+
{% endif %}
|
11
|
+
<div class="overlay"></div>
|
12
|
+
<div class="container">
|
13
|
+
<div class="row">
|
14
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
15
|
+
<div class="page-heading">
|
16
|
+
<h1>Index</h1>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</section>
|
22
|
+
<section>
|
23
|
+
<div class="container">
|
24
|
+
<div class="row">
|
25
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
26
|
+
<p class="fw-bolder text-uppercase">Number of posts: {{ site.posts | size }}</p>
|
27
|
+
{{ content }}
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
<div class="divider"></div>
|
32
|
+
</section>
|
33
|
+
</main>
|
data/_layouts/tag.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<main class="flex-shrink-0">
|
6
|
+
<section class="smallhead sechead"></section>
|
7
|
+
<section>
|
8
|
+
<div class="container">
|
9
|
+
<div class="row">
|
10
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
11
|
+
<div class="post-header">
|
12
|
+
<h1 class="post-title">Posts with tag #{{ page.title | escape }}</h1>
|
13
|
+
</div>
|
14
|
+
<div class="post-content">
|
15
|
+
{{ content }}
|
16
|
+
<p class="fw-bolder text-uppercase">Number of articles: {{ site.posts | where_exp: 'posts', 'posts.tags contains page.title' | size }}</p>
|
17
|
+
<ul class="post-list">
|
18
|
+
{% assign tagpost = site.posts | where_exp: 'posts', 'posts.tags contains page.title' %}</p>
|
19
|
+
{%- for tag in tagpost -%}
|
20
|
+
<li>
|
21
|
+
{%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" %}
|
22
|
+
<p>
|
23
|
+
<a href="{{ tag.url | relative_url }}" hreflang="{{ site.lang }}" aria-label="{{ tag.title | escape }}">{{ tag.title | escape }}</a>
|
24
|
+
</p>
|
25
|
+
</li>
|
26
|
+
{%- endfor -%}
|
27
|
+
</ul>
|
28
|
+
<p>Browse more <a href="{{ site.tags_dir | append: '/' | relative_url }}" hreflang="{{ site.lang }}" aria-label="Tags index">tags</a>.</p>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
<div class="divider"></div>
|
34
|
+
</section>
|
35
|
+
</main>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
tagsindex: true
|
4
|
+
---
|
5
|
+
|
6
|
+
<main class="flex-shrink-0">
|
7
|
+
<section class="masthead" style="background-image: linear-gradient(to bottom, rgba(0,0,0,0.5)0%,rgba(0,0,0,0.5) 100%), url('{{ page.background }}')">
|
8
|
+
<div class="overlay"></div>
|
9
|
+
<div class="container">
|
10
|
+
<div class="row">
|
11
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
12
|
+
<div class="page-heading">
|
13
|
+
<h1>{{ page.title }}</h1>
|
14
|
+
{% if page.subtitle -%}
|
15
|
+
<span class="subheading">{{ page.subtitle }}</span>
|
16
|
+
{%- endif %}
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
</section>
|
22
|
+
<section>
|
23
|
+
<div class="container">
|
24
|
+
<div class="row">
|
25
|
+
<div class="text-align-center">
|
26
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/jquery/3.7.1/jquery.min.js' | relative_url }}"></script>
|
27
|
+
<script type="text/javascript" src="{{ '/assets/vendor/nocc-bootstrap-theme/js/jquery/jqcloud/2.0.3/jqcloud.min.js' | relative_url }}"></script>
|
28
|
+
<div class="wordcloud"></div>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<div class="home-divider"></div>
|
33
|
+
</section>
|
34
|
+
<section>
|
35
|
+
<div class="container my-5">
|
36
|
+
<div class="row">
|
37
|
+
<div class="col-lg-8 col-md-10 mx-auto">
|
38
|
+
<h4>Archive</h4>
|
39
|
+
<ul class="tag-list">
|
40
|
+
{% assign tags_list = "" | split: ',' %}
|
41
|
+
{%- for page in site.posts %}
|
42
|
+
{%- for tag in page.tags %}
|
43
|
+
{% assign tags_list = tags_list | push: tag %}
|
44
|
+
{%- endfor %}
|
45
|
+
{%- endfor %}
|
46
|
+
{% assign tags_uniq = tags_list | uniq | sort %}
|
47
|
+
{%- for tag in tags_uniq %}
|
48
|
+
{% assign tag_count = site.posts | where_exp: 'posts', 'posts.tags contains tag' %}
|
49
|
+
<li>
|
50
|
+
<a href="{{ tag | append: '/' }}" hreflang="{{ site.lang }}" aria-label="{{ tag }}">{{ tag }} ({{ tag_count | size }})</a>
|
51
|
+
</li>
|
52
|
+
{%- endfor %}
|
53
|
+
</ul>
|
54
|
+
<script type="text/javascript">
|
55
|
+
$(document).ready(tagscloud);
|
56
|
+
$(window).on('resize',tagscloud);
|
57
|
+
function tagscloud() {
|
58
|
+
$('.wordcloud').jQCloud('destroy');
|
59
|
+
var tags = [];
|
60
|
+
{%- for tag in tags_uniq -%}
|
61
|
+
{% assign weight = site.posts | where_exp: 'posts', 'posts.tags contains tag' | size %}
|
62
|
+
{%- assign name = tag -%}
|
63
|
+
tags.push({
|
64
|
+
text: "{{ name }}",
|
65
|
+
weight: '{{ weight }}',
|
66
|
+
link: { href:'{{ site.tags_dir | append: '/' | append: name | append: '/' | relative_url }}', title: '{{ tag }}' }
|
67
|
+
});
|
68
|
+
{%- endfor -%}
|
69
|
+
$('.wordcloud').jQCloud(tags, {
|
70
|
+
'shape': 'rectangular',
|
71
|
+
'autoresize': true
|
72
|
+
}
|
73
|
+
)};
|
74
|
+
</script>
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
</section>
|
79
|
+
</main>
|
data/_sass/_custom.scss
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
h3 {
|
2
|
+
font-size: calc(1.31rem + .81vw);
|
3
|
+
}
|
4
|
+
@media only screen and (min-width: 1536px) {
|
5
|
+
h3 {
|
6
|
+
font-size: 1.4rem;
|
7
|
+
}
|
8
|
+
section.homehead .page-heading {
|
9
|
+
padding: 5rem 0;
|
10
|
+
h1 {
|
11
|
+
font-size: 4rem;
|
12
|
+
margin-top: 80px;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
section.homehead .page-heading .subheading {
|
16
|
+
font-size: 2rem;
|
17
|
+
}
|
18
|
+
section.masthead {
|
19
|
+
padding: 3rem 0;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
section.homehead .overlay {
|
23
|
+
height: 30vh;
|
24
|
+
}
|
25
|
+
.carousel .carousel-inner img {
|
26
|
+
height: 30vh;
|
27
|
+
}
|
28
|
+
@media only screen and (min-width: 990px) {
|
29
|
+
section.homehead .page-heading .subheading {
|
30
|
+
font-size: 1.3rem;
|
31
|
+
}
|
32
|
+
section.masthead .page-heading .subheading {
|
33
|
+
font-size: 1.3rem;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
@media only screen and (max-width: 990px) {
|
37
|
+
h1 {
|
38
|
+
font-size: 1.7rem;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
.nlogo {
|
42
|
+
display: inline-block;
|
43
|
+
|
44
|
+
width: 45px;
|
45
|
+
height: 30px;
|
46
|
+
|
47
|
+
background-image: url("/assets/images/nocc_icon.svg");
|
48
|
+
background-repeat: no-repeat;
|
49
|
+
background-size: 30px auto;
|
50
|
+
}
|
51
|
+
.card-start {
|
52
|
+
position: relative;
|
53
|
+
border: 1px solid var(--bs-border-color-base);
|
54
|
+
border-radius: 1em;
|
55
|
+
background-color: var(--bs-form-invalid-color);
|
56
|
+
opacity: .8;
|
57
|
+
|
58
|
+
&:hover {
|
59
|
+
cursor: pointer;
|
60
|
+
border-color: var(--bs-primary-color);
|
61
|
+
border-width: 2px;
|
62
|
+
box-shadow: 0 1rem 3rem rgba(0,0,0,.35);
|
63
|
+
}
|
64
|
+
|
65
|
+
small {
|
66
|
+
color: #fff;
|
67
|
+
|
68
|
+
a {
|
69
|
+
text-decoration: none;
|
70
|
+
|
71
|
+
&:hover {
|
72
|
+
text-decoration: none;
|
73
|
+
color: #fff;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
}
|
77
|
+
}
|
78
|
+
.card-end {
|
79
|
+
position: relative;
|
80
|
+
border: 1px solid var(--bs-border-color-base);
|
81
|
+
border-radius: 1em;
|
82
|
+
background-color: var(--bs-secondary-color);
|
83
|
+
opacity: .8;
|
84
|
+
|
85
|
+
&:hover {
|
86
|
+
cursor: pointer;
|
87
|
+
border-color: var(--bs-primary-color);
|
88
|
+
border-width: 2px;
|
89
|
+
box-shadow: 0 1rem 3rem rgba(0,0,0,.35);
|
90
|
+
}
|
91
|
+
|
92
|
+
small {
|
93
|
+
color: #fff;
|
94
|
+
|
95
|
+
a {
|
96
|
+
text-decoration: none;
|
97
|
+
|
98
|
+
&:hover {
|
99
|
+
text-decoration: none;
|
100
|
+
color: #fff;
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
.npm-logo {
|
107
|
+
display: inline-block;
|
108
|
+
|
109
|
+
width: 26px;
|
110
|
+
height: 24px;
|
111
|
+
margin-right: 10px;
|
112
|
+
|
113
|
+
background-image: url("/assets/images/npm-logo.svg");
|
114
|
+
background-repeat: no-repeat;
|
115
|
+
background-size: 26px auto;
|
116
|
+
}
|
117
|
+
|
118
|
+
.jekyll-logo {
|
119
|
+
display: inline-block;
|
120
|
+
|
121
|
+
width: 26px;
|
122
|
+
height: 27px;
|
123
|
+
margin-right: 5px;
|
124
|
+
|
125
|
+
background-image: url("/assets/images/jekyll-logo.svg");
|
126
|
+
background-repeat: no-repeat;
|
127
|
+
background-size: 28px auto;
|
128
|
+
}
|
129
|
+
|
130
|
+
.download-icon {
|
131
|
+
display: inline-block;
|
132
|
+
|
133
|
+
width: 26px;
|
134
|
+
height: 24px;
|
135
|
+
margin-right: 10px;
|
136
|
+
|
137
|
+
background-image: url("/assets/images/download.svg");
|
138
|
+
background-repeat: no-repeat;
|
139
|
+
background-size: 26px auto;
|
140
|
+
}
|
141
|
+
.py-5 {
|
142
|
+
padding-top: 3rem;
|
143
|
+
padding-bottom: 1rem;
|
144
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
width="77.258331mm"
|
6
|
+
height="76.905556mm"
|
7
|
+
viewBox="0 0 77.258331 76.905556"
|
8
|
+
version="1.1"
|
9
|
+
id="svg1"
|
10
|
+
xml:space="preserve"
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
13
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
15
|
+
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
16
|
+
id="namedview1"
|
17
|
+
pagecolor="#ffffff"
|
18
|
+
bordercolor="#000000"
|
19
|
+
borderopacity="0.25"
|
20
|
+
inkscape:showpageshadow="2"
|
21
|
+
inkscape:pageopacity="0.0"
|
22
|
+
inkscape:pagecheckerboard="0"
|
23
|
+
inkscape:deskcolor="#d1d1d1"
|
24
|
+
inkscape:document-units="mm" /><defs
|
25
|
+
id="defs1" /><g
|
26
|
+
inkscape:label="Layer 1"
|
27
|
+
inkscape:groupmode="layer"
|
28
|
+
id="layer1"
|
29
|
+
transform="translate(-66.30742,-110.04723)"><image
|
30
|
+
width="77.258331"
|
31
|
+
height="76.905556"
|
32
|
+
preserveAspectRatio="none"
|
33
|
+
xlink:href="data:image/png;base64,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 "
|
34
|
+
id="image1"
|
35
|
+
x="66.307419"
|
36
|
+
y="110.04723" /></g></svg>
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|