lone-wolf-theme 1.0.3
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/CHANGELOG.md +25 -0
- data/LICENSE +21 -0
- data/README.md +43 -0
- data/_data/blog.yml +21 -0
- data/_data/nav.yml +39 -0
- data/_includes/ads.html +1 -0
- data/_includes/analytics-providers/custom.html +3 -0
- data/_includes/analytics-providers/google-gtag.html +9 -0
- data/_includes/analytics.html +8 -0
- data/_includes/archive-list.html +33 -0
- data/_includes/archive-single.html +41 -0
- data/_includes/blog-post-sidebar.html +37 -0
- data/_includes/comments-providers/custom.html +3 -0
- data/_includes/comments-providers/disqus.html +17 -0
- data/_includes/comments-providers/scripts.html +8 -0
- data/_includes/comments.html +8 -0
- data/_includes/footer.html +49 -0
- data/_includes/head.html +13 -0
- data/_includes/head/favicon.html +13 -0
- data/_includes/head/styles.html +3 -0
- data/_includes/header.html +31 -0
- data/_includes/home-action-btn.html +24 -0
- data/_includes/scripts.html +21 -0
- data/_includes/search-providers/google-search.html +30 -0
- data/_includes/search-providers/scripts.html +7 -0
- data/_includes/search-providers/search_form.html +12 -0
- data/_includes/social-share.html +7 -0
- data/_includes/toc.html +95 -0
- data/_layouts/compress.html +10 -0
- data/_layouts/default.html +25 -0
- data/_layouts/home.html +70 -0
- data/_layouts/list.html +11 -0
- data/_layouts/page.html +10 -0
- data/_layouts/post.html +100 -0
- data/_sass/_bootstrap-social.scss +93 -0
- data/_sass/_lone-wolf-theme.scss +8 -0
- data/_sass/animations/_animate.scss +3607 -0
- data/_sass/bootstrap/scss/_alert.scss +51 -0
- data/_sass/bootstrap/scss/_badge.scss +54 -0
- data/_sass/bootstrap/scss/_breadcrumb.scss +41 -0
- data/_sass/bootstrap/scss/_button-group.scss +163 -0
- data/_sass/bootstrap/scss/_buttons.scss +137 -0
- data/_sass/bootstrap/scss/_card.scss +289 -0
- data/_sass/bootstrap/scss/_carousel.scss +197 -0
- data/_sass/bootstrap/scss/_close.scss +41 -0
- data/_sass/bootstrap/scss/_code.scss +48 -0
- data/_sass/bootstrap/scss/_custom-forms.scss +507 -0
- data/_sass/bootstrap/scss/_dropdown.scss +191 -0
- data/_sass/bootstrap/scss/_forms.scss +330 -0
- data/_sass/bootstrap/scss/_functions.scss +86 -0
- data/_sass/bootstrap/scss/_grid.scss +52 -0
- data/_sass/bootstrap/scss/_images.scss +42 -0
- data/_sass/bootstrap/scss/_input-group.scss +193 -0
- data/_sass/bootstrap/scss/_jumbotron.scss +17 -0
- data/_sass/bootstrap/scss/_list-group.scss +149 -0
- data/_sass/bootstrap/scss/_media.scss +8 -0
- data/_sass/bootstrap/scss/_mixins.scss +47 -0
- data/_sass/bootstrap/scss/_modal.scss +229 -0
- data/_sass/bootstrap/scss/_nav.scss +120 -0
- data/_sass/bootstrap/scss/_navbar.scss +294 -0
- data/_sass/bootstrap/scss/_pagination.scss +73 -0
- data/_sass/bootstrap/scss/_popover.scss +171 -0
- data/_sass/bootstrap/scss/_print.scss +141 -0
- data/_sass/bootstrap/scss/_progress.scss +43 -0
- data/_sass/bootstrap/scss/_reboot.scss +483 -0
- data/_sass/bootstrap/scss/_root.scss +19 -0
- data/_sass/bootstrap/scss/_spinners.scss +55 -0
- data/_sass/bootstrap/scss/_tables.scss +185 -0
- data/_sass/bootstrap/scss/_toasts.scss +44 -0
- data/_sass/bootstrap/scss/_tooltip.scss +115 -0
- data/_sass/bootstrap/scss/_transitions.scss +20 -0
- data/_sass/bootstrap/scss/_type.scss +125 -0
- data/_sass/bootstrap/scss/_utilities.scss +17 -0
- data/_sass/bootstrap/scss/_variables.scss +1123 -0
- data/_sass/bootstrap/scss/bootstrap-grid.scss +29 -0
- data/_sass/bootstrap/scss/bootstrap-reboot.scss +12 -0
- data/_sass/bootstrap/scss/bootstrap.scss +44 -0
- data/_sass/bootstrap/scss/mixins/_alert.scss +13 -0
- data/_sass/bootstrap/scss/mixins/_background-variant.scss +21 -0
- data/_sass/bootstrap/scss/mixins/_badge.scss +17 -0
- data/_sass/bootstrap/scss/mixins/_border-radius.scss +63 -0
- data/_sass/bootstrap/scss/mixins/_box-shadow.scss +20 -0
- data/_sass/bootstrap/scss/mixins/_breakpoints.scss +123 -0
- data/_sass/bootstrap/scss/mixins/_buttons.scss +107 -0
- data/_sass/bootstrap/scss/mixins/_caret.scss +62 -0
- data/_sass/bootstrap/scss/mixins/_clearfix.scss +7 -0
- data/_sass/bootstrap/scss/mixins/_deprecate.scss +10 -0
- data/_sass/bootstrap/scss/mixins/_float.scss +14 -0
- data/_sass/bootstrap/scss/mixins/_forms.scss +193 -0
- data/_sass/bootstrap/scss/mixins/_gradients.scss +45 -0
- data/_sass/bootstrap/scss/mixins/_grid-framework.scss +66 -0
- data/_sass/bootstrap/scss/mixins/_grid.scss +51 -0
- data/_sass/bootstrap/scss/mixins/_hover.scss +37 -0
- data/_sass/bootstrap/scss/mixins/_image.scss +36 -0
- data/_sass/bootstrap/scss/mixins/_list-group.scss +21 -0
- data/_sass/bootstrap/scss/mixins/_lists.scss +7 -0
- data/_sass/bootstrap/scss/mixins/_nav-divider.scss +10 -0
- data/_sass/bootstrap/scss/mixins/_pagination.scss +22 -0
- data/_sass/bootstrap/scss/mixins/_reset-text.scss +17 -0
- data/_sass/bootstrap/scss/mixins/_resize.scss +6 -0
- data/_sass/bootstrap/scss/mixins/_screen-reader.scss +33 -0
- data/_sass/bootstrap/scss/mixins/_size.scss +7 -0
- data/_sass/bootstrap/scss/mixins/_table-row.scss +39 -0
- data/_sass/bootstrap/scss/mixins/_text-emphasis.scss +16 -0
- data/_sass/bootstrap/scss/mixins/_text-hide.scss +11 -0
- data/_sass/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- data/_sass/bootstrap/scss/mixins/_transition.scss +16 -0
- data/_sass/bootstrap/scss/mixins/_visibility.scss +8 -0
- data/_sass/bootstrap/scss/utilities/_align.scss +8 -0
- data/_sass/bootstrap/scss/utilities/_background.scss +19 -0
- data/_sass/bootstrap/scss/utilities/_borders.scss +75 -0
- data/_sass/bootstrap/scss/utilities/_clearfix.scss +3 -0
- data/_sass/bootstrap/scss/utilities/_display.scss +26 -0
- data/_sass/bootstrap/scss/utilities/_embed.scss +39 -0
- data/_sass/bootstrap/scss/utilities/_flex.scss +51 -0
- data/_sass/bootstrap/scss/utilities/_float.scss +11 -0
- data/_sass/bootstrap/scss/utilities/_overflow.scss +5 -0
- data/_sass/bootstrap/scss/utilities/_position.scss +32 -0
- data/_sass/bootstrap/scss/utilities/_screenreaders.scss +11 -0
- data/_sass/bootstrap/scss/utilities/_shadows.scss +6 -0
- data/_sass/bootstrap/scss/utilities/_sizing.scss +20 -0
- data/_sass/bootstrap/scss/utilities/_spacing.scss +73 -0
- data/_sass/bootstrap/scss/utilities/_stretched-link.scss +19 -0
- data/_sass/bootstrap/scss/utilities/_text.scss +72 -0
- data/_sass/bootstrap/scss/utilities/_visibility.scss +13 -0
- data/_sass/bootstrap/scss/vendor/_rfs.scss +204 -0
- data/_sass/bootswatch/dist/cerulean/_bootswatch.scss +103 -0
- data/_sass/bootswatch/dist/cerulean/_variables.scss +57 -0
- data/_sass/bootswatch/dist/spacelab/_bootswatch.scss +102 -0
- data/_sass/bootswatch/dist/spacelab/_variables.scss +63 -0
- data/_sass/bootswatch/dist/united/_bootswatch.scss +26 -0
- data/_sass/bootswatch/dist/united/_variables.scss +53 -0
- data/_sass/lone-wolf-theme/_default-layout.scss +24 -0
- data/_sass/lone-wolf-theme/_extend-bs4.scss +212 -0
- data/_sass/lone-wolf-theme/_override-bs4.scss +2 -0
- data/_sass/lone-wolf-theme/_syntax.scss +396 -0
- data/_sass/lone-wolf-theme/_variables.scss +24 -0
- data/assets/css/main.scss +16 -0
- data/assets/images/favicons/android-chrome-192x192.png +0 -0
- data/assets/images/favicons/android-chrome-512x512.png +0 -0
- data/assets/images/favicons/apple-touch-icon.png +0 -0
- data/assets/images/favicons/browserconfig.xml +9 -0
- data/assets/images/favicons/favicon-16x16.png +0 -0
- data/assets/images/favicons/favicon-32x32.png +0 -0
- data/assets/images/favicons/favicon.ico +0 -0
- data/assets/images/favicons/mstile-144x144.png +0 -0
- data/assets/images/favicons/mstile-150x150.png +0 -0
- data/assets/images/favicons/mstile-310x150.png +0 -0
- data/assets/images/favicons/mstile-310x310.png +0 -0
- data/assets/images/favicons/mstile-70x70.png +0 -0
- data/assets/images/favicons/safari-pinned-tab.svg +8283 -0
- data/assets/images/favicons/site.webmanifest +19 -0
- data/assets/images/lwt-logo-v1.svg +337 -0
- data/assets/js/_main.js +20 -0
- data/assets/js/bootstrap/bootstrap.min.js +7 -0
- data/assets/js/bootstrap/bootstrap.min.js.map +1 -0
- data/assets/js/main.min.js +8 -0
- metadata +362 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{%- assign action_btn = include.action_btn -%}
|
|
2
|
+
{%- assign dropdown = include.dropdown -%}
|
|
3
|
+
{%- assign dropdown_items = include.dropdown_items -%}
|
|
4
|
+
|
|
5
|
+
<div class="btn-group animated rubberBand delay-1s" role="group" aria-label="Button group with nested dropdown">
|
|
6
|
+
<a class="{{ action_btn.class }}" href="{{ action_btn.url }}">
|
|
7
|
+
<i class="{{ action_btn.fa_icon }}"></i>
|
|
8
|
+
<span class="pl-1">{{ action_btn.label }}</span>
|
|
9
|
+
</a>
|
|
10
|
+
{%- if dropdown -%}
|
|
11
|
+
<div class="btn-group" role="group">
|
|
12
|
+
<button id="btnGroupDrop2" type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown"
|
|
13
|
+
aria-haspopup="true" aria-expanded="false"></button>
|
|
14
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="btnGroupDrop2">
|
|
15
|
+
{%- for item in dropdown_items -%}
|
|
16
|
+
<a class="dropdown-item" href="{{ item.url }}">
|
|
17
|
+
<i class="{{ item.fa_icon }}"></i>
|
|
18
|
+
<span class="pl-1">{{ item.label }}</span>
|
|
19
|
+
</a>
|
|
20
|
+
{%- endfor -%}
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
{%- endif -%}
|
|
24
|
+
</div>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- site scripts start -->
|
|
2
|
+
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
|
|
3
|
+
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
|
|
4
|
+
crossorigin="anonymous"></script>
|
|
5
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
|
|
6
|
+
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
|
|
7
|
+
crossorigin="anonymous"></script>
|
|
8
|
+
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
|
|
9
|
+
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
|
|
10
|
+
crossorigin="anonymous"></script>
|
|
11
|
+
|
|
12
|
+
<script defer src="https://use.fontawesome.com/releases/v5.7.2/js/all.js"
|
|
13
|
+
integrity="sha384-0pzryjIRos8mFBWMzSSZApWtPl/5++eIfzYmTgBBmXYdhvxPc+XcFEk+zJwDgWbP"
|
|
14
|
+
crossorigin="anonymous"></script>
|
|
15
|
+
|
|
16
|
+
<script src="{{ '/assets/js/main.min.js' | relative_url }}"></script>
|
|
17
|
+
|
|
18
|
+
{% include analytics.html %}
|
|
19
|
+
{% include search-providers/scripts.html %}
|
|
20
|
+
{% include comments-providers/scripts.html %}
|
|
21
|
+
<!-- site scripts end -->
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
(function () {
|
|
3
|
+
var cx = '{{ site.google.search_engine_id }}';
|
|
4
|
+
var gcse = document.createElement('script');
|
|
5
|
+
gcse.type = 'text/javascript';
|
|
6
|
+
gcse.async = true;
|
|
7
|
+
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
|
|
8
|
+
var s = document.getElementsByTagName('script')[0];
|
|
9
|
+
s.parentNode.insertBefore(gcse, s);
|
|
10
|
+
})();
|
|
11
|
+
|
|
12
|
+
function googleCustomSearchExecute() {
|
|
13
|
+
var input = document.getElementById('lwt-form-search-input');
|
|
14
|
+
var element = google.search.cse.element.getElement('searchresults-only0');
|
|
15
|
+
if (input.value == '') {
|
|
16
|
+
element.clearAllResults();
|
|
17
|
+
} else {
|
|
18
|
+
element.execute(input.value);
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
{% if site.google.instant_search %}
|
|
24
|
+
$(document).ready(function () {
|
|
25
|
+
$('input#lwt-form-search-input').on('keyup', function () {
|
|
26
|
+
googleCustomSearchExecute();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
{% endif %}
|
|
30
|
+
</script>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{%- assign search_provider = site.search_provider | default: "google" -%}
|
|
2
|
+
{%- case search_provider -%}
|
|
3
|
+
{%- when "google" -%}
|
|
4
|
+
<form class="form-inline border rounded" onsubmit="return googleCustomSearchExecute();">
|
|
5
|
+
<input class="form-control bg-transparent border-0 text-white" type="search" placeholder="Search..."
|
|
6
|
+
aria-label="Search" id="lwt-form-search-input">
|
|
7
|
+
<button class="btn btn-primary" type="submit">Search</button>
|
|
8
|
+
</form>
|
|
9
|
+
<div id="results" class="results">
|
|
10
|
+
<gcse:searchresults-only></gcse:searchresults-only>
|
|
11
|
+
</div>
|
|
12
|
+
{%- endcase -%}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{%- assign share_title = "Share on" -%}
|
|
2
|
+
{%- assign linkedin = site.data.blog.social_share[0] -%}
|
|
3
|
+
{%- assign twitter = site.data.blog.social_share[1] -%}
|
|
4
|
+
|
|
5
|
+
<h4>{{ share_title }}</h4>
|
|
6
|
+
<a href="https://twitter.com/intent/tweet?{% if twitter.username %}via={{ twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn-social btn-twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ share_title }} Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
|
|
7
|
+
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url | url_encode }}" class="btn btn-social btn-linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ share_title }} LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
|
data/_includes/toc.html
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{% capture tocWorkspace %}
|
|
2
|
+
{% comment %}
|
|
3
|
+
Version 1.0.7
|
|
4
|
+
https://github.com/allejo/jekyll-toc
|
|
5
|
+
|
|
6
|
+
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
|
|
7
|
+
|
|
8
|
+
Usage:
|
|
9
|
+
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
|
|
10
|
+
|
|
11
|
+
Parameters:
|
|
12
|
+
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
|
|
13
|
+
|
|
14
|
+
Optional Parameters:
|
|
15
|
+
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
|
|
16
|
+
* class (string) : '' - a CSS class assigned to the TOC
|
|
17
|
+
* id (string) : '' - an ID to assigned to the TOC
|
|
18
|
+
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
|
|
19
|
+
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
|
|
20
|
+
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
|
|
21
|
+
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
|
|
22
|
+
* baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
|
|
23
|
+
* anchor_class (string) : '' - add custom class(es) for each anchor element
|
|
24
|
+
|
|
25
|
+
Output:
|
|
26
|
+
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
|
|
27
|
+
generate the table of contents and will NOT output the markdown given to it
|
|
28
|
+
{% endcomment %}
|
|
29
|
+
|
|
30
|
+
{% capture my_toc %}{% endcapture %}
|
|
31
|
+
{% assign orderedList = include.ordered | default: false %}
|
|
32
|
+
{% assign minHeader = include.h_min | default: 1 %}
|
|
33
|
+
{% assign maxHeader = include.h_max | default: 6 %}
|
|
34
|
+
{% assign nodes = include.html | split: '<h' %}
|
|
35
|
+
{% assign firstHeader = true %}
|
|
36
|
+
|
|
37
|
+
{% capture listModifier %}{% if orderedList %}1.{% else %}-{% endif %}{% endcapture %}
|
|
38
|
+
|
|
39
|
+
{% for node in nodes %}
|
|
40
|
+
{% if node == "" %}
|
|
41
|
+
{% continue %}
|
|
42
|
+
{% endif %}
|
|
43
|
+
|
|
44
|
+
{% assign headerLevel = node | replace: '"', '' | slice: 0, 1 | times: 1 %}
|
|
45
|
+
|
|
46
|
+
{% if headerLevel < minHeader or headerLevel > maxHeader %}
|
|
47
|
+
{% continue %}
|
|
48
|
+
{% endif %}
|
|
49
|
+
|
|
50
|
+
{% if firstHeader %}
|
|
51
|
+
{% assign firstHeader = false %}
|
|
52
|
+
{% assign minHeader = headerLevel %}
|
|
53
|
+
{% endif %}
|
|
54
|
+
|
|
55
|
+
{% assign indentAmount = headerLevel | minus: minHeader | add: 1 %}
|
|
56
|
+
{% assign _workspace = node | split: '</h' %}
|
|
57
|
+
|
|
58
|
+
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
|
|
59
|
+
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
|
|
60
|
+
{% assign html_id = _idWorkspace[0] %}
|
|
61
|
+
|
|
62
|
+
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
|
|
63
|
+
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
|
|
64
|
+
{% assign html_class = _classWorkspace[0] %}
|
|
65
|
+
|
|
66
|
+
{% if html_class contains "no_toc" %}
|
|
67
|
+
{% continue %}
|
|
68
|
+
{% endif %}
|
|
69
|
+
|
|
70
|
+
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
|
|
71
|
+
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
|
|
72
|
+
|
|
73
|
+
{% assign space = '' %}
|
|
74
|
+
{% for i in (1..indentAmount) %}
|
|
75
|
+
{% assign space = space | prepend: ' ' %}
|
|
76
|
+
{% endfor %}
|
|
77
|
+
|
|
78
|
+
{% unless include.item_class == blank %}
|
|
79
|
+
{% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
|
|
80
|
+
{% endunless %}
|
|
81
|
+
|
|
82
|
+
{% capture my_toc %}{{ my_toc }}
|
|
83
|
+
{{ space }}{{ listModifier }} {{ listItemClass }} [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %}
|
|
84
|
+
{% endfor %}
|
|
85
|
+
|
|
86
|
+
{% if include.class %}
|
|
87
|
+
{% capture my_toc %}{:.{{ include.class }}}
|
|
88
|
+
{{ my_toc | lstrip }}{% endcapture %}
|
|
89
|
+
{% endif %}
|
|
90
|
+
|
|
91
|
+
{% if include.id %}
|
|
92
|
+
{% capture my_toc %}{: #{{ include.id }}}
|
|
93
|
+
{{ my_toc | lstrip }}{% endcapture %}
|
|
94
|
+
{% endif %}
|
|
95
|
+
{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Jekyll layout that compresses HTML
|
|
3
|
+
# v3.0.1
|
|
4
|
+
# http://jch.penibelst.de/
|
|
5
|
+
# © 2014–2015 Anatol Broder
|
|
6
|
+
# MIT License
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
{% capture _LINE_FEED %}
|
|
10
|
+
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% assign _lastchar = _pres.last | split: "" | last %}{% assign _outerloop = forloop %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if forloop.last and _lastchar == _LINE_FEED %}{% unless _outerloop.last %}{{ _LINE_FEED }}{% endunless %}{% continue %}{% endif %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
#layout: compress # enable only if needed
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<!DOCTYPE html>
|
|
6
|
+
<html>
|
|
7
|
+
|
|
8
|
+
{% include head.html %}
|
|
9
|
+
|
|
10
|
+
<body>
|
|
11
|
+
<!-- page container -->
|
|
12
|
+
<div class="page-container">
|
|
13
|
+
<!-- page header -->
|
|
14
|
+
{% include header.html %}
|
|
15
|
+
<!-- page content -->
|
|
16
|
+
<main class="page-content" role="main">
|
|
17
|
+
{{ content }}
|
|
18
|
+
</main>
|
|
19
|
+
<!-- page footer -->
|
|
20
|
+
{% include footer.html %}
|
|
21
|
+
</div>
|
|
22
|
+
{% include scripts.html %}
|
|
23
|
+
</body>
|
|
24
|
+
|
|
25
|
+
</html>
|
data/_layouts/home.html
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
{%- assign action_btn = page.action_btn[0] -%}
|
|
6
|
+
{%- assign dropdown = page.action_btn[1].dropdown -%}
|
|
7
|
+
{%- assign dropdown_items = page.action_btn[2].dropdown_items -%}
|
|
8
|
+
|
|
9
|
+
<div class="home-page">
|
|
10
|
+
<!-- home page header -->
|
|
11
|
+
<section class="home-page-header">
|
|
12
|
+
<div class="container text-center">
|
|
13
|
+
<h1 class="animated fadeInDownBig">{{ page.title | default: 'HOME' }}</h1>
|
|
14
|
+
<p class="lead">{{ page.excerpt | default: 'Excerpt' }}</p>
|
|
15
|
+
|
|
16
|
+
{%- if page.action -%}
|
|
17
|
+
{%- include home-action-btn.html action_btn=action_btn dropdown=dropdown dropdown_items=dropdown_items -%}
|
|
18
|
+
{%- endif -%}
|
|
19
|
+
</div>
|
|
20
|
+
</section>
|
|
21
|
+
<!-- home page features -->
|
|
22
|
+
<section class="home-page-features">
|
|
23
|
+
<div class="container">
|
|
24
|
+
{% if page.feature_rows %}
|
|
25
|
+
<div class="row">
|
|
26
|
+
{% for f_row in page.feature_rows %}
|
|
27
|
+
<!-- TODO use animate.css to animate on hover -->
|
|
28
|
+
<div class="col-md-4 p-0">
|
|
29
|
+
<a href="{{ f_row.url | relative_url }}">
|
|
30
|
+
<div class="card border-success m-3">
|
|
31
|
+
{% if f_row.img_path %}
|
|
32
|
+
{% capture img_path %}
|
|
33
|
+
{{ '/assets/images/' | relative_url | append: f_row.img_path }}
|
|
34
|
+
{% endcapture %}
|
|
35
|
+
{% endif %}
|
|
36
|
+
|
|
37
|
+
{% if f_row.img_alt %}
|
|
38
|
+
{% capture img_alt %}
|
|
39
|
+
{{ f_row.img_alt | default: 'Feature image' }}
|
|
40
|
+
{% endcapture %}
|
|
41
|
+
{% endif %}
|
|
42
|
+
|
|
43
|
+
<div class="card-header">
|
|
44
|
+
<h2 class="m-0">{{ f_row.title | strip | strip_html | strip_newlines | truncate: 10 }}</h2>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
{% if img_path %}
|
|
48
|
+
<img class="img-fluid" src="{{ img_path | strip }}" alt="{{ img_alt | strip }}">
|
|
49
|
+
{% endif %}
|
|
50
|
+
|
|
51
|
+
<div class="card-body">
|
|
52
|
+
<p class="card-text">{{ f_row.excerpt | strip | strip_html | strip_newlines | truncate: 200 }}</p>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
</a>
|
|
56
|
+
</div>
|
|
57
|
+
{% endfor %}
|
|
58
|
+
</div>
|
|
59
|
+
{% endif%}
|
|
60
|
+
</div>
|
|
61
|
+
</section>
|
|
62
|
+
<!-- home page article -->
|
|
63
|
+
<section class="home-page-article">
|
|
64
|
+
<div class="container">
|
|
65
|
+
<article>
|
|
66
|
+
{{ content }}
|
|
67
|
+
</article>
|
|
68
|
+
</div>
|
|
69
|
+
</section>
|
|
70
|
+
</div>
|
data/_layouts/list.html
ADDED
data/_layouts/page.html
ADDED
data/_layouts/post.html
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
{% if page.header.teaser %}
|
|
6
|
+
{% capture header_img %}
|
|
7
|
+
{{ '/assets/images/' | relative_url | append: page.header.teaser }}
|
|
8
|
+
{% endcapture %}
|
|
9
|
+
|
|
10
|
+
{% capture h_img_alt %}
|
|
11
|
+
{{ page.header.alt | default: page.title }}
|
|
12
|
+
{% endcapture %}
|
|
13
|
+
|
|
14
|
+
{% capture img_cap %}
|
|
15
|
+
{{ page.header.caption | default: '' }}
|
|
16
|
+
{% endcapture %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
|
|
19
|
+
{% assign blog_author = site.data.blog.authors[0] %}
|
|
20
|
+
{% capture bl_au_avatar %}
|
|
21
|
+
{{ '/assets/images/' | relative_url | append: blog_author.avatar }}
|
|
22
|
+
{% endcapture %}
|
|
23
|
+
|
|
24
|
+
{% capture bl_au_av_alt %}
|
|
25
|
+
{{ blog_author.name }} avatar.
|
|
26
|
+
{% endcapture %}
|
|
27
|
+
|
|
28
|
+
<section class="container mt-3 blog-post">
|
|
29
|
+
<div class="row">
|
|
30
|
+
<div class="col-md-8 pb-3">
|
|
31
|
+
{% if page.show_hero %}
|
|
32
|
+
<!-- post hero -->
|
|
33
|
+
<figure class="figure">
|
|
34
|
+
<img class="img-fluid shadow rounded mb-2 blog-post-hero-img" src="{{ header_img | strip }}"
|
|
35
|
+
alt="{{ h_img_alt | strip }}">
|
|
36
|
+
<figcaption class="figure-caption text-center">{{ img_cap | strip }}</figcaption>
|
|
37
|
+
</figure>
|
|
38
|
+
{% endif %}
|
|
39
|
+
<!-- post title -->
|
|
40
|
+
<h1>{{ page.title }}</h1>
|
|
41
|
+
<p class="small font-italic text-secondary">{{ page.date | date: "%b %-d, %Y" }}</p>
|
|
42
|
+
{% if page.show_author %}
|
|
43
|
+
<!-- post author, share -->
|
|
44
|
+
<div class="row align-items-center py-2 border-top border-bottom blog-post-author">
|
|
45
|
+
<div class="col-auto pr-0 pb-1">
|
|
46
|
+
<img src="{{ bl_au_avatar | strip }}" alt="{{ bl_au_av_alt | strip }}"
|
|
47
|
+
class="rounded-circle shadow-sm blog-post-author-avatar ">
|
|
48
|
+
</div>
|
|
49
|
+
<div class="col pr-0 pb-1">
|
|
50
|
+
<p class="blog-post-author-name p-0 m-0">{{ blog_author.name }}</p>
|
|
51
|
+
<p class="blog-post-author-headline p-0 m-0">{{ blog_author.headline }}</p>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="col-auto justify-content-end blog-post-author-follow">
|
|
54
|
+
<div class="dropdown">
|
|
55
|
+
<button class="btn btn-outline-info dropdown-toggle" type="button" id="followMenuButton"
|
|
56
|
+
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Follow</button>
|
|
57
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="followMenuButton">
|
|
58
|
+
{% for follow in blog_author.follow %}
|
|
59
|
+
<a class="dropdown-item pb-2 text-info" href="{{ follow.url }}"><i
|
|
60
|
+
class="{{ follow.icon }}"></i>{{ follow.label }}</a>
|
|
61
|
+
{% endfor %}
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
{% endif %}
|
|
67
|
+
{% if page.show_toc %}
|
|
68
|
+
<!-- post TOC -->
|
|
69
|
+
<nav class="card mt-3 d-inline-block shadow-sm rounded">
|
|
70
|
+
<div class="card-header bg-info text-white"><i class="fas fa-list"></i><span class="pl-1">Contents</span>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="blog-post-toc pr-3">
|
|
73
|
+
{% include toc.html html=content %}
|
|
74
|
+
</div>
|
|
75
|
+
</nav>
|
|
76
|
+
{% endif %}
|
|
77
|
+
<!-- Post content -->
|
|
78
|
+
<article class="mt-3 blog-post-article">
|
|
79
|
+
{{ content }}
|
|
80
|
+
</article>
|
|
81
|
+
{% if page.share %}
|
|
82
|
+
<div class="blog-post-social-share">
|
|
83
|
+
{% include social-share.html %}
|
|
84
|
+
</div>
|
|
85
|
+
{% endif %}
|
|
86
|
+
</div>
|
|
87
|
+
<!-- blog post sidebar -->
|
|
88
|
+
<div class="col-md-4 blog-post-sidebar">
|
|
89
|
+
{% include blog-post-sidebar.html %}
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="row mt-3">
|
|
93
|
+
<div class="col-md-8">
|
|
94
|
+
{% if page.show_comments %}
|
|
95
|
+
<!-- Post comments -->
|
|
96
|
+
{%- include comments.html -%}
|
|
97
|
+
{% endif %}
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
</section>
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The below code is modified heavily for BS4 by `manid2`
|
|
3
|
+
* https://github.com/lipis/bootstrap-social
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@mixin btn-social($color-bg) {
|
|
7
|
+
background-color: $color-bg;
|
|
8
|
+
@include button-variant($color-bg, $color-bg, mix($gray-800, $color-bg, 20%));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.btn-adn {
|
|
12
|
+
@include btn-social(#d87a68);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.btn-bitbucket {
|
|
16
|
+
@include btn-social(#205081);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.btn-dropbox {
|
|
20
|
+
@include btn-social(#1087dd);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.btn-facebook {
|
|
24
|
+
@include btn-social(#3b5998);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.btn-flickr {
|
|
28
|
+
@include btn-social(#ff0084);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.btn-foursquare {
|
|
32
|
+
@include btn-social(#f94877);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.btn-github {
|
|
36
|
+
@include btn-social(#444444);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.btn-google {
|
|
40
|
+
@include btn-social(#dd4b39);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.btn-instagram {
|
|
44
|
+
@include btn-social(#3f729b);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.btn-linkedin {
|
|
48
|
+
@include btn-social(#007bb6);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.btn-microsoft {
|
|
52
|
+
@include btn-social(#2672ec);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.btn-odnoklassniki {
|
|
56
|
+
@include btn-social(#f4731c);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.btn-openid {
|
|
60
|
+
@include btn-social(#f7931e);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.btn-pinterest {
|
|
64
|
+
@include btn-social(#cb2027);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.btn-reddit {
|
|
68
|
+
@include btn-social(#eff7ff);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.btn-soundcloud {
|
|
72
|
+
@include btn-social(#ff5500);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.btn-tumblr {
|
|
76
|
+
@include btn-social(#2c4762);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.btn-twitter {
|
|
80
|
+
@include btn-social(#55acee);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.btn-vimeo {
|
|
84
|
+
@include btn-social(#1ab7ea);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.btn-vk {
|
|
88
|
+
@include btn-social(#587ea3);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.btn-yahoo {
|
|
92
|
+
@include btn-social(#720e9e);
|
|
93
|
+
}
|