jmblog-theme 0.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_authors/john_doe.md +15 -0
- data/_config.yml +98 -0
- data/_data/navigation.yml +8 -0
- data/_includes/{JB → JB.old}/analytics +0 -0
- data/_includes/{JB → JB.old}/analytics-providers/getclicky +0 -0
- data/_includes/{JB → JB.old}/analytics-providers/mixpanel +0 -0
- data/_includes/{JB → JB.old}/analytics-providers/piwik +0 -0
- data/_includes/{JB → JB.old}/categories_list +0 -0
- data/_includes/{JB → JB.old}/comments +0 -0
- data/_includes/{JB → JB.old}/comments-providers/disqus +0 -0
- data/_includes/{JB → JB.old}/comments-providers/facebook +0 -0
- data/_includes/{JB → JB.old}/comments-providers/intensedebate +0 -0
- data/_includes/{JB → JB.old}/comments-providers/livefyre +0 -0
- data/_includes/{JB → JB.old}/liquid_raw +0 -0
- data/_includes/{JB → JB.old}/pages_list +0 -0
- data/_includes/{JB → JB.old}/posts_collate +0 -0
- data/_includes/{JB → JB.old}/setup +0 -0
- data/_includes/{JB → JB.old}/sharing +0 -0
- data/_includes/{JB → JB.old}/tags_list +0 -0
- data/_includes/{JB → JB.old}/urlset +0 -0
- data/_includes/themes/jmblog-theme/bio.html +45 -0
- data/_includes/themes/jmblog-theme/components/article_highlight.html +48 -0
- data/_includes/themes/jmblog-theme/components/author.html +45 -0
- data/_includes/themes/jmblog-theme/components/comment.html +79 -0
- data/_includes/themes/jmblog-theme/components/comment_form.html +87 -0
- data/_includes/themes/jmblog-theme/components/comments.html +41 -0
- data/_includes/themes/jmblog-theme/components/comments.html.orig +19 -0
- data/_includes/themes/jmblog-theme/components/footer.html +9 -13
- data/_includes/themes/jmblog-theme/components/head.html +11 -4
- data/_includes/themes/jmblog-theme/components/img.html +12 -0
- data/_includes/themes/jmblog-theme/components/lazyload.html +17 -0
- data/_includes/themes/jmblog-theme/components/navigation.html +66 -7
- data/_includes/themes/jmblog-theme/components/pagination_links.html +39 -0
- data/_includes/themes/jmblog-theme/components/reading-time.html +6 -0
- data/_includes/themes/jmblog-theme/components/related_articles.html +72 -0
- data/_includes/themes/jmblog-theme/components/share_buttons.html +20 -0
- data/_includes/themes/jmblog-theme/components/social_buttons_small.html +38 -0
- data/_includes/themes/jmblog-theme/error.html +2 -2
- data/_includes/themes/jmblog-theme/home.html +94 -0
- data/_includes/themes/jmblog-theme/page.html +19 -12
- data/_includes/themes/jmblog-theme/post.html +61 -44
- data/_includes/themes/jmblog-theme/theme/{error.html → _old_error.html} +1 -1
- data/_includes/themes/jmblog-theme/theme/default.html +1 -0
- data/_includes/themes/jmblog-theme/theme/maintenance.html +1 -0
- data/_layouts/bio.html +11 -0
- data/_layouts/default.html +3 -2
- data/_layouts/error.html +7 -3
- data/_layouts/home.html +11 -0
- data/_layouts/maintenance.html +11 -0
- data/_layouts/page.html +1 -1
- data/_layouts/post.html +1 -1
- data/_pages/404.md +11 -0
- data/_pages/contact.md +7 -0
- data/_posts/2020-07-06-managing-and-leading-remote-teams-in-our-new-normal.md +34 -0
- data/assets/img/chris-montgomery-smgTvepind4-unsplash.jpg +0 -0
- data/assets/img/ph.png +0 -0
- data/assets/img/user-circle-solid.svg +1 -0
- data/assets/js/default.bundle.js +2 -0
- data/assets/js/default.bundle.js.br +0 -0
- data/assets/js/default.js.map +1 -0
- data/assets/js/maintenance.bundle.js +2 -0
- data/assets/js/maintenance.bundle.js.br +0 -0
- data/assets/js/maintenance.js.map +1 -0
- data/assets/js/vendor.bundle.js +2 -0
- data/assets/js/vendor.bundle.js.br +0 -0
- data/assets/js/vendor.js.map +1 -0
- data/assets/sass/base.scss +84 -0
- data/assets/sass/modules/card.scss +55 -0
- data/assets/sass/modules/navbar.scss +49 -0
- data/assets/sass/theme/_all.scss +2 -0
- data/assets/sass/theme/brand.scss +56 -0
- data/assets/sass/theme/lazyload.scss +10 -0
- data/assets/sass/utilities/_all.sass +2 -0
- data/assets/sass/utilities/breakpoints.scss +25 -0
- data/assets/sass/utilities/helpers.scss +48 -0
- data/index.html +7 -0
- metadata +70 -32
- data/_includes/themes/jmblog-theme/components/share_buttons +0 -19
- data/_includes/themes/jmblog-theme/theme/holding.html +0 -53
- data/assets/img/balloon-3206530_1920.jpg +0 -0
- data/assets/img/head-shot-square.jpg +0 -0
- data/assets/js/error.bundle.js +0 -2
- data/assets/js/error.bundle.js.br +0 -0
- data/assets/js/error.js.map +0 -1
- data/assets/js/holding.bundle.js +0 -2
- data/assets/js/holding.bundle.js.br +0 -0
- data/assets/js/holding.js.map +0 -1
@@ -0,0 +1,41 @@
|
|
1
|
+
<section class="comments" id="comment-section">
|
2
|
+
{% if site.data.comments[page.slug] %}
|
3
|
+
<!-- Existing comments -->
|
4
|
+
<div class="comments__existing">
|
5
|
+
<h4 class="title is-4">Comments</h4>
|
6
|
+
{% assign comments = site.data.comments[page.slug] | where_exp: "item", "item.replying_to_uid == ''" %}
|
7
|
+
|
8
|
+
{% assign comments_by_date = comments | sort: 'date' | reverse %}
|
9
|
+
<!-- List main comments in reverse date order, newest first. List replies in date order, oldest first. -->
|
10
|
+
{% for comment in comments_by_date %}
|
11
|
+
{%- assign email = comment.email %}
|
12
|
+
{%- assign name = comment.name %}
|
13
|
+
{%- assign url = comment.url %}
|
14
|
+
{%- assign date = comment.date %}
|
15
|
+
{%- assign message = comment.message %}
|
16
|
+
{%- assign uid = comment._id %}
|
17
|
+
{% include themes/jmblog-theme/components/comment.html is_reply=false uid=uid replying_to=0 email=email name=name url=url date=date
|
18
|
+
message=message uid=uid %}
|
19
|
+
{% endfor %}
|
20
|
+
</div>
|
21
|
+
{% endif %}
|
22
|
+
|
23
|
+
{% unless page.comments == "closed" %}
|
24
|
+
<!-- New comment form -->
|
25
|
+
<div id="respond" class="comment__new">
|
26
|
+
{% capture first_comment %}{% if comments.size < 1 %}true{% else %}false{% endif %}{% endcapture %}
|
27
|
+
{% include themes/jmblog-theme/components/comment_form.html first_comment=first_comment %}
|
28
|
+
</div>
|
29
|
+
{% endunless %}
|
30
|
+
</section>
|
31
|
+
|
32
|
+
<script async defer src="https://www.google.com/recaptcha/api.js" ></script>
|
33
|
+
|
34
|
+
{%- comment %} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> {% endcomment -%}
|
35
|
+
{%- comment %} <script src="{{ '/assets/main.js' | relative_url }}"></script> {% endcomment -%}
|
36
|
+
{%- comment %} <script src="https://www.google.com/recaptcha/api.js"></script> {% endcomment -%}
|
37
|
+
|
38
|
+
{% comment %}
|
39
|
+
https://github.com/travisdowns/travisdowns.github.io/tree/master/_includes
|
40
|
+
https://travisdowns.github.io/blog/2020/02/05/now-with-comments.html#fnref:v3
|
41
|
+
{% endcomment %}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
{% if page.comments %}
|
3
|
+
<div id="disqus_thread"></div>
|
4
|
+
<script>
|
5
|
+
|
6
|
+
var disqus_config = function () {
|
7
|
+
this.page.url = "{{ page.url | prepend: site.url }}"; // Replace PAGE_URL with your page's canonical URL variable
|
8
|
+
this.page.identifier = "{{ page.slug}}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
|
9
|
+
};
|
10
|
+
(function() { // DON'T EDIT BELOW THIS LINE
|
11
|
+
var d = document, s = d.createElement('script');
|
12
|
+
s.src = 'https://jmoxon.disqus.com/embed.js';
|
13
|
+
s.setAttribute('data-timestamp', +new Date());
|
14
|
+
(d.head || d.body).appendChild(s);
|
15
|
+
})();
|
16
|
+
</script>
|
17
|
+
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
|
18
|
+
|
19
|
+
{% endif %}
|
@@ -2,22 +2,18 @@
|
|
2
2
|
<footer class="footer">
|
3
3
|
<div class="container has-text-centered">
|
4
4
|
<p>
|
5
|
-
The source code for this website is licensed by
|
6
|
-
<a href="https://opensource.org/licenses/mit-license.php">MIT</a> and can be found
|
7
|
-
<a href="https://github.com/johnmoxon/johnmoxon.github.io/">
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
The website content by <strong><span rel="cc:attributionName">John Moxon</span></strong> is licensed under
|
5
|
+
The source code for this website is licensed by
|
6
|
+
<a href="https://opensource.org/licenses/mit-license.php">MIT</a> and can be found
|
7
|
+
<a href="https://github.com/johnmoxon/johnmoxon.github.io/">here on github <i class="fab fa-github has-text-black"></i></a><br>
|
8
|
+
<span xmlns:dct="https://purl.org/dc/terms/"
|
9
|
+
xmlns:cc="https://creativecommons.org/ns#"
|
10
|
+
class="license-text">
|
11
|
+
The website content by <strong><span rel="cc:attributionName">John Moxon</span></strong> is licensed under
|
13
12
|
<a href="https://creativecommons.org/licenses/by/4.0">
|
14
|
-
CC BY 4.0
|
13
|
+
CC BY 4.0
|
15
14
|
<img
|
16
15
|
style="height:22px!important;margin-left: 3px;vertical-align:text-bottom;"
|
17
|
-
src="https://
|
18
|
-
<img
|
19
|
-
style="height:22px!important;margin-left: 3px;vertical-align:text-bottom;"
|
20
|
-
src="https://search.creativecommons.org/static/img/cc-by_icon.svg" />
|
16
|
+
src="https://creativecommons.org/wp-content/uploads/2016/06/brain.png" height="22px" />
|
21
17
|
</a>
|
22
18
|
</span>
|
23
19
|
</p>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
1
|
<title>{{ page.title }} | {{site.title}}</title>
|
4
2
|
<meta charset="utf-8">
|
5
3
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
4
|
+
{% comment %} <meta name="viewport" content="width=device-width, initial-scale=1"> {% endcomment %}
|
5
|
+
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0" />
|
6
|
+
<meta name="apple-mobile-web-app-capable" content="yes" />
|
7
7
|
|
8
8
|
{% include themes/jmblog-theme/components/analytics/googletagmanager_head.html %}
|
9
9
|
|
@@ -29,8 +29,15 @@
|
|
29
29
|
src: local('Montserrat Regular'), local('Montserrat-Regular'), url(/assets/fonts/Montserrat/Montserrat-Regular.woff2) format('woff2');
|
30
30
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
31
31
|
}
|
32
|
+
|
33
|
+
.is-family-secondary {
|
34
|
+
font-family: "Cardo","Baskerville","Calibri",serif !important;
|
35
|
+
}
|
36
|
+
body, button, input, select, textarea {
|
37
|
+
font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
|
38
|
+
}
|
32
39
|
</style>
|
33
|
-
<script
|
40
|
+
<script async src="https://kit.fontawesome.com/f74caf9b24.js" crossorigin="anonymous"></script>
|
34
41
|
|
35
42
|
<!-- Meta tags -->
|
36
43
|
<meta name="description"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
{% capture img_attrs %}
|
2
|
+
?nf_resize={{ include.mode | default: 'fit' }}
|
3
|
+
&w={{ include.w | default: 790 }}
|
4
|
+
{% if include.h %}&h={{ include.h }}{% endif %}
|
5
|
+
{% endcapture %}
|
6
|
+
<figure class="image{{ include.res | default: 'is-3by2' | prepend: ' ' }}">
|
7
|
+
<img
|
8
|
+
data-src="{{ include.src | default: '/assets/img/ph.png' }}{{ img_attrs | strip }}"
|
9
|
+
data-lowsrc="{{ include.src | default: '/assets/img/ph.png' }}?nf_resize={{ include.mode | default: 'fit' }}&w=100"
|
10
|
+
alt="{{ include.alt | default: page.title }}"
|
11
|
+
class="lazyload blur-up">
|
12
|
+
</figure>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<script>
|
2
|
+
if ('loading' in HTMLImageElement.prototype) {
|
3
|
+
const images = document.querySelectorAll('img[loading="lazy"]');
|
4
|
+
images.forEach(img => {
|
5
|
+
img.src = img.dataset.src;
|
6
|
+
});
|
7
|
+
} else {
|
8
|
+
// Dynamically import the LazySizes library
|
9
|
+
const script = document.createElement('script');
|
10
|
+
script.src =
|
11
|
+
'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.1.2/plugins/blur-up/ls.blur-up.min.js'
|
12
|
+
document.body.appendChild(script);
|
13
|
+
script.src =
|
14
|
+
'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.1.2/lazysizes.min.js';
|
15
|
+
document.body.appendChild(script);
|
16
|
+
}
|
17
|
+
</script>
|
@@ -1,7 +1,66 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
<!-- Navigation bar -->
|
2
|
+
<nav class="navbar" role="navigation" aria-label="main navigation">
|
3
|
+
<div class="navbar-brand">
|
4
|
+
<a role="button" class="navbar-burger burger is-fixed-top" aria-label="menu" aria-expanded="false" data-target="navbar-menu">
|
5
|
+
<span aria-hidden="true"></span>
|
6
|
+
<span aria-hidden="true"></span>
|
7
|
+
<span aria-hidden="true"></span>
|
8
|
+
</a>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div id="navbar-menu" class="navbar-menu">
|
12
|
+
<div class="navbar-start">
|
13
|
+
|
14
|
+
{% for item in site.data.navigation.items %}
|
15
|
+
{% assign ln = item.link %}
|
16
|
+
<a class="navbar-item{% if page.url == item.link %} is-active{% endif %}"
|
17
|
+
href="{{ item.link }}">
|
18
|
+
{{ item.name }}
|
19
|
+
</a>
|
20
|
+
{% endfor %}
|
21
|
+
|
22
|
+
{% comment %}
|
23
|
+
<div class="navbar-item has-dropdown is-hoverable">
|
24
|
+
<a class="navbar-link">
|
25
|
+
Acticles
|
26
|
+
</a>
|
27
|
+
|
28
|
+
<div class="navbar-dropdown">
|
29
|
+
<a class="navbar-item">
|
30
|
+
Fintech
|
31
|
+
</a>
|
32
|
+
<a class="navbar-item">
|
33
|
+
Travel
|
34
|
+
</a>
|
35
|
+
<a class="navbar-item">
|
36
|
+
Contact
|
37
|
+
</a>
|
38
|
+
<hr class="navbar-divider">
|
39
|
+
<a class="navbar-item">
|
40
|
+
Miscealaneous
|
41
|
+
</a>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
{% endcomment %}
|
45
|
+
|
46
|
+
<div class="navbar-item sharing-utility">
|
47
|
+
{% include themes/jmblog-theme/components/social_buttons_small.html %}
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<div class="navbar-end">
|
52
|
+
{% comment %}
|
53
|
+
<div class="navbar-item">
|
54
|
+
<div class="buttons">
|
55
|
+
<a class="button is-primary">
|
56
|
+
<strong>Sign up</strong>
|
57
|
+
</a>
|
58
|
+
<a class="button is-light">
|
59
|
+
Log in
|
60
|
+
</a>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
{% endcomment %}
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
</nav>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{% if paginator.total_pages > 1 %}
|
2
|
+
<nav class="pagination" role="navigation" aria-label="pagination">
|
3
|
+
|
4
|
+
{% if paginator.previous_page %}
|
5
|
+
<a class="pagination-previous"
|
6
|
+
title="This is the first page"
|
7
|
+
href="{{ paginator.previous_page_path | relative_url }}">Previous</a>
|
8
|
+
{% else %}
|
9
|
+
<a class="pagination-previous" title="This is the first page" disabled>Previous</a>
|
10
|
+
{% endif %}
|
11
|
+
|
12
|
+
{% if paginator.next_page %}
|
13
|
+
<a class="pagination-next"
|
14
|
+
href="{{ paginator.next_page_path | relative_url }}">Next page</a>
|
15
|
+
{% else %}
|
16
|
+
<a class="pagination-next" title="This is the last page" disabled>Next page</a>
|
17
|
+
{% endif %}
|
18
|
+
|
19
|
+
|
20
|
+
<ul class="pagination-list">
|
21
|
+
{% for page in (1..paginator.total_pages) %}
|
22
|
+
<li>
|
23
|
+
{% if page == paginator.page %}
|
24
|
+
<a class="pagination-link is-current" aria-label="Page {{page}}" aria-current="page">{{ page }}</a>
|
25
|
+
{% elsif page == 1 %}
|
26
|
+
<a class="pagination-link"
|
27
|
+
aria-label="Page 1"
|
28
|
+
aria-current="page"
|
29
|
+
href="{{ '/' | relative_url }}">{{ page }}</a>
|
30
|
+
{% else %}
|
31
|
+
<a class="pagination-link"
|
32
|
+
aria-label="Goto page {{page}}"
|
33
|
+
href="{{ site.paginate_path | relative_url | replace: ':num', page }}">{{ page }}</a>
|
34
|
+
{% endif %}
|
35
|
+
</li>
|
36
|
+
{% endfor %}
|
37
|
+
</ul>
|
38
|
+
</nav>
|
39
|
+
{% endif %}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
{% assign maxRelated = 4 %}
|
2
|
+
{% assign minCommonTags = 1 %}
|
3
|
+
{% assign maxRelatedCounter = 0 %}
|
4
|
+
|
5
|
+
{% assign posts = site.posts | where_exp: "item", "item.slug != page.slug" %}
|
6
|
+
{% if posts.size >= 1%}
|
7
|
+
<section class="hero is-dark">
|
8
|
+
<div class="hero-body">
|
9
|
+
<h4 class="title is-6 is-spaced">Related posts</h4>
|
10
|
+
|
11
|
+
<div class="columns is-multiline">
|
12
|
+
|
13
|
+
{% for post in posts %}
|
14
|
+
{% assign sameTagCount = 0 %}
|
15
|
+
|
16
|
+
{% for category in post.categories %}
|
17
|
+
{% if page.categories contains category %}
|
18
|
+
{% assign sameTagCount = sameTagCount | plus: 1 %}
|
19
|
+
{% endif %}
|
20
|
+
{% endfor %}
|
21
|
+
|
22
|
+
{% if sameTagCount >= minCommonTags %}
|
23
|
+
<!-- START related component -->
|
24
|
+
<div class="column is-one-quarter">
|
25
|
+
<a href="{{ post.url }}">
|
26
|
+
<div class="box has-min-height px-3 py-3 is-shadowless">
|
27
|
+
<article class="media">
|
28
|
+
<div class="media-left is-hidden-tablet-only">
|
29
|
+
<figure class="image is-64x64">
|
30
|
+
<img src="{{ post.image.path | default: '/assets/img/ph.png' | append: '?nf_resize=smartcrop&w=64&h=64' }}" alt="{{ post.title }}">
|
31
|
+
</figure>
|
32
|
+
</div>
|
33
|
+
<div class="media-content">
|
34
|
+
<p class="is-size-6 has-text-black">
|
35
|
+
{{ post.title | truncatewords: 15 }}
|
36
|
+
</p>
|
37
|
+
</div>
|
38
|
+
</article>
|
39
|
+
</div>
|
40
|
+
</a>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
|
44
|
+
<!-- END related component -->
|
45
|
+
{% assign maxRelatedCounter = maxRelatedCounter | plus: 1 %}
|
46
|
+
{% if maxRelatedCounter >= maxRelated %}
|
47
|
+
{% break %}
|
48
|
+
{% endif %}
|
49
|
+
{% endif %}
|
50
|
+
|
51
|
+
{% endfor %}
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
</div>
|
68
|
+
|
69
|
+
|
70
|
+
</div>
|
71
|
+
</section>
|
72
|
+
{% endif %}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<span class="icons is-pulled-right">
|
2
|
+
<span class="is-size-7">share </span>
|
3
|
+
<span class="icon">
|
4
|
+
{%- comment -%} <a href="http://twitter.com/home?
|
5
|
+
status={{page.description | uri_escape}}%20{{site.production_url}}{{page.url | uri_escape}}" title="Share with twitter" data-toggle="tooltip" data-placement="top" data-provider="twitter"> {%- endcomment -%}
|
6
|
+
<a href="https://twitter.com/intent/tweet?url={{ page.url | prepend: site.url | uri_encode }}&text={{ page.summary | truncate: 130 | uri_escape }}&hashtags={{ page.tags | join: "," }}">
|
7
|
+
<i class="fab fa-twitter"></i>
|
8
|
+
</a>
|
9
|
+
</span>
|
10
|
+
<span class="icon">
|
11
|
+
<a href="https://www.facebook.com/sharer.php?u={{ page.url | prepend: site.url | uri_encode }}" title="Share with facebook">
|
12
|
+
<i class="fab fa-facebook"></i>
|
13
|
+
</a>
|
14
|
+
</span>
|
15
|
+
<span class="icon">
|
16
|
+
<a href="https://www.linkedin.com/shareArticle?url={{ page.url | prepend: site.url | uri_encode }}&mini=true&title={{ page.title | uri_escape }}&summary={{ page.summary | uri_escape }}&source={{ site.author | append: ' | ' | uri_escape }}{{ site.title | uri_escape }}" title="Share with facebook">
|
17
|
+
<i class="fab fa-linkedin"></i>
|
18
|
+
</a>
|
19
|
+
</span>
|
20
|
+
</span>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
{% if page.author != null %}
|
2
|
+
{% assign author = site.authors | find: "name", page.author | first %}
|
3
|
+
{% comment %} page author is not null {% endcomment %}
|
4
|
+
{% else %}
|
5
|
+
{% assign author = site.authors | find: "name", site.author | first %}
|
6
|
+
{% comment %} page author is null revert to {{ site.author }} {% endcomment %}
|
7
|
+
{% endif %}
|
8
|
+
{% unless author.social.linkedin == null %}
|
9
|
+
<span class="icon">
|
10
|
+
<a href="https://www.linkedin.com/in/{{ author.social.linkedin }}">
|
11
|
+
<i class="fab fa-linkedin has-text-black"></i>
|
12
|
+
</a>
|
13
|
+
</span>
|
14
|
+
{% endunless %}
|
15
|
+
{% unless author.social.twitter == null %}
|
16
|
+
<span class="icon">
|
17
|
+
<a href="https://twitter.com/{{ author.social.twitter }}">
|
18
|
+
<i class="fab fa-twitter has-text-black"></i>
|
19
|
+
</a>
|
20
|
+
</span>
|
21
|
+
{% endunless %}
|
22
|
+
{% unless author.social.medium == null %}
|
23
|
+
<span class="icon">
|
24
|
+
<a href="https://medium.com/{{ author.social.medium }}">
|
25
|
+
<i class="fab fa-medium-m has-text-black"></i>
|
26
|
+
</a>
|
27
|
+
</span>
|
28
|
+
{% endunless %}
|
29
|
+
<span class="icon">
|
30
|
+
<a href="/feed.xml" class="RSS Feed">
|
31
|
+
<i class="fas fa-rss has-text-black"></i>
|
32
|
+
</a>
|
33
|
+
</span>
|
34
|
+
<span class="icon">
|
35
|
+
<a href="javascript:void(0)" class="bookmark-this">
|
36
|
+
<i class="far fa-bookmark has-text-black"></i>
|
37
|
+
</a>
|
38
|
+
</span>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div class="debug debug-themes__jmblog__error">
|
1
|
+
{% comment %} <div class="debug debug-themes__jmblog__error"> {% endcomment %}
|
2
2
|
|
3
3
|
{%comment%}
|
4
4
|
Wrap user content, potentially include components that
|
@@ -12,4 +12,4 @@ render front matter as content
|
|
12
12
|
|
13
13
|
{% include themes/jmblog-theme/components/social_buttons_large.html %}
|
14
14
|
|
15
|
-
</div>
|
15
|
+
{% comment %} </div> {% endcomment %}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
|
2
|
+
<!-- Featured post -->
|
3
|
+
<div class="container">
|
4
|
+
{% assign iter = "first" %}
|
5
|
+
{% for post in paginator.posts %}
|
6
|
+
{% if iter == "first" %}
|
7
|
+
|
8
|
+
|
9
|
+
{% if paginator.page == 1 %}
|
10
|
+
{% assign first_page_first_post = true %}
|
11
|
+
<section class="section featured-post">
|
12
|
+
<a href="{{ post.url }}">
|
13
|
+
<div class="card is-shadowless">
|
14
|
+
<h2 class="title is-size-3 is-size-5-mobile padded-multiline">
|
15
|
+
<span>{{post.title}}
|
16
|
+
{% unless post.subtitle == null %} - {{ post.subtitle }}{% endunless %}
|
17
|
+
</span></h2>
|
18
|
+
<div class="card-image">
|
19
|
+
<figure class="image is-2by1 is-relative">
|
20
|
+
<a href="{{ post.url }}">
|
21
|
+
<img
|
22
|
+
data-src="{{ post.image.path | default: 'https://via.placeholder.com/910x455.png' | append: '?nf_resize=smartcrop&w=910&h=455'}}"
|
23
|
+
data-lowsrc="{{ post.image.path | default: 'https://via.placeholder.com/910x455.png' | append: '?nf_resize=smartcrop&w=100&h=50'}}"
|
24
|
+
alt="Image by {{page.image.author}} on {{page.image.source}}"
|
25
|
+
class="lazyload blur-up">
|
26
|
+
</a>
|
27
|
+
{% assign postcontent = post.content %}{% comment %}TODO: improve this as a include parameter{% endcomment %}
|
28
|
+
{% capture readingtime %}{% include themes/jmblog-theme/components/reading-time.html %}{% endcapture %}
|
29
|
+
{% if readingtime.size > 1 %}
|
30
|
+
<span class="tag is-white is-ontop-right">{{ readingtime | strip }}</span>
|
31
|
+
{% endif %}
|
32
|
+
</figure>
|
33
|
+
</div>
|
34
|
+
<div class="card-content">
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
<div class="content">
|
39
|
+
<a href="{{ post.url }}" class="has-text-black">
|
40
|
+
{{ post.summary }}
|
41
|
+
</a>
|
42
|
+
</div>
|
43
|
+
<div class="tags">
|
44
|
+
{% for tag in post.tags %}
|
45
|
+
<span class="tag">#{{ tag }}</span>
|
46
|
+
{% endfor %}
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
</div>
|
50
|
+
</a>
|
51
|
+
</section>
|
52
|
+
|
53
|
+
<hr>
|
54
|
+
{% endif %}<!-- End page 1 -->
|
55
|
+
|
56
|
+
|
57
|
+
<!-- Main section -->
|
58
|
+
<section class="section">
|
59
|
+
<div class="columns">
|
60
|
+
<!-- Main area column -->
|
61
|
+
<div class="column is-two-thirds">
|
62
|
+
|
63
|
+
{% if paginator.page == 1 %}
|
64
|
+
<h2 class="title is-3 is-uppercase">Recent Articles</h2>
|
65
|
+
{% endif %}
|
66
|
+
|
67
|
+
<div class="article-list">
|
68
|
+
{% endif %}<!-- End first iteration-->
|
69
|
+
|
70
|
+
<!-- Articles -->
|
71
|
+
{% unless first_page_first_post %}
|
72
|
+
{% include themes/jmblog-theme/components/article_highlight.html post=post %}
|
73
|
+
{% endunless %}
|
74
|
+
|
75
|
+
{% assign iter = null %}
|
76
|
+
{% assign first_page_first_post = false %}
|
77
|
+
{% endfor %}
|
78
|
+
</div><!-- End articles list -->
|
79
|
+
|
80
|
+
{% include themes/jmblog-theme/components/pagination_links.html %}
|
81
|
+
|
82
|
+
</div><!-- end left column -->
|
83
|
+
|
84
|
+
<!-- Right side column -- Author details -->
|
85
|
+
<div class="column">
|
86
|
+
<h2 class="title is-3 is-uppercase">The Author</h2>
|
87
|
+
{% include themes/jmblog-theme/components/author.html sidebar=true %}
|
88
|
+
</div>
|
89
|
+
|
90
|
+
</div><!-- End columns container -->
|
91
|
+
|
92
|
+
</section>
|
93
|
+
|
94
|
+
</div>
|