jmblog-theme 0.1.2 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/_authors/john_doe.md +15 -0
  3. data/_config.yml +80 -0
  4. data/_data/navigation.yml +8 -0
  5. data/_includes/themes/jmblog-theme/bio.html +45 -0
  6. data/_includes/themes/jmblog-theme/components/article_highlight.html +48 -0
  7. data/_includes/themes/jmblog-theme/components/author.html +45 -0
  8. data/_includes/themes/jmblog-theme/components/comments.html +18 -0
  9. data/_includes/themes/jmblog-theme/components/footer.html +2 -2
  10. data/_includes/themes/jmblog-theme/components/head.html +3 -1
  11. data/_includes/themes/jmblog-theme/components/img.html +12 -0
  12. data/_includes/themes/jmblog-theme/components/lazyload.html +17 -0
  13. data/_includes/themes/jmblog-theme/components/navigation.html +66 -7
  14. data/_includes/themes/jmblog-theme/components/pagination_links.html +39 -0
  15. data/_includes/themes/jmblog-theme/components/reading-time.html +6 -0
  16. data/_includes/themes/jmblog-theme/components/related_articles.html +73 -0
  17. data/_includes/themes/jmblog-theme/components/share_buttons.html +20 -0
  18. data/_includes/themes/jmblog-theme/components/social_buttons_small.html +38 -0
  19. data/_includes/themes/jmblog-theme/home.html +94 -0
  20. data/_includes/themes/jmblog-theme/page.html +19 -12
  21. data/_includes/themes/jmblog-theme/post.html +70 -44
  22. data/_includes/themes/jmblog-theme/theme/{error.html → _old_error.html} +1 -1
  23. data/_includes/themes/jmblog-theme/theme/default.html +1 -0
  24. data/_includes/themes/jmblog-theme/theme/maintenance.html +1 -0
  25. data/_layouts/bio.html +11 -0
  26. data/_layouts/default.html +3 -2
  27. data/_layouts/error.html +7 -3
  28. data/_layouts/home.html +11 -0
  29. data/_layouts/maintenance.html +11 -0
  30. data/_layouts/page.html +1 -1
  31. data/_layouts/post.html +1 -1
  32. data/_pages/404.md +11 -0
  33. data/_pages/contact.md +7 -0
  34. data/_posts/2020-07-06-managing-and-leading-remote-teams-in-our-new-normal.md +34 -0
  35. data/assets/img/chris-montgomery-smgTvepind4-unsplash.jpg +0 -0
  36. data/assets/img/ph.png +0 -0
  37. data/assets/js/default.bundle.js +2 -0
  38. data/assets/js/default.bundle.js.br +0 -0
  39. data/assets/js/default.js.map +1 -0
  40. data/assets/js/maintenance.bundle.js +2 -0
  41. data/assets/js/maintenance.bundle.js.br +0 -0
  42. data/assets/js/maintenance.js.map +1 -0
  43. data/assets/js/vendor.bundle.js +2 -0
  44. data/assets/js/vendor.bundle.js.br +0 -0
  45. data/assets/js/vendor.js.map +1 -0
  46. data/assets/sass/base.scss +83 -0
  47. data/assets/sass/modules/card.scss +55 -0
  48. data/assets/sass/modules/navbar.scss +49 -0
  49. data/assets/sass/theme/_all.scss +2 -0
  50. data/assets/sass/theme/brand.scss +56 -0
  51. data/assets/sass/theme/lazyload.scss +10 -0
  52. data/assets/sass/utilities/_all.sass +2 -0
  53. data/assets/sass/utilities/breakpoints.scss +25 -0
  54. data/assets/sass/utilities/helpers.scss +48 -0
  55. data/index.html +7 -0
  56. metadata +52 -18
  57. data/_includes/themes/jmblog-theme/components/share_buttons +0 -19
  58. data/_includes/themes/jmblog-theme/theme/holding.html +0 -53
  59. data/assets/img/balloon-3206530_1920.jpg +0 -0
  60. data/assets/img/head-shot-square.jpg +0 -0
  61. data/assets/js/error.bundle.js +0 -2
  62. data/assets/js/error.bundle.js.br +0 -0
  63. data/assets/js/error.js.map +0 -1
  64. data/assets/js/holding.bundle.js +0 -2
  65. data/assets/js/holding.bundle.js.br +0 -0
  66. data/assets/js/holding.js.map +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99622d170db84ca1cc391972b5fc35411f7353445cae8c6722b5b9aa1ad32c5c
4
- data.tar.gz: 2acb7d882101bd128b6fe6f694d90a6290c047e173710c9e7437880b246fffeb
3
+ metadata.gz: ee91a9beb803c54100ddb62f34229941e61eac7bbb8cf140a508028fde11bf29
4
+ data.tar.gz: 38bde2c3ca9e36cbe73b94ef6e67c928f80579f6593db94f91995447ef7fed6b
5
5
  SHA512:
6
- metadata.gz: a6d97d41c5ca543fe246bd1216896d50994fff51a8145354784569e205541767d4c740ecf3e2cc4040d46a5b0c969cdd89805cc1dd1e2a7860ee0812be82e4e1
7
- data.tar.gz: 33d845122e6805df48f8b24702699850b60853047d7e950a5c06cd54be494b3bc0c1d0a671a1d725d8ed917262a7faaca4043d69a37683f8566cdaf35a4868b3
6
+ metadata.gz: cbe344707fa3debf4f19edfc2f613932db425b5b8af1fc780eae3a72c6ff825596c72bf5c4745adc2d4b27e91590a9c6655bb69b8223900358b8ec6ba9b08756
7
+ data.tar.gz: fa781b60719133e733daf53c16b75a297f068214c5c9731dcb9d86aa22fd300f653c7a32ddf5849c3fce4574a4c550dd8a4e6299b98c720277ad0fb884998e50
@@ -0,0 +1,15 @@
1
+ ---
2
+ layout: bio
3
+ short_name: John
4
+ name: John Doe
5
+ position: Descriptive Job Title
6
+ social:
7
+ linkedin: johnmoxon
8
+ twitter: johnmoxon
9
+ medium:
10
+ email: email@email.com
11
+ summary: >-
12
+ This summary will appear where author information is included as a
13
+ snippet or following an article
14
+ ---
15
+ This is the main body of the summary text and will appear on the author generated page.
@@ -0,0 +1,80 @@
1
+ # This is a sample _config.yml and can be switched out for another if required
2
+
3
+ destination: ./_site
4
+ include:
5
+ - _pages
6
+ collections:
7
+ authors:
8
+ output: true
9
+
10
+
11
+ # Site settings
12
+ # These are used to personalize your new site. If you look in the HTML files,
13
+ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
14
+ # You can create any custom variable you would like, and they will be accessible
15
+ # in the templates via {{ site.myvariable }}.
16
+ title: Learn. Grow. Lead.
17
+ tagline: "Lessons Learned Through A Career In Digital Leadership"
18
+ author: John Moxon
19
+
20
+ description: >-
21
+ Personal blog for John Moxon | Digital Leader, Life-long-learner,
22
+ Risk mitigator, Technology/Fintech evangelist and amateur
23
+ beer brewer. Writing articles about what I know and what I learn as I
24
+ find my own path in my career and life.
25
+
26
+ copyright: "copyright John Moxon 2020. All rights reserved."
27
+ license: "copyright John Moxon 2020. All rights reserved."
28
+
29
+ paginate: 5
30
+ paginate_path: "/articles/page:num/"
31
+
32
+ # permalink: /:categories/:title
33
+ relative_permalinks: false
34
+
35
+ timezone: Australia/Brisbane
36
+
37
+ quiet: false
38
+ verbose: false
39
+
40
+ baseurl: "" # the subpath of your site, e.g. /blog
41
+ url: https://www.jmoxon.net # the base hostname & protocol for your site, e.g. http://example.com
42
+ twitter_username : https://twitter.com/johnmoxon
43
+ github_username : http://github.com/johnmoxon/
44
+ linkedin_username : https://www.linkedin.com/in/johnmoxon/
45
+ medium_username : https://medium.com/@johnmoxon
46
+ meeting_url: 'https://meetings.hubspot.com/jmoxon'
47
+
48
+ # GTM Tracking ID
49
+ analytics:
50
+ gtm:
51
+ tracking_id: GTM-WGHRT3
52
+
53
+ # Build settings
54
+ markdown: kramdown
55
+ theme: jmblog-theme
56
+
57
+ # Currently only plugins used that are supported on github pages, though now using netlify so may swap out for pagination v2 in the future
58
+ plugins:
59
+ - jekyll-gist
60
+ - jekyll-mentions
61
+ - jekyll-paginate
62
+ - jekyll-feed
63
+ - jekyll-sitemap
64
+ - jekyll-seo-tag
65
+
66
+
67
+ # Exclude from processing.
68
+ # The following items will not be processed, by default. Create a custom list
69
+ # to override the default setting.
70
+ # exclude:
71
+ # - Gemfile
72
+ # - Gemfile.lock
73
+ # - node_modules
74
+ # - vendor/bundle/
75
+ # - vendor/cache/
76
+ # - vendor/gems/
77
+ # - vendor/ruby/
78
+
79
+ kramdown:
80
+ input: GFM
@@ -0,0 +1,8 @@
1
+ # _data/navigation.yml
2
+ items:
3
+ - name: Home
4
+ link: /
5
+ - name: About
6
+ link: /authors/john
7
+ - name: Contact
8
+ link: /contact
@@ -0,0 +1,45 @@
1
+ {%comment%}
2
+ Wrap user content, potentially include components that
3
+ render front matter as content
4
+ {%endcomment%}
5
+ <span class="is-block has-text-centered is-hidden-desktop">
6
+ <span class="icon">
7
+ <i class="fas fa-infinity"></i>
8
+ {%- comment -%} <i class="fas fa-paper-plane"></i> {%- endcomment -%}
9
+ {%- comment -%} <i class="fas fa-leaf"></i> {%- endcomment -%}
10
+ {%- comment -%} <i class="fas fa-grip-lines"></i> {%- endcomment -%}
11
+ {%- comment -%} <i class="fas fa-mug-hot"></i> {%- endcomment -%}
12
+ </span>
13
+ </span>
14
+ <section class="section">
15
+ <div class="container">
16
+ <div class="columns">
17
+ <div class="column is-10 is-offset-1">
18
+ <div class="media">
19
+ <figure class="media-left">
20
+ <p class="image is-64x64">
21
+ <img
22
+ src="/assets/img/{{ page.name | slugify: 'pretty' }}-square.jpg?nf_resize=fit&w=64&h=64"
23
+ alt="{{ page.name }}"
24
+ class="is-rounded">
25
+ </p>
26
+ </figure>
27
+ <div class="media-content">
28
+ <div class="content">
29
+ <p class="title is-5">
30
+ <strong>{{ page.name }}</strong><br><small class="is-size-7">{{ page.position }}</small>
31
+ </p>
32
+ <p class="is-size-6">{{ content }}</p>
33
+ </div>
34
+ <nav class="level is-mobile">
35
+ <div class="level-left">
36
+ {% include themes/jmblog-theme/components/social_buttons_small.html %}
37
+ </div>
38
+ </nav>
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ </div>
45
+ </section>
@@ -0,0 +1,48 @@
1
+ <div class="card is-shadowless">
2
+ <div class="columns is-gapless">
3
+ <div class="column">
4
+ <div class="card-image">
5
+ <figure class="image is-4by5 is-relative">
6
+ <a href="{{ post.url }}">
7
+ <img
8
+ data-src="{{ post.image.path | default: "https://via.placeholder.com/290x362.png?text=image+is+4by5"}}?nf_resize=smartcrop&w=290&h=362"
9
+ data-lowsrc="{{ post.image.path | default: "https://via.placeholder.com/290x362.png?text=image+is+4by5"}}?nf_resize=smartcrop&w=72&h=90"
10
+ alt="Image by {{page.image.author}} on {{page.image.source}}"
11
+ class="lazyload blur-up">
12
+ </a>
13
+ {% assign postcontent = post.content %}
14
+ {% capture readingtime %}{% include themes/jmblog-theme/components/reading-time.html %}{% endcapture %}
15
+ {% if readingtime.size > 1 %}
16
+ <span class="tag is-white is-ontop">{{ readingtime | strip }}</span>
17
+ {% endif %}
18
+ </figure>
19
+ </div>
20
+ </div>
21
+ <div class="column">
22
+ <div class="card-content">
23
+ <div class="media">
24
+ {% comment %} <div class="media-left">
25
+ <figure class="image is-48x48">
26
+ <img class="is-rounded" src="https://bulma.io/images/placeholders/96x96.png" alt="Placeholder image">
27
+ </figure>
28
+ </div> {% endcomment %}
29
+ <div class="media-content">
30
+ <h2 class="title is-4"><a href="{{post.url}}" class="has-text-black">{{ post.title }}</a></h2>
31
+ </div>
32
+ </div>
33
+
34
+ <div class="content">
35
+ <a href="{{ post.url }}" class="has-text-black">
36
+ {{ post.summary | truncatewords: 15 }}
37
+ </a>
38
+ <div class="tags">
39
+ {% for tag in post.tags %}
40
+ <span class="tag">#{{tag}}</span>
41
+ {% endfor %}
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ <hr>
@@ -0,0 +1,45 @@
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
+
9
+ {%- comment -%} <div class="is-rounded rounded-image-has-inner-shadow"></div> {%- endcomment -%}
10
+
11
+ {% if include.sidebar == true %}
12
+ <figure class="image is-4by3 has-border-black mb-1">
13
+ <img class=""
14
+ src="/assets/img/{{ author.name | slugify: 'pretty' }}.jpg?nf_resize=fit&w=250"
15
+ alt="{{ author.name }}">
16
+ </figure>
17
+ {% endif %}
18
+
19
+ <div class="media">
20
+ {% unless include.sidebar == true %}
21
+ <figure class="media-left">
22
+ <p class="image is-64x64">
23
+ <img
24
+ src="/assets/img/{{ author.name | slugify: 'pretty' }}-square.jpg?nf_resize=fit&w=64&h=64"
25
+ alt="{{ author.name }}"
26
+ class="is-rounded">
27
+ </p>
28
+ </figure>
29
+ {% endunless %}
30
+ <div class="media-content">
31
+ <div class="content">
32
+ <p class="title is-5">
33
+ <strong>{{ author.name }}</strong><br><small class="is-size-7">{{ author.position }}</small>
34
+ </p>
35
+ {% unless include.show_summary == false %}
36
+ <p class="is-size-6">{{ author.summary }}</p>
37
+ {% endunless %}
38
+ </div>
39
+ <nav class="level is-mobile">
40
+ <div class="level-left">
41
+ {% include themes/jmblog-theme/components/social_buttons_small.html %}
42
+ </div>
43
+ </nav>
44
+ </div>
45
+ </div>
@@ -0,0 +1,18 @@
1
+ {% if page.comments %}
2
+ <div id="disqus_thread"></div>
3
+ <script>
4
+
5
+ var disqus_config = function () {
6
+ this.page.url = "{{ page.url | prepend: site.url }}"; // Replace PAGE_URL with your page's canonical URL variable
7
+ this.page.identifier = "{{ page.slug}}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
8
+ };
9
+ (function() { // DON'T EDIT BELOW THIS LINE
10
+ var d = document, s = d.createElement('script');
11
+ s.src = 'https://jmoxon.disqus.com/embed.js';
12
+ s.setAttribute('data-timestamp', +new Date());
13
+ (d.head || d.body).appendChild(s);
14
+ })();
15
+ </script>
16
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
17
+
18
+ {% 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">
@@ -3,7 +3,9 @@
3
3
  <title>{{ page.title }} | {{site.title}}</title>
4
4
  <meta charset="utf-8">
5
5
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ {% comment %} <meta name="viewport" content="width=device-width, initial-scale=1"> {% endcomment %}
7
+ <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0" />
8
+ <meta name="apple-mobile-web-app-capable" content="yes" />
7
9
 
8
10
  {% include themes/jmblog-theme/components/analytics/googletagmanager_head.html %}
9
11
 
@@ -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 %}