linaro-jekyll-theme 4.0.1 → 4.1.3
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.
- checksums.yaml +4 -4
- data/_config.yml +5 -2
- data/_data/footer.yml +7 -25
- data/_includes/blog/display_latest_posts.html +25 -9
- data/_includes/blog/read_time.html +1 -1
- data/_includes/blog/tags.html +71 -0
- data/_includes/components/head.html +3 -2
- data/_includes/components/jumbotron.html +2 -1
- data/_includes/footer/footer.html +3 -3
- data/_layouts/post.html +47 -26
- data/_sass/core/blog.scss +36 -4
- data/assets/js/app/main.js +52 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ef6489380550d1c690df6d633c0b4868a650be15e5ee048df5c093f3d95b291e
|
|
4
|
+
data.tar.gz: aa3cf5554a177b41b683d8465bfc369510aaf10117fbf8585dfd8e9ad3c41887
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d7b3181a0e782ed535252098ecbc6152bd702d09a69a39b97206288807f319bba0510c379cd8615703a2e8eb8731f4a6fb4f82fcdbd66635a07c05f431c9c6a9
|
|
7
|
+
data.tar.gz: 14efb7cb06a90c6d7c87bf21e375053a924f3e6807dea78d786e047d1ec5384cb9f4431bf0e6d7910567cf7dc55ec6e0626c572ba989f9e0d00f4b52505d1591
|
data/_config.yml
CHANGED
|
@@ -4,7 +4,7 @@ baseurl: ""
|
|
|
4
4
|
description: |-
|
|
5
5
|
The linaro-jekyll-theme is an advanced enterprise ready Jekyll theme used across the Linaro static websites.
|
|
6
6
|
destination: _site
|
|
7
|
-
permalink:
|
|
7
|
+
permalink: /:categories/:title/
|
|
8
8
|
theme: linaro-jekyll-theme
|
|
9
9
|
highlighter: rouge
|
|
10
10
|
markdown: kramdown
|
|
@@ -51,6 +51,7 @@ defaults:
|
|
|
51
51
|
layout: post
|
|
52
52
|
is_post: true
|
|
53
53
|
comments: true
|
|
54
|
+
tags_enabled: true
|
|
54
55
|
strap_image: /assets/images/breadcrumb-image.jpg
|
|
55
56
|
- scope:
|
|
56
57
|
path: ""
|
|
@@ -61,6 +62,8 @@ include: ["_pages"]
|
|
|
61
62
|
# ----------- THEME / WEBSITE CONFIG ---------------------
|
|
62
63
|
# Blog images/thumbs dir
|
|
63
64
|
blog_images_dir: assets/images/content/
|
|
65
|
+
# Blog Tag limit
|
|
66
|
+
tag_limit: 10
|
|
64
67
|
# The default number of posts to display on a given post index page
|
|
65
68
|
# used in the _includes/blog/display_latest_posts.html include
|
|
66
69
|
post_limit: 10
|
|
@@ -133,7 +136,7 @@ disqus:
|
|
|
133
136
|
# Edit on GitHub Settings
|
|
134
137
|
edit-on-github:
|
|
135
138
|
enabled: true
|
|
136
|
-
repo: https://www.github.com/linaro-marketing/
|
|
139
|
+
repo: https://www.github.com/linaro-marketing/linaro-jekyll-theme
|
|
137
140
|
# docs: https://www.github.com/Linaro/website
|
|
138
141
|
# Page breadcrumb schema - https://schema.org/BreadcrumbList
|
|
139
142
|
breadcrumb_schema: true
|
data/_data/footer.yml
CHANGED
|
@@ -2,30 +2,12 @@
|
|
|
2
2
|
copyright_text: Linaro Limited
|
|
3
3
|
# Set this to false if you do not want the Linaro logo in the footer.
|
|
4
4
|
footer_brand:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Contact Info
|
|
9
|
-
display_contact_details: true
|
|
5
|
+
url: https://www.linaro.org
|
|
6
|
+
alt: Linaro Logo
|
|
7
|
+
path: /assets/images/Linaro-logo-white.png
|
|
10
8
|
# These links are displayed at the very bottom of the footer.
|
|
11
9
|
company_links:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
middle_column:
|
|
17
|
-
title: Latest News & Blogs
|
|
18
|
-
latest_posts: true
|
|
19
|
-
third_column:
|
|
20
|
-
title: Other Projects
|
|
21
|
-
items:
|
|
22
|
-
- name: 96Boards
|
|
23
|
-
url: https://www.96boards.org
|
|
24
|
-
- name: Linaro Connect
|
|
25
|
-
url: https://connect.linaro.org
|
|
26
|
-
- name: DeviceTree
|
|
27
|
-
url: https://www.devicetree.org
|
|
28
|
-
- name: OP-TEE
|
|
29
|
-
url: https://www.op-tee.org
|
|
30
|
-
- name: Linaro Developer Cloud
|
|
31
|
-
url: https://www.linaro.cloud
|
|
10
|
+
- name: Legal
|
|
11
|
+
url: /legal/
|
|
12
|
+
- name: Contact
|
|
13
|
+
url: /contact/
|
|
@@ -53,11 +53,19 @@
|
|
|
53
53
|
</div>
|
|
54
54
|
<h5 class="card-title">{{post.title}}</h5>
|
|
55
55
|
<h6 class="card-subtitle mb-2 text-muted">{{ post.date | date: "%A, %B %-d, %Y"}}</h6>
|
|
56
|
+
{% if page.tags_enabled %}
|
|
57
|
+
{% assign post_tags = post.tags | sort %}
|
|
58
|
+
{% for tag in post_tags limit: site.tag_limit %}
|
|
59
|
+
<a class="btn bg-light text-dark btn-sm my-1" href="/{{post.category | downcase}}/tags/?tag={{tag}}">
|
|
60
|
+
{{tag}}
|
|
61
|
+
</a>
|
|
62
|
+
{% endfor %}
|
|
63
|
+
{% endif %}
|
|
56
64
|
<p class="card-text">
|
|
57
65
|
{% if post.description %}
|
|
58
|
-
{{post.description}}
|
|
66
|
+
{{post.description | truncate: 184 }}
|
|
59
67
|
{% else %}
|
|
60
|
-
{{ post.content | strip_html |
|
|
68
|
+
{{ post.content | strip_html | truncate: 184 }}
|
|
61
69
|
{% endif %}
|
|
62
70
|
</p>
|
|
63
71
|
<p class="card-text">
|
|
@@ -70,9 +78,9 @@
|
|
|
70
78
|
</div>
|
|
71
79
|
{% else %}
|
|
72
80
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<
|
|
81
|
+
<div class="col col-12 col-sm-6 col-lg-4 blog-post-item-col p-3">
|
|
82
|
+
<div class="card h-100 ">
|
|
83
|
+
<a class="wrapper_link" href="{{post.url}}"></a>
|
|
76
84
|
<div class="blog_image_header">
|
|
77
85
|
{% if post.image %}
|
|
78
86
|
{% assign block_image = post.image %}
|
|
@@ -83,8 +91,7 @@
|
|
|
83
91
|
{% endif %}
|
|
84
92
|
{% picture featured_blog_image {{block_image}} --alt {{block_image_alt}} %}
|
|
85
93
|
</div>
|
|
86
|
-
<div class="card-body">
|
|
87
|
-
|
|
94
|
+
<div class="card-body d-flex flex-column">
|
|
88
95
|
{% assign author = site.authors | where: "username", post.author | first %}
|
|
89
96
|
{% assign author-url = author.url %}
|
|
90
97
|
{% if author.image %}
|
|
@@ -109,10 +116,19 @@
|
|
|
109
116
|
{{ post.content | strip_html | truncatewords:30 }}
|
|
110
117
|
{% endif %}
|
|
111
118
|
</p>
|
|
119
|
+
{% if page.tags_enabled %}
|
|
120
|
+
{% assign post_tags = post.tags | sort %}
|
|
121
|
+
<div class="d-block mt-auto">
|
|
122
|
+
{% for tag in post_tags limit: site.tag_limit %}
|
|
123
|
+
<a class="btn bg-light text-dark btn-sm my-1" href="/{{post.category | downcase}}/tags/?tag={{tag}}">
|
|
124
|
+
{{tag}}
|
|
125
|
+
</a>
|
|
126
|
+
{% endfor %}
|
|
127
|
+
</div>
|
|
128
|
+
{% endif %}
|
|
112
129
|
</div>
|
|
113
130
|
</div>
|
|
114
|
-
|
|
115
|
-
|
|
131
|
+
|
|
116
132
|
</div>
|
|
117
133
|
{% endif %}
|
|
118
134
|
{% endfor %}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
{% else %}
|
|
5
5
|
{% assign words = content | number_of_words %}
|
|
6
6
|
{% endif %}
|
|
7
|
-
<span class="reading-time
|
|
7
|
+
<span class="align-self-start my-1 reading-time bg-light text-dark badge" title="Estimated read time">{% if words < 360 %}1 min read{% else %}{{ words | divided_by:180 }} mins read{% endif %} <i class="fa fa-clock-o" aria-hidden="true"></i></span>
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<div class="col col-12 tags">
|
|
2
|
+
<div id="tag_cloud" class="d-none">
|
|
3
|
+
{% assign site_tags = site.tags | sort %}
|
|
4
|
+
{% for tag in site_tags %}
|
|
5
|
+
{% for post in tag[1] %}
|
|
6
|
+
{% if include.object.category %}
|
|
7
|
+
{% if post.category == include.object.category %}
|
|
8
|
+
<a class="btn btn-secondary my-2" href="?tag={{tag[0]}}">
|
|
9
|
+
{{tag[0]}}
|
|
10
|
+
</a>
|
|
11
|
+
{% break %}
|
|
12
|
+
{% endif %}
|
|
13
|
+
{% else %}
|
|
14
|
+
<a class="btn btn-secondary my-2" href="?tag={{tag[0]}}">
|
|
15
|
+
{{tag[0]}}
|
|
16
|
+
</a>
|
|
17
|
+
{% break %}
|
|
18
|
+
{% endif %}
|
|
19
|
+
{% endfor %}
|
|
20
|
+
{% endfor %}
|
|
21
|
+
</div>
|
|
22
|
+
<a type="button" class="btn btn-secondary d-none" id="view_all_tags_btn">View all tags</a>
|
|
23
|
+
</div>
|
|
24
|
+
<div class="col col-12 tagged_posts" id="tagged_posts">
|
|
25
|
+
{% for tag in site.tags %}
|
|
26
|
+
<div class="tag_list {{tag[0] | slugify}} d-none">
|
|
27
|
+
<h3>{{ tag[0] }}</h3>
|
|
28
|
+
<ul class="list-unstyled">
|
|
29
|
+
{% for post in tag[1] %}
|
|
30
|
+
{% if include.object.category %}
|
|
31
|
+
{% if post.category == include.object.category %}
|
|
32
|
+
<li class="media" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
|
|
33
|
+
{% assign author = site.authors | where: "username", post.author | first %}
|
|
34
|
+
{% assign author-url = author.url %}
|
|
35
|
+
{% assign author_name = author.name %}
|
|
36
|
+
{% capture author_image_alt %}{{author_name}} image{% endcapture %}
|
|
37
|
+
{% if author.image %}
|
|
38
|
+
{% assign author_image = author.image %}
|
|
39
|
+
{% else %}
|
|
40
|
+
{% assign author_image = site.avatar_placeholder %}
|
|
41
|
+
{% endif %}
|
|
42
|
+
<div class="d-block d-md-inline-block mx-auto my-2 m-md-2 text-md-left text-center">
|
|
43
|
+
<a href="{{author-url}}" itemprop="url" rel="author">
|
|
44
|
+
{% picture author_thumbnail {{author_image}} --alt {{author_image_alt}} %}
|
|
45
|
+
</a>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div class="media-body">
|
|
49
|
+
<a href="{{ post.url }}">
|
|
50
|
+
<h5 class="mt-0 mb-1">{{post.title}}</h5>
|
|
51
|
+
<div class="post_meta" >
|
|
52
|
+
Posted by <strong itemprop="name" rel="author">{{author_name}}</strong> on
|
|
53
|
+
<time datetime="{{post.date}}" >{{post.date | date: "%A, %B %-d, %Y"}}</time>
|
|
54
|
+
</div>
|
|
55
|
+
{% if post.description %}
|
|
56
|
+
{{post.description | truncate: 50 }}
|
|
57
|
+
{% else %}
|
|
58
|
+
{{ post.content | strip_html | truncate: 50 }}
|
|
59
|
+
{% endif %}
|
|
60
|
+
</a>
|
|
61
|
+
</div>
|
|
62
|
+
</li>
|
|
63
|
+
{% endif %}
|
|
64
|
+
{% else %}
|
|
65
|
+
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
|
|
66
|
+
{% endif %}
|
|
67
|
+
{% endfor %}
|
|
68
|
+
</ul>
|
|
69
|
+
</div>
|
|
70
|
+
{% endfor %}
|
|
71
|
+
</div>
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
{% assign description = site.description %}
|
|
17
17
|
{% endif %}
|
|
18
18
|
|
|
19
|
-
|
|
20
19
|
{% if page.title %}
|
|
21
20
|
{% assign title = page.title %}
|
|
22
21
|
{% else %}
|
|
@@ -52,7 +51,9 @@
|
|
|
52
51
|
{% if site.google_analytics.enabled %}
|
|
53
52
|
<meta name="analytics_code" content="{{site.google_analytics.code}}">
|
|
54
53
|
{% endif %}
|
|
55
|
-
{% if page.
|
|
54
|
+
{% if page.tags %}
|
|
55
|
+
<meta name="keywords" content="{{page.tags | join: ", "}}">
|
|
56
|
+
{% elsif page.keywords %}
|
|
56
57
|
<meta name="keywords" content="{{page.keywords}}">
|
|
57
58
|
{% endif %}
|
|
58
59
|
{% include_cached components/schema.html %}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
{%
|
|
1
|
+
{% assign num_of_slides = page.jumbotron.slider | size %}
|
|
2
|
+
{% if page.jumbotron.slider and num_of_slides > 0 %}
|
|
2
3
|
<div class="jumbotron jumbotron-fluid background_image slider {% if page.jumbotron.class %}{{page.jumbotron.class}}{% endif %}">
|
|
3
4
|
<div id="jumbotron-slider" class="owl-carousel owl-theme full-width-slider">
|
|
4
5
|
{% for slide in page.jumbotron.slider %}
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
{% if site.data.footer.footer_brand %}
|
|
18
18
|
<div class="col col-12 text-white text-center m-t-10">
|
|
19
|
-
<a href="{{site.url}}/">
|
|
20
|
-
<img src="{{site.data.footer.footer_brand.
|
|
21
|
-
alt="{{site.
|
|
19
|
+
<a href="{{site.data.footer.footer_brand.url}}/">
|
|
20
|
+
<img src="{{site.data.footer.footer_brand.path}}" class="footer-logo mx-auto"
|
|
21
|
+
alt="{{site.data.footer.footer_brand.alt}}" />
|
|
22
22
|
</a>
|
|
23
23
|
</div>
|
|
24
24
|
{% endif %}
|
data/_layouts/post.html
CHANGED
|
@@ -18,33 +18,54 @@ css_package: blog
|
|
|
18
18
|
</div>
|
|
19
19
|
<div class="row bg-light">
|
|
20
20
|
<div class="container">
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
</div>
|
|
38
|
-
<span class="divider d-none d-md-inline-block">|</span>
|
|
39
|
-
<div class="post_info text-center text-md-left d-block d-md-inline-block">
|
|
40
|
-
<div class="author_name d-inline-block mx-2">
|
|
41
|
-
<time datetime="{{page.date}}" itemprop="datePublished">{{page.date | date: "%A, %B %-d, %Y"}}</time>
|
|
21
|
+
<div class="row" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
|
|
22
|
+
<div class="col col-12 col-sm-2">
|
|
23
|
+
{% assign author = site.authors | where: "username", page.author | first %}
|
|
24
|
+
{% assign author-url = author.url %}
|
|
25
|
+
{% assign author_name = author.name %}
|
|
26
|
+
{% capture author_image_alt %}{{author_name}} image{% endcapture %}
|
|
27
|
+
{% if author.image %}
|
|
28
|
+
{% assign author_image = author.image %}
|
|
29
|
+
{% else %}
|
|
30
|
+
{% assign author_image = site.avatar_placeholder %}
|
|
31
|
+
{% endif %}
|
|
32
|
+
<div class="d-block d-md-inline-block mx-auto my-2 m-md-2 text-md-left text-center">
|
|
33
|
+
<a href="{{author-url}}" itemprop="url" rel="author">
|
|
34
|
+
{% picture author_thumbnail {{author_image}} --alt {{author_image_alt}} %}
|
|
35
|
+
</a>
|
|
36
|
+
</div>
|
|
42
37
|
</div>
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
<div class="col col-12 col-sm-10 d-flex align-items-center">
|
|
39
|
+
<div class="row">
|
|
40
|
+
<div class="col col-12">
|
|
41
|
+
<div class="blockquote d-block d-md-inline-block mx-2 text-md-left text-center">
|
|
42
|
+
<strong itemprop="name" rel="author">{{author_name}}</strong>
|
|
43
|
+
</div>
|
|
44
|
+
<span class="divider d-none d-md-inline-block">|</span>
|
|
45
|
+
<div class="post_info text-center text-md-left d-block d-md-inline-block">
|
|
46
|
+
<div class="author_name d-inline-block mx-2">
|
|
47
|
+
<time datetime="{{page.date}}" itemprop="datePublished">{{page.date | date: "%A, %B %-d, %Y"}}</time>
|
|
48
|
+
</div>
|
|
49
|
+
<span class="divider">|</span>
|
|
50
|
+
<div class="read_time d-inline-block mx-2">
|
|
51
|
+
{% include blog/read_time.html %}
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
{% if page.tags_enabled %}
|
|
56
|
+
<div class="col col-12">
|
|
57
|
+
<div class="post_tags text-center text-md-left my-2 my-sm-1">
|
|
58
|
+
{% assign post_tags = page.tags | sort %}
|
|
59
|
+
{% for tag in post_tags %}
|
|
60
|
+
<a class="btn bg-light text-dark btn-sm my-1" href="/{{page.category | downcase }}/tags/?tag={{tag}}">
|
|
61
|
+
{{tag}}
|
|
62
|
+
</a>
|
|
63
|
+
{% endfor %}
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
{% endif %}
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
48
69
|
</div>
|
|
49
70
|
</div>
|
|
50
71
|
</div>
|
data/_sass/core/blog.scss
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
|
|
16
17
|
#image_header {
|
|
17
18
|
height: 200px;
|
|
18
19
|
overflow: hidden;
|
|
@@ -34,7 +35,14 @@
|
|
|
34
35
|
width: 200px;
|
|
35
36
|
display: block;
|
|
36
37
|
float: left;
|
|
37
|
-
margin:
|
|
38
|
+
margin: 10px 20px;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
&.small-center {
|
|
42
|
+
@include media-breakpoint-up(md) {
|
|
43
|
+
width: 200px;
|
|
44
|
+
display: block;
|
|
45
|
+
margin: 20px auto;
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
&.medium-inline {
|
|
@@ -42,7 +50,14 @@
|
|
|
42
50
|
width: 300px;
|
|
43
51
|
display: block;
|
|
44
52
|
float: left;
|
|
45
|
-
margin:
|
|
53
|
+
margin: 10px 20px;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
&.medium-center {
|
|
57
|
+
@include media-breakpoint-up(md) {
|
|
58
|
+
width: 300px;
|
|
59
|
+
display: block;
|
|
60
|
+
margin: 20px auto;
|
|
46
61
|
}
|
|
47
62
|
}
|
|
48
63
|
&.large-inline {
|
|
@@ -50,7 +65,14 @@
|
|
|
50
65
|
width: 400px;
|
|
51
66
|
display: block;
|
|
52
67
|
float: left;
|
|
53
|
-
margin:
|
|
68
|
+
margin: 10px 20px;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
&.large-center {
|
|
72
|
+
@include media-breakpoint-up(md) {
|
|
73
|
+
width: 400px;
|
|
74
|
+
display: block;
|
|
75
|
+
margin: 20px auto;
|
|
54
76
|
}
|
|
55
77
|
}
|
|
56
78
|
&.right {
|
|
@@ -208,7 +230,7 @@
|
|
|
208
230
|
width: 100%;
|
|
209
231
|
color: white;
|
|
210
232
|
position: absolute;
|
|
211
|
-
z-index:
|
|
233
|
+
z-index: 0;
|
|
212
234
|
text-align: center;
|
|
213
235
|
top: 50%;
|
|
214
236
|
transform: translateY(-50%);
|
|
@@ -230,12 +252,22 @@
|
|
|
230
252
|
-moz-box-shadow: none;
|
|
231
253
|
}
|
|
232
254
|
.card {
|
|
255
|
+
a.wrapper_link {
|
|
256
|
+
position: absolute;
|
|
257
|
+
width: 100%;
|
|
258
|
+
height: 100%;
|
|
259
|
+
z-index: 1;
|
|
260
|
+
}
|
|
233
261
|
border-radius: 20px;
|
|
234
262
|
overflow: hidden;
|
|
235
263
|
-webkit-box-shadow: 0px 0px 20px 5px #f0f0f0;
|
|
236
264
|
-moz-box-shadow: 0px 0px 20px 5px #e5e5e5;
|
|
237
265
|
box-shadow: 0px 0px 20px 5px #ebebeb;
|
|
238
266
|
transition: all 200ms ease;
|
|
267
|
+
a {
|
|
268
|
+
position: relative;
|
|
269
|
+
z-index: 2;
|
|
270
|
+
}
|
|
239
271
|
&:hover {
|
|
240
272
|
transform: translateY(-5px);
|
|
241
273
|
-webkit-box-shadow: 0px 0px 20px 5px #b3b3b3;
|
data/assets/js/app/main.js
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
function slugify(string) {
|
|
2
|
+
const a =
|
|
3
|
+
"àáâäæãåāăąçćčđďèéêëēėęěğǵḧîïíīįìłḿñńǹňôöòóœøōõőṕŕřßśšşșťțûüùúūǘůűųẃẍÿýžźż·/_,:;";
|
|
4
|
+
const b =
|
|
5
|
+
"aaaaaaaaaacccddeeeeeeeegghiiiiiilmnnnnoooooooooprrsssssttuuuuuuuuuwxyyzzz------";
|
|
6
|
+
const p = new RegExp(a.split("").join("|"), "g");
|
|
7
|
+
|
|
8
|
+
return string
|
|
9
|
+
.toString()
|
|
10
|
+
.toLowerCase()
|
|
11
|
+
.replace(/\s+/g, "-") // Replace spaces with -
|
|
12
|
+
.replace(p, (c) => b.charAt(a.indexOf(c))) // Replace special characters
|
|
13
|
+
.replace(/&/g, "-and-") // Replace & with 'and'
|
|
14
|
+
.replace(/[^\w\-]+/g, "") // Remove all non-word characters
|
|
15
|
+
.replace(/\-\-+/g, "-") // Replace multiple - with single -
|
|
16
|
+
.replace(/^-+/, "") // Trim - from start of text
|
|
17
|
+
.replace(/-+$/, ""); // Trim - from end of text
|
|
18
|
+
}
|
|
19
|
+
|
|
1
20
|
$(document).ready(function () {
|
|
2
21
|
// Clipboard JS
|
|
3
22
|
if ($("div.highlight").length > 0) {
|
|
@@ -26,6 +45,39 @@ $(document).ready(function () {
|
|
|
26
45
|
});
|
|
27
46
|
});
|
|
28
47
|
}
|
|
48
|
+
// Tagged Posts
|
|
49
|
+
if ($("#tagged_posts").length > 0) {
|
|
50
|
+
var getUrlParameter = (sParam) => {
|
|
51
|
+
var sPageURL = window.location.search.substring(1),
|
|
52
|
+
sURLVariables = sPageURL.split("&"),
|
|
53
|
+
sParameterName,
|
|
54
|
+
i;
|
|
55
|
+
|
|
56
|
+
for (i = 0; i < sURLVariables.length; i++) {
|
|
57
|
+
sParameterName = sURLVariables[i].split("=");
|
|
58
|
+
|
|
59
|
+
if (sParameterName[0] === sParam) {
|
|
60
|
+
return sParameterName[1] === undefined
|
|
61
|
+
? true
|
|
62
|
+
: decodeURIComponent(sParameterName[1]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
var tag = getUrlParameter("tag");
|
|
67
|
+
if (tag !== undefined) {
|
|
68
|
+
console.log(tag);
|
|
69
|
+
$(".tag_list").addClass("d-none");
|
|
70
|
+
$(`.tag_list.${slugify(tag)}`).addClass("d-block");
|
|
71
|
+
$(`#tag_cloud`).addClass("d-none");
|
|
72
|
+
$(`#view_all_tags_btn`).addClass("d-inline-block");
|
|
73
|
+
$(this).html(tag);
|
|
74
|
+
$("#view_all_tags_btn").on("click", function () {
|
|
75
|
+
window.location.replace(window.location.pathname);
|
|
76
|
+
});
|
|
77
|
+
} else {
|
|
78
|
+
$(`#tag_cloud`).removeClass("d-none");
|
|
79
|
+
}
|
|
80
|
+
}
|
|
29
81
|
if ($("#jumbotron-slider").length > 0) {
|
|
30
82
|
$("#jumbotron-slider").owlCarousel({
|
|
31
83
|
navigation: true,
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: linaro-jekyll-theme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kyle Kirkby
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-11-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -180,6 +180,7 @@ files:
|
|
|
180
180
|
- _includes/blog/post_series.html
|
|
181
181
|
- _includes/blog/post_sidebar.html
|
|
182
182
|
- _includes/blog/read_time.html
|
|
183
|
+
- _includes/blog/tags.html
|
|
183
184
|
- _includes/components/breadcrumb.html
|
|
184
185
|
- _includes/components/carousel_header.html
|
|
185
186
|
- _includes/components/cookie_manager.html
|