jekyll-theme-endless 0.15.2 → 0.15.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.adoc +25 -7
- data/_includes/aside_navigation.html +16 -9
- data/_includes/function_post-in-list-duplicate-tags.html +40 -0
- data/_includes/function_post-in-list-recent.html +21 -0
- data/_includes/function_tag-cloud.html +2 -2
- data/_includes/function_tag-list.html +10 -14
- data/_includes/function_tag.html +24 -0
- data/_layouts/statistics.html +31 -0
- data/lib/jekyll-theme-endless/generate-tagpages.rb +3 -1
- data/lib/jekyll-theme-endless/version.rb +1 -1
- metadata +61 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70eb8e140c27ecad5aa1a3b7b08720e3753a968cb430c53c60c732aac89a4417
|
4
|
+
data.tar.gz: 0f5fe59a4cad122001c7c6b1b8c70506affafc2aa401a31b0a6816f1aa83e66d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b90fc8846b75d505d42542bb3f518d2afeae12e57f850cb971db984893966d744a6fef5692bfca903c679b30c74660ac574c43d626f72c6e75828ab785696656
|
7
|
+
data.tar.gz: e40b14e13ccdd009b75ca286573cb7f0a355540c4031101ce9c2ee49832b8044a4847e7e1e239abd1c57e66e0e74d8799c922b2e13651d02b53c1a7033ab2e17
|
data/README.adoc
CHANGED
@@ -477,7 +477,7 @@ Generates a list containing blog posts.
|
|
477
477
|
|
478
478
|
`_includes/function_post-in-list-long.html`::
|
479
479
|
Generates the code to display a single post in the list of blog posts.
|
480
|
-
An entry consists of the title of the blog post
|
480
|
+
An entry consists of the title of the blog post (linked to the article),
|
481
481
|
a summary, the creation date and a list of tags associates with the post.
|
482
482
|
|
483
483
|
|
@@ -489,11 +489,35 @@ If a permalink is configured for the article, this is indicated by an icon.
|
|
489
489
|
|
490
490
|
|
491
491
|
|
492
|
+
`_includes/function_post-in-list-recent.html`::
|
493
|
+
Generates the code to display a single post in the list of recent blog posts.
|
494
|
+
An entry consists only of the title of the blog post (linked to the article).
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
`_includes/function_post-in-list-duplicate-tags.html`::
|
499
|
+
Generates the code to display a single post in the list of blog posts that have duplicate tags.
|
500
|
+
An entry consists of the blog post title (linked to the article) and a list of tags
|
501
|
+
that are mentioned multiple times in the tag list, along with their frequency.
|
502
|
+
|
503
|
+
|
504
|
+
|
492
505
|
`_includes/function_tag-cloud.html`::
|
493
506
|
Generates a tag cloud.
|
494
507
|
|
495
508
|
|
496
509
|
|
510
|
+
`_includes/function_tag-list.html`::
|
511
|
+
Generates a formatted list of tags.
|
512
|
+
This is e.g. used to display the tags of a blog post.
|
513
|
+
|
514
|
+
|
515
|
+
|
516
|
+
`_includes/function_tag.html`::
|
517
|
+
Generates the code for a tag-"pill" in a `<li>`-Element.
|
518
|
+
|
519
|
+
|
520
|
+
|
497
521
|
`_includes/content_footer-powered-by.html`::
|
498
522
|
|
499
523
|
Contains the information at the very bottom right of the footer, where the powered-by details are displayed.
|
@@ -521,12 +545,6 @@ username_linkedin: XXXX
|
|
521
545
|
|
522
546
|
|
523
547
|
|
524
|
-
`_includes/function_tag-list.html`::
|
525
|
-
Generates a formatted list of tags.
|
526
|
-
This is e.g. used to display the tags of a blog post.
|
527
|
-
|
528
|
-
|
529
|
-
|
530
548
|
`_includes/function_show-dates.html`::
|
531
549
|
+
|
532
550
|
--
|
@@ -11,16 +11,23 @@ It typically includes blog navigation, such as 'Recent Articles' or 'Tag Cloud,'
|
|
11
11
|
</p>
|
12
12
|
|
13
13
|
<!-- Recent Posts -->
|
14
|
+
{% comment %}Create an empty array.{% endcomment %}
|
15
|
+
{% assign postlist = "" | split:"" %}
|
16
|
+
|
17
|
+
{% for post in site.posts offset: 0 limit: 5 %}
|
18
|
+
{% comment %}
|
19
|
+
'title' is not escaped, as the value should already be escaped by the AsciiDoc processor.
|
20
|
+
{% endcomment %}
|
21
|
+
{% assign postlist = postlist | push: post %}
|
22
|
+
{% endfor %}
|
23
|
+
|
14
24
|
<h4>Recent Posts:</h4>
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
<li><a href="{{ post.url | relative_url }}">{{ post.title }}</a></li>
|
22
|
-
{% endfor %}
|
23
|
-
</ul>
|
25
|
+
{% include function_list-posts.html
|
26
|
+
postlist=postlist
|
27
|
+
postlist-css-class="post-list-short"
|
28
|
+
postlist-format-function="function_post-in-list-recent.html"
|
29
|
+
%}
|
30
|
+
|
24
31
|
|
25
32
|
<!-- Tag Cloud -->
|
26
33
|
<h4>Tag Cloud:</h4>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Processes a single post for display in the list of articles with duplicate tags.
|
3
|
+
Expects a post object as a parameter.
|
4
|
+
|
5
|
+
Call via:
|
6
|
+
----
|
7
|
+
<li>
|
8
|
+
{% include function_post-in-list-duplicate-tags.html
|
9
|
+
post=current_post
|
10
|
+
%}
|
11
|
+
</li>
|
12
|
+
----
|
13
|
+
{% endcomment %}
|
14
|
+
|
15
|
+
|
16
|
+
{% assign post = include.post %}
|
17
|
+
<time itemprop="datePublished" datetime="{{ post.date | date: '%Y-%m-%d' }}">
|
18
|
+
{{ post.date | date: '%Y-%m-%d' }}
|
19
|
+
</time>:
|
20
|
+
|
21
|
+
{% comment %}
|
22
|
+
'title' is not escaped, as the value should already be escaped by the AsciiDoc processor.
|
23
|
+
{% endcomment %}
|
24
|
+
<a href="{{ post.url | relative_url }}" itemprop="url">
|
25
|
+
<span itemprop="headline">{{ post.title }}</span>
|
26
|
+
</a>
|
27
|
+
|
28
|
+
{% assign grouped_tags = include.post.tags | group_by_exp: "x", "x" %}
|
29
|
+
<ul class="list-inline">
|
30
|
+
{% for group in grouped_tags %}
|
31
|
+
{% assign tag_count = group.items | size %}
|
32
|
+
{% if tag_count > 1 %}
|
33
|
+
{% assign additional_string = group.items | size | append: '×' %}
|
34
|
+
{% include function_tag.html
|
35
|
+
tag = group.name
|
36
|
+
add = additional_string
|
37
|
+
%}
|
38
|
+
{% endif %}
|
39
|
+
{% endfor %}
|
40
|
+
</ul>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Processes a single post for display in the list of recent articles.
|
3
|
+
Expects a post object as a parameter.
|
4
|
+
|
5
|
+
Call via:
|
6
|
+
----
|
7
|
+
<li>
|
8
|
+
{% include function_post-in-list-recent.html
|
9
|
+
post=current_post
|
10
|
+
%}
|
11
|
+
</li>
|
12
|
+
----
|
13
|
+
{% endcomment %}
|
14
|
+
|
15
|
+
{% comment %}
|
16
|
+
'title' is not escaped, as the value should already be escaped by the AsciiDoc processor.
|
17
|
+
{% endcomment %}
|
18
|
+
<a href="{{ include.post.url | relative_url }}" itemprop="url">
|
19
|
+
<span itemprop="headline">{{ include.post.title }}</span>
|
20
|
+
</a>
|
21
|
+
|
@@ -34,7 +34,7 @@ Assumption: Non of the tags occurs more than one million times.
|
|
34
34
|
{% assign max = 0 %}
|
35
35
|
|
36
36
|
{% for tag in tags_sorted %}
|
37
|
-
{% assign postsWithThisTag = site.tags[tag] | size %}
|
37
|
+
{% assign postsWithThisTag = site.tags[tag] | uniq | size %}
|
38
38
|
{% if postsWithThisTag > max %}
|
39
39
|
{% assign max = postsWithThisTag %}
|
40
40
|
{% endif %}
|
@@ -63,7 +63,7 @@ Assumption: Non of the tags occurs more than one million times.
|
|
63
63
|
To be on the safe side, create a float (times: 1.0)
|
64
64
|
{% endcomment %}
|
65
65
|
|
66
|
-
{% assign number = site.tags[tag] | size %}
|
66
|
+
{% assign number = site.tags[tag] | uniq | size %}
|
67
67
|
{% comment %}
|
68
68
|
Tags that only occur once, should be displayed smaller than 100% in the tag cloud.
|
69
69
|
{% endcomment %}
|
@@ -1,24 +1,20 @@
|
|
1
1
|
{% comment %}
|
2
|
-
Generates an unsorted list of tags.
|
2
|
+
Generates an unsorted list of unique tags.
|
3
3
|
Requires an array of tags beeing provided via the parameter `tags`.
|
4
4
|
{% endcomment %}
|
5
|
-
{% assign
|
5
|
+
{% assign tags_uniq = include.tags | uniq %}
|
6
|
+
|
7
|
+
{% assign asize = tags_uniq | size %}
|
6
8
|
{% if asize > 0 %}
|
7
9
|
{% comment %}
|
8
|
-
Generate a comma-separated keyword list from
|
10
|
+
Generate a comma-separated keyword list from tags_uniq for the schema.org annotation of the blog post.
|
9
11
|
{% endcomment %}
|
10
|
-
<meta itemprop="keywords" content="{{
|
12
|
+
<meta itemprop="keywords" content="{{ tags_uniq | join: ', ' | escape }}" />
|
11
13
|
<ul class="list-inline">
|
12
|
-
{% for current_tag in
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
Here 'tag' Is NOT escaped, since the plugin generates
|
17
|
-
files for tag-pages with filenames using the unescaped tag.
|
18
|
-
{% endcomment %}
|
19
|
-
{% assign tag_dir = site.tag_dir | default: 'tags' %}
|
20
|
-
href="{{ '/' | append: tag_dir | append: '/' | append: current_tag | relative_url }}"
|
21
|
-
>{{ current_tag | escape }}</a></li>
|
14
|
+
{% for current_tag in tags_uniq %}
|
15
|
+
{% include function_tag.html
|
16
|
+
tag=current_tag
|
17
|
+
%}
|
22
18
|
{% endfor %}
|
23
19
|
</ul>
|
24
20
|
{% endif %}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Outputs a linked tag as a pill.
|
3
|
+
|
4
|
+
Call via:
|
5
|
+
----
|
6
|
+
<li>
|
7
|
+
{% include function_tag.html
|
8
|
+
tag=current_tag
|
9
|
+
add="7*"
|
10
|
+
%}
|
11
|
+
</li>
|
12
|
+
----
|
13
|
+
{% endcomment %}
|
14
|
+
<li class="list-inline-item mx-0 my-0">{{ include.add }}<a
|
15
|
+
class="badge badge-pill badge-secondary"
|
16
|
+
{% comment %}
|
17
|
+
Here 'tag' Is NOT escaped, since the plugin generates
|
18
|
+
files for tag-pages with filenames using the unescaped tag.
|
19
|
+
{% endcomment %}
|
20
|
+
{% assign tag_dir = site.tag_dir | default: 'tags' %}
|
21
|
+
href="{{ '/' | append: tag_dir | append: '/' | append: include.tag | relative_url }}"
|
22
|
+
>{{ include.tag | escape }}</a>
|
23
|
+
</li>
|
24
|
+
|
data/_layouts/statistics.html
CHANGED
@@ -23,6 +23,20 @@ layout: page
|
|
23
23
|
|
24
24
|
|
25
25
|
|
26
|
+
{% comment %}Create an empty array.{% endcomment %}
|
27
|
+
{% assign posts_with_duplicate_tags = "" | split:"" %}
|
28
|
+
|
29
|
+
{% for post in site.posts %}
|
30
|
+
{% assign n_tags = post.tags | size %}
|
31
|
+
{% assign n_unique_tags = post.tags | uniq | size %}
|
32
|
+
|
33
|
+
{% if n_tags != n_unique_tags %}
|
34
|
+
{% assign posts_with_duplicate_tags = posts_with_duplicate_tags | push: post %}
|
35
|
+
{% endif %}
|
36
|
+
{% endfor %}
|
37
|
+
|
38
|
+
|
39
|
+
|
26
40
|
{% comment %}Create an empty array.{% endcomment %}
|
27
41
|
{% assign tags_without_description = "" | split:"" %}
|
28
42
|
{% assign number_of_tags_with_description = 0 %}
|
@@ -103,6 +117,23 @@ Bei Änderungen auch den entsprechenden Blog-Eintrag vom 28.10.2020 anpassen!
|
|
103
117
|
|
104
118
|
|
105
119
|
|
120
|
+
{% assign number_pwdt = posts_with_duplicate_tags | size %}
|
121
|
+
{% if number_pwdt > 0 %}
|
122
|
+
<h3>Posts with duplicate tags</h3>
|
123
|
+
<p>
|
124
|
+
<em>This can be useful for debugging purpose, since every tag should occur only once in a post.</em>
|
125
|
+
</p>
|
126
|
+
|
127
|
+
{% include function_list-posts.html
|
128
|
+
postlist=posts_with_duplicate_tags
|
129
|
+
postlist-css-class = "post-list-short"
|
130
|
+
postlist-format-function = "function_post-in-list-duplicate-tags.html"
|
131
|
+
%}
|
132
|
+
|
133
|
+
{% endif %}
|
134
|
+
|
135
|
+
|
136
|
+
|
106
137
|
{% assign number_twd = tags_without_description | size %}
|
107
138
|
{% if number_twd > 0 %}
|
108
139
|
<h3>Tags without description</h3>
|
@@ -85,7 +85,9 @@ module Jekyll
|
|
85
85
|
self.data['tag'] = tag
|
86
86
|
|
87
87
|
# Make `site.tags[tag]` available as `page.postlist` in the layout
|
88
|
-
|
88
|
+
# The use of `uniq` ensures that an entry does not appear twice in the list of "posts tagged with this tag"
|
89
|
+
# if a tag has been accidentally entered twice in the tag list of a post.
|
90
|
+
self.data['postlist'] = (site.tags[tag] || []).uniq
|
89
91
|
|
90
92
|
#puts "[DEBUG] Loaded self.data: #{self.data.inspect}"
|
91
93
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-endless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sven Boekhoff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll-asciidoc
|
@@ -86,6 +86,62 @@ dependencies:
|
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 2.3.1
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: logger
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: csv
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: ostruct
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: base64
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :runtime
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
89
145
|
description:
|
90
146
|
email:
|
91
147
|
- rubygems.org@boekhoff.net
|
@@ -112,12 +168,15 @@ files:
|
|
112
168
|
- _includes/content_footer-usernames.html
|
113
169
|
- _includes/function_list-pages.html
|
114
170
|
- _includes/function_list-posts.html
|
171
|
+
- _includes/function_post-in-list-duplicate-tags.html
|
115
172
|
- _includes/function_post-in-list-long.html
|
173
|
+
- _includes/function_post-in-list-recent.html
|
116
174
|
- _includes/function_post-in-list-short.html
|
117
175
|
- _includes/function_show-dates.html
|
118
176
|
- _includes/function_show-prev-next-navigation.html
|
119
177
|
- _includes/function_tag-cloud.html
|
120
178
|
- _includes/function_tag-list.html
|
179
|
+
- _includes/function_tag.html
|
121
180
|
- _layouts/default-minimal.html
|
122
181
|
- _layouts/default.html
|
123
182
|
- _layouts/html.html
|