type-on-strap 2.4.5 → 2.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -13
- data/_includes/blog/post_info.liquid +1 -1
- data/_includes/default/head.liquid +1 -3
- data/_includes/default/navbar.liquid +2 -2
- data/_includes/social/cusdis.liquid +2 -2
- data/_layouts/default.html +1 -1
- data/_sass/base/_global.scss +13 -0
- data/assets/js/main.min.js +5 -4
- data/assets/js/partials/cookie_consent_init.js +6 -10
- data/assets/js/partials/dark-mode.js +10 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2057d2682bf6c8aa2883be048665715575c0b577f9ef5e88a2999da1c05dd4ee
|
4
|
+
data.tar.gz: ef6d4db972b7d1c12e0353afe99b9a0b019ac257fe7826e1672b417b8af14786
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87368acc73d55075d24a1c5a5807ea5951410d7fe2b245df05d28bb755641dcf04d5a18d6506187482400ea5d9cbde6025b45992871026cb1832cc1345f984ff
|
7
|
+
data.tar.gz: 4af9107da561f1b4e2965e649b1f14a1653286ca491d9a46a4dab0aba954d15388f1040ae430687bb30e019b7aa4bbdb49e817eb4bfeb91741998fbeea60a448
|
data/README.md
CHANGED
@@ -6,7 +6,8 @@
|
|
6
6
|
|
7
7
|
[![Default Type on Strap blog](https://github.com/Sylhare/Type-on-Strap/blob/master/assets/img/screenshot.png?raw=true)](https://sylhare.github.io/Type-on-Strap/)
|
8
8
|
|
9
|
-
A free and open-source [Jekyll](https://jekyllrb.com) theme.
|
9
|
+
A free and open-source [Jekyll](https://jekyllrb.com) theme.
|
10
|
+
Based on Rohan Chandra [type-theme](https://github.com/rohanchandra/type-theme) packed with extra features and easily customizable:
|
10
11
|
|
11
12
|
* Responsive design on all devices (🖥, 💻, 📱, ...)
|
12
13
|
* Portfolio 🗂, Gallery 🖼 pages for your projects
|
@@ -46,7 +47,7 @@ Check out this tutorial: [Use as Ruby Gem](#use-as-ruby-gem-)
|
|
46
47
|
Here are the main files of the template
|
47
48
|
|
48
49
|
```shell
|
49
|
-
Type-on-Strap
|
50
|
+
./Type-on-Strap
|
50
51
|
├── _includes # Theme includes
|
51
52
|
├── _layouts # Theme layouts (see below for details)
|
52
53
|
├── _portfolio # Collection of articles for the portfolio page
|
@@ -116,8 +117,8 @@ To configure the blog part and default plugins. Those plugins are validated by G
|
|
116
117
|
|
117
118
|
#### Meta and Branding
|
118
119
|
|
119
|
-
|
120
|
-
and as
|
120
|
+
_Meta variables_ hold basic information about your Jekyll site, which will be used throughout the site
|
121
|
+
and as _meta properties_ that are used for search engines, browsers, and the site's RSS feed.
|
121
122
|
|
122
123
|
Change these variables in `_config.yml`:
|
123
124
|
|
@@ -135,7 +136,7 @@ Using _auto_ you'll have a tiny icon in the navbar allowing the use to manually
|
|
135
136
|
|
136
137
|
### Theme customization 🎨
|
137
138
|
|
138
|
-
#### Footer and Header
|
139
|
+
#### Footer and Header text
|
139
140
|
|
140
141
|
Customize your site header/footer with these variables in `_config.yml`:
|
141
142
|
|
@@ -164,17 +165,19 @@ with suffix `-small` (620x320) and `-medium` (1240x640) to display on smaller sc
|
|
164
165
|
Localization string is a way to quickly change the template language for text like *Next Post* or *Follow on*, ...
|
165
166
|
You can find all the properties in `_data/language.yml`.
|
166
167
|
|
167
|
-
By default, it is in
|
168
|
+
By default, it is in English, but you can easily add your own language.
|
168
169
|
|
169
170
|
### Google Analytics
|
170
171
|
|
171
|
-
To enable Google Analytics, add your [
|
172
|
+
To enable Google Analytics (GA4), add your [Measurement ID](https://support.google.com/analytics/answer/12270356?hl=en&sjid=1593376271608310401-NA)
|
172
173
|
to `_config.yml` like so:
|
173
174
|
|
174
175
|
```yml
|
175
|
-
google_analytics:
|
176
|
+
google_analytics: G-XXXXXXXXXX
|
176
177
|
```
|
177
178
|
|
179
|
+
It will use the [Google Tag Manager](https://support.google.com/analytics/answer/10220869?hl=en&ref_topic=9355633&sjid=1593376271608310401-NA)
|
180
|
+
|
178
181
|
### Comments 💬
|
179
182
|
|
180
183
|
#### Disqus
|
@@ -191,10 +194,10 @@ comments:
|
|
191
194
|
|
192
195
|
#### Cusdis
|
193
196
|
|
194
|
-
[Cusdis](https://cusdis.com/) is an open
|
197
|
+
[Cusdis](https://cusdis.com/) is an open-source alternative to Disqus.
|
195
198
|
You can read more about it in the [documentation](https://cusdis.com/doc#/)
|
196
199
|
|
197
|
-
To enable it, set your
|
200
|
+
To enable it, set your Cusdis name in `_config.yml`:
|
198
201
|
|
199
202
|
```yaml
|
200
203
|
comments:
|
@@ -273,7 +276,7 @@ You can also enable RSS.
|
|
273
276
|
The site icons come from [Font Awesome](https://fontawesome.com/).
|
274
277
|
|
275
278
|
In `_data/icons.yml` you can set the footer icon that will appear at the bottom of the page.
|
276
|
-
They will redirect the user on your profile on
|
279
|
+
They will redirect the user on your profile on to other platforms like Twitter, GitHub and so many more!
|
277
280
|
|
278
281
|
### Cookie consent
|
279
282
|
|
@@ -616,7 +619,7 @@ Then you can start adding content like:
|
|
616
619
|
|
617
620
|
### Remote Theme
|
618
621
|
|
619
|
-
Now you can use any theme gem with GitHub pages with [29/11/2017
|
622
|
+
Now you can use any theme gem with GitHub pages with [29/11/2017 GitHub Pages Broadcast](https://github.com/blog/2464-use-any-theme-with-github-pages).
|
620
623
|
For that remove all `theme:` attributes from `_config.yml` and add instead:
|
621
624
|
|
622
625
|
```yml
|
@@ -625,7 +628,7 @@ remote_theme: sylhare/Type-on-Strap
|
|
625
628
|
|
626
629
|
## License
|
627
630
|
|
628
|
-
This theme is licensed under the [
|
631
|
+
This theme is licensed under the [MIT License (MIT)](/LICENSE)
|
629
632
|
|
630
633
|
- Pictures from [Pexels](https://www.pexels.com/) are under Creative Commons Zero (CC0) license
|
631
634
|
- Fonts are licensed under the [SIL Open Font License (OFL)](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL)
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<div class="post-info">
|
5
5
|
{%- if author.url -%}<a href="{{ author.url | relative_url }}" target="_blank" rel="noopener">{%- endif -%}
|
6
6
|
{% if author.avatar %}
|
7
|
-
<img alt="Author's avatar" src="{{ author.avatar | relative_url }}">
|
7
|
+
<img alt="Author's avatar" src="{{ author.avatar | relative_url }}" loading="lazy">
|
8
8
|
{% endif %}
|
9
9
|
<p class="meta">
|
10
10
|
{% if author.name %}{{ author.name }} - {% endif %}
|
@@ -68,8 +68,6 @@
|
|
68
68
|
{% if site.google_analytics %}
|
69
69
|
<!-- Global site tag (gtag.js) -->
|
70
70
|
<script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
|
71
|
-
<!-- Page analysis (analytics.js) -->
|
72
|
-
<script async src='https://www.google-analytics.com/analytics.js'></script>
|
73
71
|
{% endif %}
|
74
72
|
|
75
73
|
<!-- seo tags -->
|
@@ -85,7 +83,7 @@
|
|
85
83
|
|
86
84
|
<!-- Twitter Cards -->
|
87
85
|
<meta name="twitter:title" content="{{ page.title | default: site.title }}">
|
88
|
-
<meta name="twitter:description" content="{{ page.content | strip_html | strip_newlines | truncate: 160
|
86
|
+
<meta name="twitter:description" content="{{ page.content | default: site.header_text | strip_html | strip_newlines | truncate: 160 }}">
|
89
87
|
{% if site.data.social.twitter %}
|
90
88
|
<meta name="twitter:creator" content="@{{ site.data.social.twitter }}">
|
91
89
|
<meta name="twitter:site" content="@{{ site.data.social.twitter }}">
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<div class="branding">
|
5
5
|
{% if site.avatar %}
|
6
6
|
<a href="{{ '/' | relative_url }}">
|
7
|
-
<img alt="logo img" class="avatar" src="{{ site.avatar | relative_url }}" />
|
7
|
+
<img alt="logo img" class="avatar" src="{{ site.avatar | relative_url }}" loading="lazy"/>
|
8
8
|
</a>
|
9
9
|
{% endif %}
|
10
10
|
<a class="site-title" aria-label="{{ site.title }}" href="{{ '/' | relative_url }}">
|
@@ -34,7 +34,7 @@
|
|
34
34
|
{% endunless %}
|
35
35
|
{% assign name_page = page.title | append: name_page %}
|
36
36
|
{% endfor %}
|
37
|
-
|
37
|
+
|
38
38
|
{% if site.color_theme == 'auto' %}
|
39
39
|
<li class="separator"> | </li>
|
40
40
|
<li><a id="theme-toggle" title="{{ page.title }} " aria-label="{{ page.title }}" onclick="themeToggle()"></a></li>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
data-host="https://cusdis.com"
|
3
3
|
data-app-id="{% if site.comments.cusdis_app_id %}{{ site.comments.cusdis_app_id }}{% else %}{{ site.cusdis_app_id }}{% endif %}"
|
4
4
|
data-page-id="{{ page.relative_path }}"
|
5
|
-
data-page-url="{{ page.url }}"
|
5
|
+
data-page-url="{{ page.url | absolute_url }}"
|
6
6
|
data-page-title="{{ page.title }}"
|
7
7
|
data-theme="{{ site.color_theme }}"
|
8
8
|
></div>
|
@@ -10,4 +10,4 @@
|
|
10
10
|
{% if site.data.language.cusdis_lang %}
|
11
11
|
<script defer src="https://cusdis.com/js/widget/lang/{{ site.data.language.cusdis_lang }}.js"></script>
|
12
12
|
{% endif %}
|
13
|
-
<script
|
13
|
+
<script defer src="https://cusdis.com/js/cusdis.es.js"></script>
|
data/_layouts/default.html
CHANGED
data/_sass/base/_global.scss
CHANGED
@@ -186,6 +186,7 @@ p,
|
|
186
186
|
ol,
|
187
187
|
ul,
|
188
188
|
dl,
|
189
|
+
details,
|
189
190
|
.math-display {
|
190
191
|
line-height: 1.5;
|
191
192
|
margin-bottom: 1em;
|
@@ -237,6 +238,17 @@ kbd {
|
|
237
238
|
white-space: nowrap;
|
238
239
|
}
|
239
240
|
|
241
|
+
details {
|
242
|
+
& > summary {
|
243
|
+
cursor: pointer;
|
244
|
+
display: list-item;
|
245
|
+
}
|
246
|
+
|
247
|
+
&[open] > summary {
|
248
|
+
color: var(--link);
|
249
|
+
}
|
250
|
+
}
|
251
|
+
|
240
252
|
// Cookie consent
|
241
253
|
#cookie-notice {
|
242
254
|
padding: 0.5rem 1rem;
|
@@ -270,3 +282,4 @@ kbd {
|
|
270
282
|
max-width: 100%;
|
271
283
|
}
|
272
284
|
}
|
285
|
+
|
data/assets/js/main.min.js
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
/* @preserve Cookie Consent Init */
|
2
|
-
function createCookie(e,t,
|
3
|
-
/* @preserve Dark mode Init */;const themeButton={light:'<i class="fas fa-adjust" aria-hidden="true"></i>',dark:'<i class="fas fa-adjust fa-rotate-180" aria-hidden="true"></i>'},currentTheme=()=>
|
4
|
-
/* @preserve Masonry Init
|
5
|
-
|
2
|
+
function createCookie(e,t,o){var n="";if(o){var i=new Date;i.setTime(i.getTime()+24*o*60*60*1e3),n="; expires="+i.toUTCString()}document.cookie=`${e}=${t}${n}; path=/`}function readCookie(e){for(var t=e+"=",o=document.cookie.split(";"),n=0;n<o.length;n++){for(var i=o[n];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(t))return i.substring(t.length,i.length)}return null}function addCookieConsentListener(){document.getElementById("cookie-notice-accept").addEventListener("click",(function(){createCookie(cookieName,"true",31),document.getElementById("cookie-notice").style.display="none",location.reload()}))}function googleAnalytics(){if(""!==analyticsName.toLowerCase()){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config",analyticsName,{anonymize_ip:!0}),analyticsNameGA4&&e("config",analyticsNameGA4,{anonymize_ip:!0})}}"true"===isCookieConsent.toLowerCase()?(addCookieConsentListener(),"true"===readCookie(cookieName)?googleAnalytics():document.getElementById("cookie-notice").style.display="block"):googleAnalytics()
|
3
|
+
/* @preserve Dark mode Init */;const themeButton={light:'<i class="fas fa-adjust" aria-hidden="true"></i>',dark:'<i class="fas fa-adjust fa-rotate-180" aria-hidden="true"></i>'},currentTheme=()=>localStorage.getItem("theme");function setMode(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e);const t=document.getElementById("theme-toggle");t&&(t.innerHTML=themeButton[e])}function themeToggle(){setMode("light"===currentTheme()?"dark":"light")}function bootstrapTheme(){if(isAutoTheme){if(!currentTheme()){let e=window.matchMedia("(prefers-color-scheme: dark)");e.matches&&localStorage.setItem("theme","dark"),e.addEventListener("change",(()=>{e.matches&&localStorage.setItem("theme","dark")}))}let e=currentTheme();setMode(e||"light")}}bootstrapTheme();
|
4
|
+
/* @preserve Masonry Init */
|
5
|
+
try{var elem=document.querySelector(".grid"),msnry=new Masonry(elem,{itemSelector:".grid-item",columnWidth:".grid-sizer",gutter:".gutter-sizer",percentPosition:!0}),imgLoad=imagesLoaded(elem);imgLoad.on("progress",(function(e,t){msnry.layout()}))}catch(e){if(!(e instanceof ReferenceError))throw e}
|
6
|
+
/* @preserve Navbar */document.addEventListener("DOMContentLoaded",(function(e){const t=document.getElementById("pull"),o=document.querySelector("nav ul");["click","touch"].forEach((function(e){t?.addEventListener(e,(function(){o.classList.toggle("hide")}),!1)})),window.addEventListener("scroll",(function(){const e=-(window.scrollY||window.pageYOffset||document.body.scrollTop)/3,t=document.getElementById("main");t&&(t.style.backgroundPosition="100% "+(e-50)+"px, 0%, center top")}))}));
|
@@ -34,23 +34,19 @@ function googleAnalytics() {
|
|
34
34
|
window.dataLayer = window.dataLayer || [];
|
35
35
|
function gtag() { dataLayer.push(arguments); }
|
36
36
|
gtag('js', new Date());
|
37
|
-
gtag('config', analyticsName);
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
window.ga = window.ga || function () { (ga.q = ga.q || []).push(arguments) };
|
42
|
-
ga.l = +new Date;
|
43
|
-
ga('create', analyticsName, 'auto');
|
44
|
-
ga('send', 'pageview');
|
37
|
+
gtag('config', analyticsName, { 'anonymize_ip': true });
|
38
|
+
if (analyticsNameGA4) {
|
39
|
+
gtag('config', analyticsNameGA4, { 'anonymize_ip': true });
|
40
|
+
}
|
45
41
|
}
|
46
42
|
}
|
47
43
|
|
48
44
|
if (isCookieConsent.toLowerCase() === 'true') {
|
49
45
|
addCookieConsentListener();
|
50
46
|
if (readCookie(cookieName) === 'true') {
|
51
|
-
|
47
|
+
googleAnalytics();
|
52
48
|
} else {
|
53
|
-
|
49
|
+
document.getElementById('cookie-notice').style.display = 'block';
|
54
50
|
}
|
55
51
|
} else {
|
56
52
|
googleAnalytics();
|
@@ -10,11 +10,11 @@ const themeButton = {
|
|
10
10
|
'dark': '<i class="fas fa-adjust fa-rotate-180" aria-hidden="true"></i>'
|
11
11
|
}
|
12
12
|
|
13
|
-
const currentTheme = () =>
|
13
|
+
const currentTheme = () => localStorage.getItem('theme')
|
14
14
|
|
15
15
|
function setMode(theme) {
|
16
16
|
document.documentElement.setAttribute('data-theme', theme)
|
17
|
-
|
17
|
+
localStorage.setItem('theme', theme)
|
18
18
|
const toggle = document.getElementById('theme-toggle')
|
19
19
|
if (toggle) {
|
20
20
|
toggle.innerHTML = themeButton[theme]
|
@@ -30,13 +30,14 @@ function themeToggle() {
|
|
30
30
|
}
|
31
31
|
}
|
32
32
|
|
33
|
-
|
33
|
+
function bootstrapTheme() {
|
34
34
|
if (isAutoTheme) {
|
35
35
|
if (!currentTheme()) {
|
36
36
|
// Load browser's preference
|
37
37
|
let browserPrefersDark = window.matchMedia('(prefers-color-scheme: dark)');
|
38
|
+
if (browserPrefersDark.matches) localStorage.setItem('theme', 'dark');
|
38
39
|
browserPrefersDark.addEventListener('change', () => {
|
39
|
-
if (browserPrefersDark.matches)
|
40
|
+
if (browserPrefersDark.matches) localStorage.setItem('theme', 'dark')
|
40
41
|
});
|
41
42
|
}
|
42
43
|
|
@@ -45,3 +46,8 @@ window.onload = function bootstrapTheme() {
|
|
45
46
|
setMode(sessionPrefers ? sessionPrefers : 'light')
|
46
47
|
}
|
47
48
|
}
|
49
|
+
|
50
|
+
// Init
|
51
|
+
(function () {
|
52
|
+
bootstrapTheme();
|
53
|
+
})()
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: type-on-strap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylhare
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-12-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jekyll
|
@@ -290,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
290
290
|
- !ruby/object:Gem::Version
|
291
291
|
version: '0'
|
292
292
|
requirements: []
|
293
|
-
rubygems_version: 3.3.
|
293
|
+
rubygems_version: 3.3.3
|
294
294
|
signing_key:
|
295
295
|
specification_version: 4
|
296
296
|
summary: A simple and responsive jekyll theme template
|