type-on-strap 2.4.13 → 2.5.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -44
  3. data/_includes/blog/blog.liquid +3 -3
  4. data/_includes/blog/blog_nav.liquid +1 -1
  5. data/_includes/blog/post_footer.liquid +1 -0
  6. data/_includes/blog/post_nav.liquid +2 -2
  7. data/_includes/default/category_list.liquid +22 -0
  8. data/_includes/default/head.liquid +17 -12
  9. data/_includes/default/navbar.liquid +2 -2
  10. data/_includes/default/tags_list.liquid +2 -2
  11. data/_includes/gallery.html +5 -7
  12. data/_includes/portfolio.html +5 -5
  13. data/_includes/social/cusdis.liquid +5 -5
  14. data/_includes/social/disqus.liquid +6 -11
  15. data/_includes/social/giscus.liquid +17 -17
  16. data/_includes/social/share_buttons.liquid +9 -9
  17. data/_includes/social/utterances.liquid +8 -8
  18. data/_layouts/categories.liquid +79 -17
  19. data/_layouts/default.html +3 -3
  20. data/_layouts/page.liquid +11 -11
  21. data/_layouts/post.liquid +11 -6
  22. data/_layouts/search.liquid +10 -3
  23. data/_sass/base/_global.scss +7 -11
  24. data/_sass/base/_utility.scss +8 -29
  25. data/_sass/base/_variables.scss +43 -2
  26. data/_sass/external/_font-awesome.scss +1 -1
  27. data/_sass/external/_katex.scss +1 -1
  28. data/_sass/external/_pacifico.scss +3 -6
  29. data/_sass/external/font-awesome/_core.scss +1 -1
  30. data/_sass/external/font-awesome/_icons.scss +0 -1
  31. data/_sass/external/font-awesome/brands.scss +1 -1
  32. data/_sass/external/font-awesome/fontawesome.scss +1 -1
  33. data/_sass/external/font-awesome/regular.scss +1 -1
  34. data/_sass/external/font-awesome/solid.scss +1 -1
  35. data/_sass/external/font-awesome/v4-shims.scss +1 -1
  36. data/_sass/external/katex/katex.scss +151 -266
  37. data/_sass/includes/_blog_nav.scss +0 -4
  38. data/_sass/includes/_gallery.scss +12 -24
  39. data/_sass/includes/_navbar.scss +1 -7
  40. data/_sass/includes/_portfolio.scss +2 -4
  41. data/_sass/layouts/_blog.scss +7 -23
  42. data/_sass/layouts/_categories.scss +80 -38
  43. data/_sass/layouts/_page.scss +1 -1
  44. data/_sass/layouts/_posts.scss +19 -12
  45. data/_sass/layouts/_search.scss +11 -14
  46. data/_sass/layouts/_tags.scss +12 -1
  47. data/_sass/type-on-strap.scss +10 -0
  48. data/assets/fonts/Pacifico/Pacifico.woff +0 -0
  49. data/assets/fonts/Pacifico/Pacifico.woff2 +0 -0
  50. data/assets/fonts/font-awesome/fa-brands-400.ttf +0 -0
  51. data/assets/fonts/font-awesome/fa-brands-400.woff2 +0 -0
  52. data/assets/fonts/font-awesome/fa-regular-400.ttf +0 -0
  53. data/assets/fonts/font-awesome/fa-regular-400.woff2 +0 -0
  54. data/assets/fonts/font-awesome/fa-solid-900.ttf +0 -0
  55. data/assets/fonts/font-awesome/fa-solid-900.woff2 +0 -0
  56. data/assets/js/comments-lazy-load.min.js +1 -0
  57. data/assets/js/main.min.js +1 -6
  58. data/assets/js/vendor/katex.auto-render.min.js +1 -1
  59. data/assets/js/vendor/katex.min.js +1 -1
  60. data/assets/js/vendor/mermaid.min.js +534 -323
  61. data/assets/js/vendor/simple-jekyll-search.min.js +3 -3
  62. metadata +18 -41
  63. data/assets/css/bootstrap-iso.less +0 -12
  64. data/assets/css/vendor/bootstrap-iso.css +0 -9121
  65. data/assets/css/vendor/bootstrap-iso.min.css +0 -6
  66. data/assets/css/vendor/bootstrap.css +0 -10007
  67. data/assets/fonts/Pacifico/Pacifico.eot +0 -0
  68. data/assets/fonts/Pacifico/Pacifico.svg +0 -10833
  69. data/assets/fonts/Pacifico/Pacifico.ttf +0 -0
  70. data/assets/fonts/Pacifico/original-pacifico-regular.ttf +0 -0
  71. data/assets/fonts/font-awesome/fa-v4compatibility.ttf +0 -0
  72. data/assets/fonts/font-awesome/fa-v4compatibility.woff2 +0 -0
  73. data/assets/fonts/katex/KaTeX_AMS-Regular.ttf +0 -0
  74. data/assets/fonts/katex/KaTeX_Caligraphic-Bold.ttf +0 -0
  75. data/assets/fonts/katex/KaTeX_Caligraphic-Regular.ttf +0 -0
  76. data/assets/fonts/katex/KaTeX_Fraktur-Bold.ttf +0 -0
  77. data/assets/fonts/katex/KaTeX_Fraktur-Regular.ttf +0 -0
  78. data/assets/fonts/katex/KaTeX_Main-Bold.ttf +0 -0
  79. data/assets/fonts/katex/KaTeX_Main-BoldItalic.ttf +0 -0
  80. data/assets/fonts/katex/KaTeX_Main-Italic.ttf +0 -0
  81. data/assets/fonts/katex/KaTeX_Main-Regular.ttf +0 -0
  82. data/assets/fonts/katex/KaTeX_Math-BoldItalic.ttf +0 -0
  83. data/assets/fonts/katex/KaTeX_Math-Italic.ttf +0 -0
  84. data/assets/fonts/katex/KaTeX_SansSerif-Bold.ttf +0 -0
  85. data/assets/fonts/katex/KaTeX_SansSerif-Italic.ttf +0 -0
  86. data/assets/fonts/katex/KaTeX_SansSerif-Regular.ttf +0 -0
  87. data/assets/fonts/katex/KaTeX_Script-Regular.ttf +0 -0
  88. data/assets/fonts/katex/KaTeX_Size1-Regular.ttf +0 -0
  89. data/assets/fonts/katex/KaTeX_Size2-Regular.ttf +0 -0
  90. data/assets/fonts/katex/KaTeX_Size3-Regular.ttf +0 -0
  91. data/assets/fonts/katex/KaTeX_Size4-Regular.ttf +0 -0
  92. data/assets/fonts/katex/KaTeX_Typewriter-Regular.ttf +0 -0
  93. data/assets/js/partials/cookie_consent_init.js +0 -60
  94. data/assets/js/partials/dark-mode.js +0 -57
  95. data/assets/js/partials/masonry_init.js +0 -22
  96. data/assets/js/partials/navbar.js +0 -26
  97. data/assets/js/vendor/imagesloaded.pkgd.min.js +0 -12
  98. data/assets/js/vendor/masonry.pkgd.min.js +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2420c122c17be2f45cf263d4e7339bd1bb193f985446014de4d8aab3f23bd8be
4
- data.tar.gz: 26de41669add59557ccfed11db3a3b0ef67ff18d348132c3f703d06fd31f6ff3
3
+ metadata.gz: ccb4fee6ac8c69a532174663a2a2c0dcfad5725c42a4f31ecf1d109e8319a170
4
+ data.tar.gz: ca86903243c9c9b1d660b03962853a7db7b156dbd5f76b5af17e2535734f2a7d
5
5
  SHA512:
6
- metadata.gz: f3b2c6aca18ecf499017e741cf309ec687f971b1a93668d6ecd9caebe038fcd1707d240d2d351c12466982480c05bfaf75830862c78451a9b5760902f5d4fc5f
7
- data.tar.gz: c26e9a0672a93316ec4b305fe567ba9769ad40a15eb78eb2cc3899817676aabd7dc88a97584fe1cd2e034498dcf61106d2ba51420678c65983784e9492e61c8b
6
+ metadata.gz: 4de654f0b9e47747ada241f063797864252a72705eb543e252da6c0270e1fcc178328170192095372504095eb05d0f5a1f0132eb55d563049087d27f454a6b6c
7
+ data.tar.gz: ff886caa5eb1c059b8a9df3e175349f6b701059f09fe8cfa071e688aedb0d8552b98de4229df9417c38292ac6973dabf1984b6515106cbca0ac96af2e378a386
data/README.md CHANGED
@@ -40,8 +40,6 @@ Based on Rohan Chandra [type-theme](https://github.com/rohanchandra/type-theme)
40
40
 
41
41
  Check out this tutorial: [Use as Ruby Gem](#use-as-ruby-gem-)
42
42
 
43
- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#/https://github.com/sylhare/Type-On-Strap)
44
-
45
43
  ## Structure
46
44
 
47
45
  Here are the main files of the template
@@ -356,7 +354,7 @@ tags: [sample, markdown, html] # [Opt] Add tags to the page
356
354
  ```
357
355
 
358
356
  With `thumbnail`, you can add a smaller image than the `feature-img`.
359
- If you don't have a thumbnail, you can still use the same image as the feature one. Or use the gulp task to create it.
357
+ If you don't have a thumbnail, you can still use the same image as the feature one. Or use the npm script to create it.
360
358
 
361
359
  If you don't use a feature image, but `color`, the transparent background is set comes from [`lineart.png`](assets/img/lineart.png).
362
360
  You can edit it in the config file (`_config.yml > color_image`). If you want another one, put it in `/assets/img` as well.
@@ -373,7 +371,7 @@ It will respect the page and theme layout, mind the padding on the sides.
373
371
  The [excerpt](https://jekyllrb.com/docs/posts/#post-excerpts) is the head of the article rendered in the blog page.
374
372
  The length of the excerpt has a default of around `250` characters or can be manually set in the post using:
375
373
 
376
- in `conflig.yml`:
374
+ in `_config.yml`:
377
375
 
378
376
  ```yml
379
377
  excerpt: true
@@ -518,8 +516,8 @@ This creates the collection for Jekyll, so it can find and display your portfoli
518
516
 
519
517
  ### Feature: Gallery 🖼
520
518
 
521
- You can create a gallery using [Masonry JS](https://masonry.desandro.com/) which will placing the pictures at the optimal position
522
- based on available vertical space.
519
+ You can create a gallery using a column layout which will place the pictures at the optimal position
520
+ based on available vertical space.
523
521
  You need to specify the `gallery_path` which will be used to find the pictures to render.
524
522
  It will take all the pictures under that directory. Then use the `include` to add it in your page.
525
523
 
@@ -588,51 +586,20 @@ Jekyll works with [liquid](https://shopify.github.io/liquid/) tags usually repre
588
586
  These are useful to render your jekyll files.
589
587
  You can learn more about them on [shopify's doc](https://help.shopify.com/themes/liquid/basics)
590
588
 
591
- ### Gulp toolbox
592
-
593
- #### Requirements
589
+ ### npm scripts toolbox
594
590
 
595
- Before you need to have *node* and `npm` installed:
591
+ If you are not familiar with npm scripts, check the [CONTRIBUTING.md](.github/CONTRIBUTING.md) for setup instructions.
596
592
 
597
- - Windows: https://nodejs.org/
598
- - Ubuntu/Debian: `apt-get install nodejs npm libgl1 libxi6`
599
- - Fedora (dnf) / RHEL/CentOS (yum): `dnf install node npm libglvnd-glx libXi`
600
-
601
- Then you need to install [`gulp-cli`](https://gulpjs.com/) and its dependencies:
593
+ To create a new post with today's date:
602
594
 
603
595
  ```bash
604
- cd assets/
605
- sudo npm install gulp-cli -g
606
- npm install
596
+ npm run post 'title of the post'
607
597
  ```
608
598
 
609
- #### Minimizing and optimizing: css, js and images
610
-
611
- You can run the default task that will compress the js, css and images and create the thumbnails for the supported image
612
- formats:
613
-
614
- ```bash
615
- cd assets/
616
- gulp default
617
- gulp thumbnails-all # to create all of the images thumbnails
618
- gulp thumbnails # to create thumbnails for the feature-img/ only
619
- # tip: run a git status to see the changes
620
- git status
621
- ```
622
-
623
- You can find more about the gulp tasks in the [gulpfile.js](assets/gulpfile.js).
624
-
625
- #### Create a post
626
-
627
- To create a `.md` file in the *_posts/* section with the jekyll format of today's date.
628
- Use this command with the title you'd like to create the very basic post.
629
-
630
- ```bash
631
- gulp post -n 'title of the post'
632
- ```
599
+ A file `_posts/YYYY-MM-DD-title-of-the-post.md` will be created with default frontmatter.
600
+ Nothing will happen if the file already exists.
633
601
 
634
- A file will be created following the format `yyyy-mm-dd-title-of-the-post.md` with default post attributes inside.
635
- Nothing will happen if the file exists already.
602
+ For build scripts, image optimization, and the full development setup, see [CONTRIBUTING.md](.github/CONTRIBUTING.md).
636
603
 
637
604
  ### Use as Ruby Gem 💎
638
605
 
@@ -1,9 +1,9 @@
1
- <div class="posts">
1
+ <div class="posts" data-testid="blog-posts">
2
2
  {% unless paginator.posts %}
3
3
  <article><section class="post-content"><p>There are no blog posts</p></section></article>
4
4
  {% endunless %}
5
5
  {% for post in paginator.posts %}
6
- <div class="post-teaser">
6
+ <div class="post-teaser" data-testid="blog-post-teaser">
7
7
  {% if post.thumbnail %}
8
8
  <div class="post-img">
9
9
  <a aria-label="{{ post.title }}" href="{{ post.url | relative_url }}">
@@ -14,7 +14,7 @@
14
14
  <span>
15
15
  <header>
16
16
  <h1>
17
- <a aria-label="{{ post.title }}" class="post-link" href="{{ post.url | relative_url }}">
17
+ <a aria-label="{{ post.title }}" class="post-link" data-testid="blog-post-link" href="{{ post.url | relative_url }}">
18
18
  {{ post.title }}
19
19
  </a>
20
20
  </h1>
@@ -1,5 +1,5 @@
1
1
  {% if paginator.total_pages > 1 %}
2
- <div class="pagination">
2
+ <div class="pagination" data-testid="blog-pagination">
3
3
  <div class="previous">
4
4
 
5
5
  {% if paginator.previous_page and paginator.previous_page != 1%}
@@ -13,6 +13,7 @@
13
13
  .post-content a { color: {{ color }} !important; }
14
14
  .share-buttons a { color: {{ color }} !important; }
15
15
  .tag-list a:not(:hover) { color: {{ color }} !important; }
16
+ .category-list a:not(:hover) { color: {{ color }} !important; }
16
17
  div#post-nav a { color: {{ color }} !important; }
17
18
  footer a { color: {{ color }} !important; }
18
19
  .site-header nav a:hover { color: {{ color }} !important; }
@@ -1,7 +1,7 @@
1
1
  <div id="post-nav">
2
2
  {% if page.next.url %}
3
3
  <div id="previous-post">
4
- <a alt="{{ page.next.title }}" href="{{ page.next.url | relative_url | default: 'none' }}">
4
+ <a href="{{ page.next.url | relative_url | default: 'none' }}">
5
5
  <p>{{ site.data.language.str_previous_post | default: "Previous post" }}</p>
6
6
  {{ page.next.title }}
7
7
  </a>
@@ -10,7 +10,7 @@
10
10
 
11
11
  {% if page.previous.url %}
12
12
  <div id="next-post">
13
- <a alt="{{ page.previous.title }}" href="{{ page.previous.url | relative_url | default: 'none' }}">
13
+ <a href="{{ page.previous.url | relative_url | default: 'none' }}">
14
14
  <p>{{ site.data.language.str_next_post | default: "Next post"}}</p>
15
15
  {{ page.previous.title }}
16
16
  </a>
@@ -0,0 +1,22 @@
1
+ {% assign categories = include.categories | split:'|' | sort | uniq %}
2
+
3
+ {% if categories.size > 0 %}
4
+ <div class="category-list" data-testid="category-list">
5
+ <ul>
6
+ {% if categories.size == 1 %}
7
+ <li class="meta">Category</li>
8
+ {% else %}
9
+ <li class="meta">Categories</li>
10
+ {% endif %}
11
+
12
+ {% for category in categories %}
13
+ <li><a class="button" data-testid="category-link" href="{{ site.baseurl }}/categories#{{ category | cgi_escape }}">
14
+ <p><i class="fas fa-folder fa-fw fa-sm"></i> {{ category }}</p>
15
+ </a></li>
16
+ {% endfor %}
17
+ </ul>
18
+ </div>
19
+ {% else %}
20
+ <div class="category-list"></div>
21
+ {% endif %}
22
+
@@ -15,7 +15,7 @@
15
15
  }
16
16
  </script>
17
17
 
18
- <!-- Main JS (navbar.js, katex_init.js and masonry_init.js)-->
18
+ <!-- Main JS (navbar.js, katex_init.js)-->
19
19
  <script defer src="{{ '/assets/js/main.min.js' | relative_url }}"></script>
20
20
 
21
21
  <!-- CSS -->
@@ -24,29 +24,34 @@
24
24
  <!--Favicon-->
25
25
  <link rel="shortcut icon" href="{{ site.favicon | relative_url }}" type="image/x-icon">
26
26
 
27
+ <!-- Preconnect to Cusdis for faster loading when comments become visible -->
28
+ {% if site.data.comments.cusdis.app_id or site.comments.cusdis_app_id or site.cusdis_app_id %}
29
+ <link rel="preconnect" href="https://cusdis.com">
30
+ {% endif %}
31
+
27
32
  {% if page.bootstrap %}
28
- <!-- Bootstrap-4.1.3 isolation CSS -->
29
- <link rel="stylesheet" type="text/css" href="{{ '/assets/css/vendor/bootstrap-iso.min.css' | relative_url }}">
30
- <!-- JQuery 3.3.1 -->
31
- <script defer src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
32
- <!-- Bootstrap 4.1.3 compiled and minified JavaScript -->
33
- <script defer src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
34
- <!-- Popper, a dependency of Bootstrap-->
35
- <script defer src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
33
+ <!-- Bootstrap 4.6.2 CSS CDN -->
34
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous">
35
+ <!-- jQuery 3.5.1 CDN -->
36
+ <script defer src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
37
+ <!-- Popper.js 1.16.1 CDN -->
38
+ <script defer src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
39
+ <!-- Bootstrap 4.6.2 JS CDN -->
40
+ <script defer src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js" integrity="sha384-+sLIOodYLS7CIrQpBjl+C7nPvqq+FbZUBVs2mbGk8cFoTfurqEOk6sD3+6VUuY3" crossorigin="anonymous"></script>
36
41
  {% endif %}
37
42
 
38
- <!-- KaTeX 0.16.25 -->
43
+ <!-- KaTeX 0.16.38 -->
39
44
  {% if site.katex or site.theme_settings.katex %}
40
45
  <script defer src="{{ '/assets/js/vendor/katex.min.js' | relative_url }}"></script>
41
46
  <script defer src="{{ '/assets/js/vendor/katex.auto-render.min.js' | relative_url }}" onload="renderMathInElement(document.body);"></script>
42
47
  {% endif %}
43
48
 
44
- <!-- Mermaid 11.12.0 -->
49
+ <!-- Mermaid 11.13.0 -->
45
50
  {% if site.mermaid %}
46
51
  <script defer src="{{ '/assets/js/vendor/mermaid.min.js' | relative_url }}"></script>
47
52
  {% endif %}
48
53
 
49
- <!-- Simple Jekyll Search 1.10.0 -->
54
+ <!-- Simple-Jekyll-Search 2.1.3 -->
50
55
  <script src="{{ '/assets/js/vendor/simple-jekyll-search.min.js' | relative_url }}" type="text/javascript"></script>
51
56
 
52
57
  <!-- Google Analytics / Cookie Consent -->
@@ -30,7 +30,7 @@
30
30
  <li>
31
31
  <a class="clear" aria-label="{{ page.title }}" title="{{ page.title }}" href="{{ page.url | relative_url }}">
32
32
  {% if page.icon %} <i class="navbar-icon fas {{ page.icon }}" aria-hidden="true"></i>{% endif %}
33
- <span class="navbar-label {% if page.icon %}navbar-label-with-icon{% endif%}">{{ page.title }}</span>
33
+ <span class="navbar-label {% if page.icon %}navbar-label-with-icon{% endif %}">{{ page.title }}</span>
34
34
  </a>
35
35
  </li>
36
36
  {% endunless %}
@@ -39,7 +39,7 @@
39
39
 
40
40
  {% if site.color_theme == 'auto' %}
41
41
  <li class="separator"> | </li>
42
- <li><a id="theme-toggle" title="{{ page.title }} " aria-label="{{ page.title }}" onclick="themeToggle()"></a></li>
42
+ <li><a id="theme-toggle" title="{{ site.data.language.str_dark | default: 'Toggle theme' }}" aria-label="{{ site.data.language.str_dark | default: 'Toggle theme' }}" onclick="themeToggle()"></a></li>
43
43
  {% endif %}
44
44
  </ul>
45
45
 
@@ -1,7 +1,7 @@
1
1
  {% assign tags = include.tags | split:'|' | sort | uniq %}
2
2
 
3
3
  {% if tags.size > 0 %}
4
- <div class="tag-list">
4
+ <div class="tag-list" data-testid="tag-list">
5
5
  <ul>
6
6
  {% if tags.size == 1 %}
7
7
  <li class="meta">Tag</li>
@@ -10,7 +10,7 @@
10
10
  {% endif %}
11
11
 
12
12
  {% for tag in tags %}
13
- <li><a class="button" href="{% unless 'Tags' == page.title %}{{ site.baseurl }}/tags{% endunless %}#{{ tag | cgi_escape }}">
13
+ <li><a class="button" data-testid="tag-link" href="{% unless 'Tags' == page.title %}{{ site.baseurl }}/tags{% endunless %}#{{ tag | cgi_escape }}">
14
14
  <p><i class="fas fa-tag fa-fw fa-sm"></i> {{ tag }}</p>
15
15
  </a></li>
16
16
  {% endfor %}
@@ -6,17 +6,15 @@ html { overflow-y: scroll; }
6
6
  /* article {padding:2%;} */
7
7
  </style>
8
8
 
9
- <div id='masonry' class="grid">
10
- <div class="grid-sizer"></div>
11
- <div class="gutter-sizer"></div>
9
+ <div id="gallery-grid" class="grid">
10
+ <div class="grid-col grid-col--1"></div>
11
+ <div class="grid-col grid-col--2"></div>
12
+ <div class="grid-col grid-col--3"></div>
12
13
  {% for image in site.static_files %}
13
14
  {% if image.path contains include.gallery_path %}
14
15
  {% unless image.path contains '.md' %}
15
- <img src="{{ image.path | relative_url }}" alt="" class="grid-item" style="padding: 0;">
16
+ <img src="{{ image.path | relative_url }}" alt="" class="grid-item" loading="lazy" style="padding: 0;">
16
17
  {% endunless %}
17
18
  {% endif %}
18
19
  {% endfor %}
19
20
  </div>
20
-
21
- <script src="{{ '/assets/js/vendor/imagesloaded.pkgd.min.js' | relative_url }}" type="text/javascript"></script>
22
- <script src="{{ '/assets/js/vendor/masonry.pkgd.min.js' | relative_url }}" type="text/javascript"></script>
@@ -1,14 +1,14 @@
1
1
  <!-- Portfolio Grid Section -->
2
- <div class="portfolio-grid">
2
+ <div class="portfolio-grid" data-testid="portfolio-grid">
3
3
  {% for item in site.portfolio %}
4
- <div class="portfolio-cell">
5
- <a class="portfolio-link" data-keyboard="true" href="{{ item.url | relative_url }}">
6
- <div class="caption" title="{{ item.title }}">
4
+ <div class="portfolio-cell" data-testid="portfolio-item">
5
+ <a class="portfolio-link" data-testid="portfolio-item-link" data-keyboard="true" href="{{ item.url | relative_url }}">
6
+ <div class="caption" data-testid="portfolio-item-caption" title="{{ item.title }}">
7
7
  <div class="caption-content">
8
8
  <i class="fas fa-search-plus fa-3x"></i>
9
9
  </div>
10
10
  </div>
11
- <img alt="" class="" src="{{ item.img | relative_url }}">
11
+ <img alt="{{ item.title }}" class="" data-testid="portfolio-item-image" loading="lazy" src="{{ item.img | relative_url }}">
12
12
  </a>
13
13
  </div>
14
14
  {% endfor %}
@@ -5,9 +5,9 @@
5
5
  data-page-url="{{ page.url | absolute_url }}"
6
6
  data-page-title="{{ page.title }}"
7
7
  data-theme="{{ site.color_theme }}"
8
+ data-lazy-load="true"
9
+ {% if site.data.comments.cusdis.lang or site.data.language.cusdis_lang %}
10
+ data-lang="{% if site.data.comments.cusdis.lang %}{{ site.data.comments.cusdis.lang }}{% else %}{{ site.data.language.cusdis_lang }}{% endif %}"
11
+ {% endif %}
8
12
  ></div>
9
-
10
- {% if site.data.comments.cusdis.lang or site.data.language.cusdis_lang %}
11
- <script defer src="https://cusdis.com/js/widget/lang/{% if site.data.comments.cusdis.lang %}{{ site.data.comments.cusdis.lang }}{% else %}{{ site.data.language.cusdis_lang }}{% endif %}.js"></script>
12
- {% endif %}
13
- <script defer src="https://cusdis.com/js/cusdis.es.js"></script>
13
+ <script defer src="{{ '/assets/js/comments-lazy-load.min.js' | relative_url }}"></script>
@@ -1,12 +1,7 @@
1
- <div class="comments">
2
- <div id="disqus_thread"></div>
3
- <script type="text/javascript">
4
- var disqus_shortname = '{{ site.data.comments.disqus.shortname }}' || '{{ site.comments.disqus_shortname }}' || '{{ site.disqus_shortname }}';
5
- (function() {
6
- var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
7
- dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
8
- (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
9
- })();
10
- </script>
11
- <noscript>{{ site.data.language.str_javascript_required_disqus | default: "Please enable JavaScript to view comments." }}</noscript>
1
+ <div class="comments" id="disqus_thread"
2
+ data-lazy-load="true"
3
+ data-shortname="{% if site.data.comments.disqus.shortname %}{{ site.data.comments.disqus.shortname }}{% elsif site.comments.disqus_shortname %}{{ site.comments.disqus_shortname }}{% else %}{{ site.disqus_shortname }}{% endif %}"
4
+ >
5
+ <noscript>{{ site.data.language.str_javascript_required_disqus | default: "Please enable JavaScript to view comments." }}</noscript>
12
6
  </div>
7
+ <script defer src="{{ '/assets/js/comments-lazy-load.min.js' | relative_url }}"></script>
@@ -1,17 +1,17 @@
1
- <script src="https://giscus.app/client.js"
2
- data-repo="{{ site.data.comments.giscus.repo }}"
3
- data-repo-id="{{ site.data.comments.giscus.repo-id }}"
4
- {% if site.data.comments.giscus.category %}data-category="{{ site.data.comments.giscus.category }}"{% endif %}
5
- data-category-id="{{ site.data.comments.giscus.category-id }}"
6
- data-mapping="{{ site.data.comments.giscus.mapping }}"
7
- {% if site.data.comments.giscus.term %}data-term="{{ site.data.comments.giscus.term }}"{% endif %}
8
- data-strict="{% if site.data.comments.giscus.strict %}{{ site.data.comments.giscus.strict }}{% else %}0{% endif %}"
9
- data-reactions-enabled="{% if site.data.comments.giscus.reactions-enabled %}{{ site.data.comments.giscus.reactions-enabled }}{% else %}1{% endif %}"
10
- data-emit-metadata="{% if site.data.comments.giscus.emit-metadata %}{{ site.data.comments.giscus.emit-metadata }}{% else %}0{% endif %}"
11
- data-input-position="{% if site.data.comments.giscus.input-position %}{{ site.data.comments.giscus.input-position }}{% else %}bottom{% endif %}"
12
- data-theme="{% if site.data.comments.giscus.theme %}{{ site.data.comments.giscus.theme }}{% elsif site.color_theme == 'dark' %}dark{% else %}light{% endif %}"
13
- data-lang="{% if site.data.comments.giscus.lang %}{{ site.data.comments.giscus.lang }}{% else %}en{% endif %}"
14
- {% if site.data.comments.giscus.loading %}data-loading="{{ site.data.comments.giscus.loading }}"{% endif %}
15
- crossorigin="anonymous"
16
- async>
17
- </script>
1
+ <div id="giscus_thread"
2
+ data-lazy-load="true"
3
+ data-repo="{{ site.data.comments.giscus.repo }}"
4
+ data-repo-id="{{ site.data.comments.giscus.repo-id }}"
5
+ {% if site.data.comments.giscus.category %}data-category="{{ site.data.comments.giscus.category }}"{% endif %}
6
+ data-category-id="{{ site.data.comments.giscus.category-id }}"
7
+ data-mapping="{{ site.data.comments.giscus.mapping }}"
8
+ {% if site.data.comments.giscus.term %}data-term="{{ site.data.comments.giscus.term }}"{% endif %}
9
+ data-strict="{% if site.data.comments.giscus.strict %}{{ site.data.comments.giscus.strict }}{% else %}0{% endif %}"
10
+ data-reactions-enabled="{% if site.data.comments.giscus.reactions-enabled %}{{ site.data.comments.giscus.reactions-enabled }}{% else %}1{% endif %}"
11
+ data-emit-metadata="{% if site.data.comments.giscus.emit-metadata %}{{ site.data.comments.giscus.emit-metadata }}{% else %}0{% endif %}"
12
+ data-input-position="{% if site.data.comments.giscus.input-position %}{{ site.data.comments.giscus.input-position }}{% else %}bottom{% endif %}"
13
+ data-theme="{% if site.data.comments.giscus.theme %}{{ site.data.comments.giscus.theme }}{% elsif site.color_theme == 'dark' %}dark{% else %}light{% endif %}"
14
+ data-lang="{% if site.data.comments.giscus.lang %}{{ site.data.comments.giscus.lang }}{% else %}en{% endif %}"
15
+ {% if site.data.comments.giscus.loading %}data-loading="{{ site.data.comments.giscus.loading }}"{% endif %}
16
+ ></div>
17
+ <script defer src="{{ '/assets/js/comments-lazy-load.min.js' | relative_url }}"></script>
@@ -13,7 +13,7 @@
13
13
  <li class="meta">Share</li>
14
14
  {% if site.data.social.share.facebook or site.theme_settings.share_buttons.facebook %}
15
15
  <li>
16
- <a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url }}" target="_blank"
16
+ <a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url }}" target="_blank" rel="noopener noreferrer"
17
17
  title="{{ site.data.social.language.str_share_on }} Facebook">
18
18
  <i class="fab fa-facebook-square fa-2x" aria-hidden="true"></i>
19
19
  <span class="sr-only">{{ site.data.social.language.str_share_on | default: "Share on" }} Facebook</span>
@@ -22,7 +22,7 @@
22
22
  {% endif %} {% if site.data.social.share.twitter or site.theme_settings.twitter %}
23
23
  <li>
24
24
  <a href="https://twitter.com/intent/tweet?text={{ page.title | strip_html | url_encode }}%20{{ page.url | absolute_url | url_encode }}"
25
- target="_blank" title="{{ site.data.social.language.str_tweet }}">
25
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_tweet }}">
26
26
  <i class="fab fa-twitter-square fa-2x" aria-hidden="true"></i>
27
27
  <span class="sr-only">{{ site.data.social.language.str_tweet | default: "Tweet" }}</span>
28
28
  </a>
@@ -30,7 +30,7 @@
30
30
  {% endif %} {% if site.data.social.share.tumblr or site.theme_settings.tumblr %}
31
31
  <li>
32
32
  <a href="https://www.tumblr.com/share?v=3&u={{ page.url | absolute_url }}&quote={{ page.title | url_encode }}%20%7C%20{{ site.title | strip_html | url_encode }}&s="
33
- target="_blank" title="{{ site.data.social.language.str_share_on }} Tumblr">
33
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_share_on }} Tumblr">
34
34
  <i class="fab fa-tumblr-square fa-2x" aria-hidden="true"></i>
35
35
  <span class="sr-only">{{ site.data.social.language.str_share_on | default: "Share on" }} Tumblr</span>
36
36
  </a>
@@ -38,7 +38,7 @@
38
38
  {% endif %} {% if site.data.social.share.pinterest or site.theme_settings.pinterest %}
39
39
  <li>
40
40
  <a href="https://pinterest.com/pin/create/button/?url={{ page.url | absolute_url }}&media={{ page.feature-img | absolute_url }}$description={{ page.excerpt | strip_html | url_encode }}"
41
- target="_blank" title="{{ site.data.social.language.str_pin_it }}">
41
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_pin_it }}">
42
42
  <i class="fab fa-pinterest-square fa-2x" aria-hidden="true"></i>
43
43
  <span class="sr-only">{{ site.data.social.language.str_pin_it | default: "Pin it" }}</span>
44
44
  </a>
@@ -46,7 +46,7 @@
46
46
  {% endif %} {% if site.data.social.share.pocket or site.theme_settings.pocket %}
47
47
  <li>
48
48
  <a href="https://getpocket.com/save?url={{ page.url | absolute_url }}&title={{ page.title | strip_html | url_encode }}%20%7C%20{{ site.title | strip_html | url_encode }}"
49
- target="_blank" title="{{ site.data.social.language.str_add_to }} Pocket">
49
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_add_to }} Pocket">
50
50
  <span class="fa-stack fa-1x" style="vertical-align: top">
51
51
  <i class="fas fa-square fa-stack-2x" aria-hidden="true"></i>
52
52
  <i class="fab fa-get-pocket fa-stack-1x fa-inverse" aria-hidden="true"></i>
@@ -57,7 +57,7 @@
57
57
  {% endif %} {% if site.data.social.share.reddit or site.theme_settings.reddit %}
58
58
  <li>
59
59
  <a href="https://www.reddit.com/submit?url={{ page.url | absolute_url }}&title={{ page.title | strip_html | url_encode }}%20%7C%20{{ site.title | strip_html | url_encode }}"
60
- target="_blank" title="{{ site.data.social.language.str_share_on }} Reddit">
60
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_share_on }} Reddit">
61
61
  <i class="fab fa-reddit-square fa-2x" aria-hidden="true"></i>
62
62
  <span class="sr-only">{{ site.data.social.language.str_share_on | default: "Share on" }} Reddit</span>
63
63
  </a>
@@ -65,7 +65,7 @@
65
65
  {% endif %} {% if site.data.social.share.linkedin or site.theme_settings.linkedin %}
66
66
  <li>
67
67
  <a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url }}&title={{ page.title | strip_html | url_encode }}%20%7C%20{{ site.title | strip_html | url_encode }}&summary=&source={{ page.url | absolute_url }}"
68
- target="_blank" title="{{ site.data.social.language.str_share_on }} LinkedIn">
68
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_share_on }} LinkedIn">
69
69
  <i class="fab fa-linkedin fa-2x" aria-hidden="true"></i>
70
70
  <span class="sr-only">{{ site.data.social.language.str_share_on | default: "Share on" }} LinkedIn</span>
71
71
  </a>
@@ -73,7 +73,7 @@
73
73
  {% endif %} {% if site.data.social.share.wordpress or site.theme_settings.wordpress %}
74
74
  <li>
75
75
  <a href="https://wordpress.com/press-this.php?u={{ page.url | absolute_url }}&quote={{ page.title | strip_html | url_encode }}%20%7C%20{{ site.title | strip_html | url_encode }}&s="
76
- target="_blank" title="{{ site.data.social.language.str_share_on }} WordPress">
76
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_share_on }} WordPress">
77
77
  <i class="fab fa-wordpress fa-2x" aria-hidden="true"></i>
78
78
  <span class="sr-only">{{ site.data.social.language.str_share_on | default: "Share on" }} WordPress</span>
79
79
  </a>
@@ -81,7 +81,7 @@
81
81
  {% endif %} {% if site.data.social.share.email or site.theme_settings.email %}
82
82
  <li>
83
83
  <a href="mailto:?subject={{ page.title }}%20%7C%20{{ site.title }}&body={{ page.url | absolute_url }}"
84
- target="_blank" title="{{ site.data.social.language.str_email }}">
84
+ target="_blank" rel="noopener noreferrer" title="{{ site.data.social.language.str_email }}">
85
85
  <i class="fas fa-envelope-square fa-2x" aria-hidden="true"></i>
86
86
  <span class="sr-only">{{ site.data.social.language.str_email | default: "Email" }}</span></a>
87
87
  </li>
@@ -1,8 +1,8 @@
1
- <script src="https://utteranc.es/client.js"
2
- repo='{% if site.data.comments.utterances.repo %}{{ site.data.comments.utterances.repo }}{% else %}{{ site.comments.utterances.repo }}{% endif %}'
3
- issue-term="{% if site.data.comments.utterances.issue-term %}{{ site.data.comments.utterances.issue-term }}{% else %}{{ site.comments.utterances.issue-term }}{% endif %}"
4
- theme="{% if site.data.comments.utterances.theme %}{{ site.data.comments.utterances.theme }}{% elsif site.comments.utterances.theme %}{{ site.comments.utterances.theme }}{% elsif site.color_theme == 'dark' %}github-dark{% else %}github-light{% endif %}"
5
- {% if site.data.comments.utterances.label or site.comments.utterances.label %}label="{% if site.data.comments.utterances.label %}{{ site.data.comments.utterances.label }}{% else %}{{ site.comments.utterances.label }}{% endif %}"{% endif %}
6
- crossorigin="anonymous"
7
- async>
8
- </script>
1
+ <div id="utterances_thread"
2
+ data-lazy-load="true"
3
+ data-repo="{% if site.data.comments.utterances.repo %}{{ site.data.comments.utterances.repo }}{% else %}{{ site.comments.utterances.repo }}{% endif %}"
4
+ data-issue-term="{% if site.data.comments.utterances.issue-term %}{{ site.data.comments.utterances.issue-term }}{% else %}{{ site.comments.utterances.issue-term }}{% endif %}"
5
+ data-theme="{% if site.data.comments.utterances.theme %}{{ site.data.comments.utterances.theme }}{% elsif site.comments.utterances.theme %}{{ site.comments.utterances.theme }}{% elsif site.color_theme == 'dark' %}github-dark{% else %}github-light{% endif %}"
6
+ {% if site.data.comments.utterances.label or site.comments.utterances.label %}data-label="{% if site.data.comments.utterances.label %}{{ site.data.comments.utterances.label }}{% else %}{{ site.comments.utterances.label }}{% endif %}"{% endif %}
7
+ ></div>
8
+ <script defer src="{{ '/assets/js/comments-lazy-load.min.js' | relative_url }}"></script>