jekyll-theme-endless 0.15.2 → 0.15.3

Sign up to get free protection for your applications and to get access to all the features.
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