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.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/_authors/john_doe.md +15 -0
  3. data/_config.yml +98 -0
  4. data/_data/navigation.yml +8 -0
  5. data/_includes/{JB → JB.old}/analytics +0 -0
  6. data/_includes/{JB → JB.old}/analytics-providers/getclicky +0 -0
  7. data/_includes/{JB → JB.old}/analytics-providers/mixpanel +0 -0
  8. data/_includes/{JB → JB.old}/analytics-providers/piwik +0 -0
  9. data/_includes/{JB → JB.old}/categories_list +0 -0
  10. data/_includes/{JB → JB.old}/comments +0 -0
  11. data/_includes/{JB → JB.old}/comments-providers/disqus +0 -0
  12. data/_includes/{JB → JB.old}/comments-providers/facebook +0 -0
  13. data/_includes/{JB → JB.old}/comments-providers/intensedebate +0 -0
  14. data/_includes/{JB → JB.old}/comments-providers/livefyre +0 -0
  15. data/_includes/{JB → JB.old}/liquid_raw +0 -0
  16. data/_includes/{JB → JB.old}/pages_list +0 -0
  17. data/_includes/{JB → JB.old}/posts_collate +0 -0
  18. data/_includes/{JB → JB.old}/setup +0 -0
  19. data/_includes/{JB → JB.old}/sharing +0 -0
  20. data/_includes/{JB → JB.old}/tags_list +0 -0
  21. data/_includes/{JB → JB.old}/urlset +0 -0
  22. data/_includes/themes/jmblog-theme/bio.html +45 -0
  23. data/_includes/themes/jmblog-theme/components/article_highlight.html +48 -0
  24. data/_includes/themes/jmblog-theme/components/author.html +45 -0
  25. data/_includes/themes/jmblog-theme/components/comment.html +79 -0
  26. data/_includes/themes/jmblog-theme/components/comment_form.html +87 -0
  27. data/_includes/themes/jmblog-theme/components/comments.html +41 -0
  28. data/_includes/themes/jmblog-theme/components/comments.html.orig +19 -0
  29. data/_includes/themes/jmblog-theme/components/footer.html +9 -13
  30. data/_includes/themes/jmblog-theme/components/head.html +11 -4
  31. data/_includes/themes/jmblog-theme/components/img.html +12 -0
  32. data/_includes/themes/jmblog-theme/components/lazyload.html +17 -0
  33. data/_includes/themes/jmblog-theme/components/navigation.html +66 -7
  34. data/_includes/themes/jmblog-theme/components/pagination_links.html +39 -0
  35. data/_includes/themes/jmblog-theme/components/reading-time.html +6 -0
  36. data/_includes/themes/jmblog-theme/components/related_articles.html +72 -0
  37. data/_includes/themes/jmblog-theme/components/share_buttons.html +20 -0
  38. data/_includes/themes/jmblog-theme/components/social_buttons_small.html +38 -0
  39. data/_includes/themes/jmblog-theme/error.html +2 -2
  40. data/_includes/themes/jmblog-theme/home.html +94 -0
  41. data/_includes/themes/jmblog-theme/page.html +19 -12
  42. data/_includes/themes/jmblog-theme/post.html +61 -44
  43. data/_includes/themes/jmblog-theme/theme/{error.html → _old_error.html} +1 -1
  44. data/_includes/themes/jmblog-theme/theme/default.html +1 -0
  45. data/_includes/themes/jmblog-theme/theme/maintenance.html +1 -0
  46. data/_layouts/bio.html +11 -0
  47. data/_layouts/default.html +3 -2
  48. data/_layouts/error.html +7 -3
  49. data/_layouts/home.html +11 -0
  50. data/_layouts/maintenance.html +11 -0
  51. data/_layouts/page.html +1 -1
  52. data/_layouts/post.html +1 -1
  53. data/_pages/404.md +11 -0
  54. data/_pages/contact.md +7 -0
  55. data/_posts/2020-07-06-managing-and-leading-remote-teams-in-our-new-normal.md +34 -0
  56. data/assets/img/chris-montgomery-smgTvepind4-unsplash.jpg +0 -0
  57. data/assets/img/ph.png +0 -0
  58. data/assets/img/user-circle-solid.svg +1 -0
  59. data/assets/js/default.bundle.js +2 -0
  60. data/assets/js/default.bundle.js.br +0 -0
  61. data/assets/js/default.js.map +1 -0
  62. data/assets/js/maintenance.bundle.js +2 -0
  63. data/assets/js/maintenance.bundle.js.br +0 -0
  64. data/assets/js/maintenance.js.map +1 -0
  65. data/assets/js/vendor.bundle.js +2 -0
  66. data/assets/js/vendor.bundle.js.br +0 -0
  67. data/assets/js/vendor.js.map +1 -0
  68. data/assets/sass/base.scss +84 -0
  69. data/assets/sass/modules/card.scss +55 -0
  70. data/assets/sass/modules/navbar.scss +49 -0
  71. data/assets/sass/theme/_all.scss +2 -0
  72. data/assets/sass/theme/brand.scss +56 -0
  73. data/assets/sass/theme/lazyload.scss +10 -0
  74. data/assets/sass/utilities/_all.sass +2 -0
  75. data/assets/sass/utilities/breakpoints.scss +25 -0
  76. data/assets/sass/utilities/helpers.scss +48 -0
  77. data/index.html +7 -0
  78. metadata +70 -32
  79. data/_includes/themes/jmblog-theme/components/share_buttons +0 -19
  80. data/_includes/themes/jmblog-theme/theme/holding.html +0 -53
  81. data/assets/img/balloon-3206530_1920.jpg +0 -0
  82. data/assets/img/head-shot-square.jpg +0 -0
  83. data/assets/js/error.bundle.js +0 -2
  84. data/assets/js/error.bundle.js.br +0 -0
  85. data/assets/js/error.js.map +0 -1
  86. data/assets/js/holding.bundle.js +0 -2
  87. data/assets/js/holding.bundle.js.br +0 -0
  88. 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
- here on github
9
- <i class="fab fa-github has-text-black"></i>
10
- </a>.
11
- <span xmlns:dct="https://purl.org/dc/terms/" xmlns:cc="https://creativecommons.org/ns#" class="license-text">
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&nbsp;
13
12
  <a href="https://creativecommons.org/licenses/by/4.0">
14
- CC BY 4.0
13
+ CC BY 4.0&nbsp;
15
14
  <img
16
15
  style="height:22px!important;margin-left: 3px;vertical-align:text-bottom;"
17
- src="https://search.creativecommons.org/static/img/cc_icon.svg" />
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 defer src="https://kit.fontawesome.com/f74caf9b24.js" crossorigin="anonymous"></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
- <nav>
2
- {% for item in site.data.navigation.items %}
3
- <a href="{{ site.baseurl }}{{ item.link }}" {% if page.url == item.link %}style="color: red;" {% endif %}>
4
- {{ item.name }}
5
- </a>
6
- {% endfor %}
7
- </nav>
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,6 @@
1
+ {% capture words %}
2
+ {{ postcontent | number_of_words | minus: 180 }}
3
+ {% endcapture %}
4
+ {% unless words contains '-' %}
5
+ {{ words | plus: 180 | divided_by: 180 | append: ' mins read' }}
6
+ {% endunless %}
@@ -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>