jekyll-theme-endless 0.15.2 → 0.15.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7bbaeca21ac57a821e22eb43f438b9328b3dd0330277eeb479a9c10a0d42c5b
4
- data.tar.gz: 27cce9d41f9f364ac29d86287b3f37fd15cbb829c3b6cb76ded552bdfc070abc
3
+ metadata.gz: 3383d69bf49acfb0cd4677219777a55f6a68c2840074276792ed70f89e1700e3
4
+ data.tar.gz: 90b8d1d5ffa62dd6e33840ca2615abb8f25a7d1d99e040eb574de8193ac2210f
5
5
  SHA512:
6
- metadata.gz: 0d452bcc2934df29c0211eba621849717a13ed163321b387f2b8e1369facdfab14e3b3e3b63bc984934f3db082a8fbe2b4571bb83a1537e22b1e593084213cec
7
- data.tar.gz: caac122db717ca3962838479dff411f35f0110df8b932c0b05347cdc9a614d921780b34bdafa6198e61a438e35a5d1bc0e12b7fc6b64dce46a9e807e6a0c0d67
6
+ metadata.gz: 53ab9e6a8b36460d300d51f92cfa9e0f8ae80760282059cac932600fe08122d21d617ba401b57a5f88e5a3c9a3bee25c95a2ae8a4363f77fc3489f93ebf15dce
7
+ data.tar.gz: e78303fa54384fe39d521a8bb4abb8ef5b23d69b89c78c7fb3a556f5784caedb5ae1bd353a58c9816f48dcf32c6c4075ccb7722695c8a0688856a80d28817a3b
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 )linked to the article),
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
- <ul>
16
- {% assign postlist = site.posts | sort:"date" | reverse %}
17
- {% for post in postlist 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
- <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 asize = include.tags | size %}
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 page.tags for the schema.org annotation of the blog post.
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="{{ page.tags | join: ', ' | escape }}" />
12
+ <meta itemprop="keywords" content="{{ tags_uniq | join: ', ' | escape }}" />
11
13
  <ul class="list-inline">
12
- {% for current_tag in include.tags %}
13
- <li class="list-inline-item mx-0 my-0"><a
14
- class="badge badge-pill badge-secondary"
15
- {% comment %}
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
+
@@ -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
- self.data['postlist'] = site.tags[tag] || []
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
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Endless
3
- VERSION = '0.15.2'
3
+ VERSION = '0.15.3'
4
4
  end
5
5
  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.2
4
+ version: 0.15.3
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-15 00:00:00.000000000 Z
11
+ date: 2024-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll-asciidoc
@@ -112,12 +112,15 @@ files:
112
112
  - _includes/content_footer-usernames.html
113
113
  - _includes/function_list-pages.html
114
114
  - _includes/function_list-posts.html
115
+ - _includes/function_post-in-list-duplicate-tags.html
115
116
  - _includes/function_post-in-list-long.html
117
+ - _includes/function_post-in-list-recent.html
116
118
  - _includes/function_post-in-list-short.html
117
119
  - _includes/function_show-dates.html
118
120
  - _includes/function_show-prev-next-navigation.html
119
121
  - _includes/function_tag-cloud.html
120
122
  - _includes/function_tag-list.html
123
+ - _includes/function_tag.html
121
124
  - _layouts/default-minimal.html
122
125
  - _layouts/default.html
123
126
  - _layouts/html.html