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 +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 +5 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3383d69bf49acfb0cd4677219777a55f6a68c2840074276792ed70f89e1700e3
         | 
| 4 | 
            +
              data.tar.gz: 90b8d1d5ffa62dd6e33840ca2615abb8f25a7d1d99e040eb574de8193ac2210f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 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  | 
| 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.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- | 
| 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
         |