jmblog-theme 0.1.0 → 1.1.1

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.
Files changed (107) 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 → jmblog-theme}/components/analytics/google +0 -0
  24. data/_includes/themes/{jmblog → jmblog-theme}/components/analytics/googletagmanager_body.html +0 -0
  25. data/_includes/themes/{jmblog → jmblog-theme}/components/analytics/googletagmanager_head.html +0 -0
  26. data/_includes/themes/{jmblog → jmblog-theme}/components/analytics/hubspot.html +0 -0
  27. data/_includes/themes/{jmblog → jmblog-theme}/components/analytics/hubspot_cookie_removal.html +0 -0
  28. data/_includes/themes/jmblog-theme/components/article_highlight.html +48 -0
  29. data/_includes/themes/jmblog-theme/components/author.html +45 -0
  30. data/_includes/themes/{jmblog → jmblog-theme}/components/breadcrumb +0 -0
  31. data/_includes/themes/{jmblog → jmblog-theme}/components/centred_buttons.html +0 -0
  32. data/_includes/themes/jmblog-theme/components/comment.html +79 -0
  33. data/_includes/themes/jmblog-theme/components/comment_form.html +87 -0
  34. data/_includes/themes/jmblog-theme/components/comments.html +41 -0
  35. data/_includes/themes/jmblog-theme/components/comments.html.orig +19 -0
  36. data/_includes/themes/{jmblog → jmblog-theme}/components/contact_form.html +0 -0
  37. data/_includes/themes/{jmblog → jmblog-theme}/components/footer.html +2 -2
  38. data/_includes/themes/{jmblog → jmblog-theme}/components/head.html +15 -8
  39. data/_includes/themes/jmblog-theme/components/img.html +12 -0
  40. data/_includes/themes/jmblog-theme/components/lazyload.html +17 -0
  41. data/_includes/themes/jmblog-theme/components/navigation.html +66 -0
  42. data/_includes/themes/jmblog-theme/components/pagination_links.html +39 -0
  43. data/_includes/themes/{jmblog → jmblog-theme}/components/posts_list +0 -0
  44. data/_includes/themes/jmblog-theme/components/reading-time.html +6 -0
  45. data/_includes/themes/jmblog-theme/components/related_articles.html +73 -0
  46. data/_includes/themes/{jmblog → jmblog-theme}/components/resume.html +0 -0
  47. data/_includes/themes/jmblog-theme/components/share_buttons.html +20 -0
  48. data/_includes/themes/{jmblog → jmblog-theme}/components/social_buttons_large.html +0 -0
  49. data/_includes/themes/jmblog-theme/components/social_buttons_small.html +38 -0
  50. data/_includes/themes/{jmblog → jmblog-theme}/error.html +3 -3
  51. data/_includes/themes/jmblog-theme/home.html +94 -0
  52. data/_includes/themes/jmblog-theme/page.html +26 -0
  53. data/_includes/themes/jmblog-theme/post.html +68 -0
  54. data/_includes/themes/{jmblog → jmblog-theme}/resume.html +3 -3
  55. data/_includes/themes/jmblog-theme/settings.yml +2 -0
  56. data/_includes/themes/{jmblog/theme/error.html → jmblog-theme/theme/_old_error.html} +6 -6
  57. data/_includes/themes/jmblog-theme/theme/default.html +1 -0
  58. data/_includes/themes/jmblog-theme/theme/maintenance.html +1 -0
  59. data/_includes/themes/resume.html +1 -1
  60. data/_layouts/bio.html +11 -0
  61. data/_layouts/default.html +5 -4
  62. data/_layouts/error.html +7 -3
  63. data/_layouts/home.html +11 -0
  64. data/_layouts/maintenance.html +11 -0
  65. data/_layouts/page.html +2 -2
  66. data/_layouts/post.html +1 -1
  67. data/_layouts/resume.html +2 -2
  68. data/_pages/404.md +11 -0
  69. data/_pages/contact.md +7 -0
  70. data/_posts/2020-07-06-managing-and-leading-remote-teams-in-our-new-normal.md +34 -0
  71. data/assets/img/chris-montgomery-smgTvepind4-unsplash.jpg +0 -0
  72. data/assets/img/ph.png +0 -0
  73. data/assets/img/user-circle-solid.svg +1 -0
  74. data/assets/js/default.bundle.js +2 -0
  75. data/assets/js/default.bundle.js.br +0 -0
  76. data/assets/js/default.js.map +1 -0
  77. data/assets/js/maintenance.bundle.js +2 -0
  78. data/assets/js/maintenance.bundle.js.br +0 -0
  79. data/assets/js/maintenance.js.map +1 -0
  80. data/assets/js/vendor.bundle.js +2 -0
  81. data/assets/js/vendor.bundle.js.br +0 -0
  82. data/assets/js/vendor.js.map +1 -0
  83. data/assets/sass/base.scss +84 -0
  84. data/assets/sass/modules/card.scss +55 -0
  85. data/assets/sass/modules/navbar.scss +49 -0
  86. data/assets/sass/theme/_all.scss +2 -0
  87. data/assets/sass/theme/brand.scss +56 -0
  88. data/assets/sass/theme/lazyload.scss +10 -0
  89. data/assets/sass/utilities/_all.sass +2 -0
  90. data/assets/sass/utilities/breakpoints.scss +25 -0
  91. data/assets/sass/utilities/helpers.scss +48 -0
  92. data/index.html +7 -0
  93. metadata +93 -55
  94. data/_includes/themes/jmblog/components/navigation.html +0 -7
  95. data/_includes/themes/jmblog/components/share_buttons +0 -19
  96. data/_includes/themes/jmblog/page.html +0 -19
  97. data/_includes/themes/jmblog/post.html +0 -51
  98. data/_includes/themes/jmblog/settings.yml +0 -2
  99. data/_includes/themes/jmblog/theme/holding.html +0 -53
  100. data/assets/img/balloon-3206530_1920.jpg +0 -0
  101. data/assets/img/head-shot-square.jpg +0 -0
  102. data/assets/js/error.bundle.js +0 -2
  103. data/assets/js/error.bundle.js.br +0 -0
  104. data/assets/js/error.js.map +0 -1
  105. data/assets/js/holding.bundle.js +0 -2
  106. data/assets/js/holding.bundle.js.br +0 -0
  107. 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 %}
@@ -6,8 +6,8 @@
6
6
  <a href="https://opensource.org/licenses/mit-license.php">MIT</a> and can be found
7
7
  <a href="https://github.com/johnmoxon/johnmoxon.github.io/">
8
8
  here on github
9
- <i class="fab fa-github has-text-black"></i>
10
- </a>.
9
+ <i class="fab fa-github has-text-black"></i><br>
10
+ </a>
11
11
  <span xmlns:dct="https://purl.org/dc/terms/" xmlns:cc="https://creativecommons.org/ns#" class="license-text">
12
12
  The website content by <strong><span rel="cc:attributionName">John Moxon</span></strong> is licensed under
13
13
  <a href="https://creativecommons.org/licenses/by/4.0">
@@ -1,11 +1,11 @@
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
- {% include themes/jmblog/components/analytics/googletagmanager_head.html %}
8
+ {% include themes/jmblog-theme/components/analytics/googletagmanager_head.html %}
9
9
 
10
10
  <!-- <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> -->
11
11
  <link rel="preload" href="/assets/fonts/Cardo/Cardo-Regular.woff2" as="font" crossorigin>
@@ -15,7 +15,7 @@
15
15
  font-family: 'Cardo';
16
16
  font-style: normal;
17
17
  font-weight: 400;
18
- font-display: swap;
18
+ font-display: optional;
19
19
  src: local('Cardo'), local('Cardo-Regular'), url(/assets/fonts/Cardo/Cardo-Regular.woff2) format('woff2');
20
20
  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;
21
21
  }
@@ -25,12 +25,19 @@
25
25
  font-family: 'Montserrat';
26
26
  font-style: normal;
27
27
  font-weight: 400;
28
- font-display: swap;
28
+ font-display: optional;
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"
@@ -73,4 +80,4 @@
73
80
  <meta name="twitter:title" content="{{ page.title }}" />
74
81
  <meta name="twitter:description" content="{% unless page.description == null %}{{ page.description }}{% endunless %}" />
75
82
 
76
- <link rel="icon" href="/assets/img/favicon.png">
83
+ <link rel="icon" href="/assets/img/favicon.png">
@@ -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>
@@ -0,0 +1,66 @@
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,73 @@
1
+ <section class="hero is-dark">
2
+ <div class="hero-body">
3
+ <h4 class="title is-6 is-spaced">Related posts</h4>
4
+
5
+ <div class="columns is-multiline">
6
+
7
+ {% assign maxRelated = 4 %}
8
+ {% assign minCommonTags = 1 %}
9
+ {% assign maxRelatedCounter = 0 %}
10
+
11
+ {% assign posts = site.posts | where_exp: "item", "item.slug != page.slug" %}
12
+ {% for post in posts %}
13
+ {% assign sameTagCount = 0 %}
14
+
15
+ {% for category in post.categories %}
16
+ {% if page.categories contains category %}
17
+ {% assign sameTagCount = sameTagCount | plus: 1 %}
18
+ {% endif %}
19
+ {% endfor %}
20
+
21
+ {% if sameTagCount >= minCommonTags %}
22
+ <!-- START related component -->
23
+ <div class="column is-one-quarter">
24
+ <a href="{{ post.url }}">
25
+ <div class="box has-min-height px-3 py-3 is-shadowless">
26
+ <article class="media">
27
+ <div class="media-left is-hidden-tablet-only">
28
+ <figure class="image is-64x64">
29
+ <img src="{{ post.image.path | default: '/assets/img/ph.png' | append: '?nf_resize=smartcrop&w=64&h=64' }}" alt="{{ post.title }}">
30
+ </figure>
31
+ </div>
32
+ <div class="media-content">
33
+ <p class="is-size-6 has-text-black">
34
+ {{ post.title | truncatewords: 15 }}
35
+ </p>
36
+ </div>
37
+ </article>
38
+ </div>
39
+ </a>
40
+ </div>
41
+
42
+
43
+ <!-- END related component -->
44
+ {% assign maxRelatedCounter = maxRelatedCounter | plus: 1 %}
45
+ {% if maxRelatedCounter >= maxRelated %}
46
+ {% break %}
47
+ {% endif %}
48
+ {% endif %}
49
+
50
+ {% endfor %}
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+ </div>
67
+
68
+
69
+ </div>
70
+ </section>
71
+
72
+
73
+
@@ -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
@@ -10,6 +10,6 @@ render front matter as content
10
10
  </div>
11
11
  </div>
12
12
 
13
- {% include themes/jmblog/components/social_buttons_large.html %}
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>