jekyll-theme-endless 0.15.2 → 0.15.4
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/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
|