jekyll-theme-endless 0.15.4 → 0.16.0
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 +94 -5
- data/_includes/function_glossary-entry.html +35 -0
- data/_layouts/page-glossary.html +94 -0
- data/_layouts/page-tag-template.html +13 -13
- data/_sass/adoc-lists.scss +0 -13
- data/_sass/glossary.scss +89 -0
- data/assets/css/main.scss +1 -0
- data/lib/jekyll-theme-endless/generate-tagpages.rb +10 -10
- data/lib/jekyll-theme-endless/liquid-match-filter.rb +14 -0
- data/lib/jekyll-theme-endless/version.rb +1 -1
- metadata +68 -16
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: bddf1bb5d80610ddbbf606841ac3a00136f84d9038b3bc9a4e6d3df4152531c4
         | 
| 4 | 
            +
              data.tar.gz: f5aa87f5e307073e76fe5a7d8ce1106a117828e7fdb60b7fac914ae1e5c3fc7a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 4a4bbd7d7d42cee5d0f6082585190794367f32dca21a61bb878458c0582c16b7b7355fea818e2133bf6db8c77f864d9e5ad7db62e4750975e42005eb1d74576a
         | 
| 7 | 
            +
              data.tar.gz: 3cba98368d02e5a32b8917172c07bb658829d8e043abd6e9ec254c94b7468191d9344ba0f4c9eca5187d22b8dfdf0c6e8b1af1cb95ad42820fa7c908c0c71a6b
         | 
    
        data/README.adoc
    CHANGED
    
    | @@ -233,6 +233,15 @@ Content | |
| 233 233 |  | 
| 234 234 |  | 
| 235 235 |  | 
| 236 | 
            +
            `_layouts/page-glossary.html`::
         | 
| 237 | 
            +
            +
         | 
| 238 | 
            +
            --
         | 
| 239 | 
            +
            This is a layout for a page that displays, at its end, a list of all terms from the file `_data/tag-descriptions.yml` along with their respective explanations.
         | 
| 240 | 
            +
            The explanations can include complex content, such as lists, code blocks, or admonitions.
         | 
| 241 | 
            +
            --
         | 
| 242 | 
            +
             | 
| 243 | 
            +
             | 
| 244 | 
            +
             | 
| 236 245 | 
             
            `_layouts/page-postlist.html`::
         | 
| 237 246 | 
             
            +
         | 
| 238 247 | 
             
            --
         | 
| @@ -451,6 +460,11 @@ The content of this file is inserted at the end of the post, below the navigatio | |
| 451 460 |  | 
| 452 461 |  | 
| 453 462 |  | 
| 463 | 
            +
            `_includes/function_glossary-entry.html`::
         | 
| 464 | 
            +
            This function is called to display an entry in the glossary.
         | 
| 465 | 
            +
             | 
| 466 | 
            +
             | 
| 467 | 
            +
             | 
| 454 468 | 
             
            `_includes/function_list-pages.html`::
         | 
| 455 469 | 
             
            +
         | 
| 456 470 | 
             
            --
         | 
| @@ -568,7 +582,7 @@ Displays links to the previous and the next post of your blog. | |
| 568 582 |  | 
| 569 583 | 
             
            === Plugins
         | 
| 570 584 |  | 
| 571 | 
            -
            ` | 
| 585 | 
            +
            `lib/jekyll-theme-endless/generate-tagpages.rb`::
         | 
| 572 586 | 
             
            +
         | 
| 573 587 | 
             
            --
         | 
| 574 588 | 
             
            Generates a page for each tag listed in `site.tags`.
         | 
| @@ -591,6 +605,27 @@ tag_title_prefix: "Posts tagged with: " | |
| 591 605 |  | 
| 592 606 |  | 
| 593 607 |  | 
| 608 | 
            +
            `lib/jekyll-theme-endless/liquid-match-filter.rb`::
         | 
| 609 | 
            +
            +
         | 
| 610 | 
            +
            --
         | 
| 611 | 
            +
            Liquid filter `match` that enables checking whether a string matches a regular expression.
         | 
| 612 | 
            +
             | 
| 613 | 
            +
            .Example of how to use the `match` filter in Liquid
         | 
| 614 | 
            +
            [source, liquid]
         | 
| 615 | 
            +
            ----
         | 
| 616 | 
            +
            {% assign string = "Xapple" %}
         | 
| 617 | 
            +
            {% assign result = string | match: "^a" %}
         | 
| 618 | 
            +
             | 
| 619 | 
            +
            {% if result  %}
         | 
| 620 | 
            +
              "{{ string }}" begins with the letter "a".
         | 
| 621 | 
            +
            {% else %}
         | 
| 622 | 
            +
              "{{ string }}" does not begin with the letter "a".
         | 
| 623 | 
            +
            {% endif %}
         | 
| 624 | 
            +
            ----
         | 
| 625 | 
            +
            --
         | 
| 626 | 
            +
             | 
| 627 | 
            +
             | 
| 628 | 
            +
             | 
| 594 629 | 
             
            === Styles
         | 
| 595 630 |  | 
| 596 631 | 
             
            In order to contribute SCSS-code, simply add a file `_sass/user.scss`, containing your SCSS-code.
         | 
| @@ -618,12 +653,13 @@ additional-stylesheets: | |
| 618 653 | 
             
            --
         | 
| 619 654 | 
             
            You have the option to store descriptions for your tags in a YAML file.
         | 
| 620 655 | 
             
            This is useful to ensure that everyone has the same understanding of each tag.
         | 
| 621 | 
            -
            In the current theme, the descriptions are used in  | 
| 656 | 
            +
            In the current theme, the descriptions are used in three places:
         | 
| 622 657 |  | 
| 623 | 
            -
            * On the tag page, below the page header
         | 
| 624 | 
            -
            * As the title of each tag in the tag cloud
         | 
| 658 | 
            +
            * On the tag page, below the page header (If available, the `long` description is preferred here.)
         | 
| 659 | 
            +
            * As the title of each tag in the tag cloud (Only the `short` description is used here.)
         | 
| 660 | 
            +
            * In the glossary layout (If available, the `long` description is preferred here.)
         | 
| 625 661 |  | 
| 626 | 
            -
            The  | 
| 662 | 
            +
            The descriptions in the YAML file can include AsciiDoc code, as shown in the following example:
         | 
| 627 663 |  | 
| 628 664 | 
             
            [source, yml]
         | 
| 629 665 | 
             
            ----
         | 
| @@ -631,9 +667,55 @@ Tag: | |
| 631 667 | 
             
              short: "Short description for the tag 'Tag'."
         | 
| 632 668 | 
             
            AsciiDoc:
         | 
| 633 669 | 
             
              short: "A lightweight but feature-rich markup language used for writing documentation in plain text."
         | 
| 670 | 
            +
              long: > # folded block - single newlines are replaced with spaces.
         | 
| 671 | 
            +
                AsciiDoc is a lightweight yet powerful markup language
         | 
| 672 | 
            +
                designed for writing documentation in plain text format.
         | 
| 673 | 
            +
                It supports a rich set of features, including the ability to create
         | 
| 674 | 
            +
                structured documents, such as articles, books, and slides.
         | 
| 675 | 
            +
                AsciiDoc's syntax is intuitive and easy to learn, while providing
         | 
| 676 | 
            +
                advanced capabilities like tables, lists, code blocks, and cross-references.
         | 
| 677 | 
            +
             | 
| 678 | 
            +
                Additionally, AsciiDoc content can be converted to various output formats,
         | 
| 679 | 
            +
                including HTML, PDF, and DocBook, making it highly versatile for
         | 
| 680 | 
            +
                technical documentation and publishing workflows."
         | 
| 634 681 | 
             
            Bootstrap:
         | 
| 635 682 | 
             
              short: "A popular front-end framework for building responsive, mobile-first websites using CSS and JavaScript components."
         | 
| 636 683 | 
             
            CSS:
         | 
| 684 | 
            +
              long: | # literal block - newlines are preserved.
         | 
| 685 | 
            +
                Cascading Style Sheets (CSS) is a stylesheet language used to describe the presentation
         | 
| 686 | 
            +
                of a web page, including its layout, colors, fonts, and other design elements.
         | 
| 687 | 
            +
                CSS allows developers to separate content from design, enabling better
         | 
| 688 | 
            +
                maintainability and consistency across multiple pages.
         | 
| 689 | 
            +
                It provides powerful tools for responsive design, enabling web pages to
         | 
| 690 | 
            +
                adapt seamlessly to different screen sizes and devices.
         | 
| 691 | 
            +
                By utilizing selectors and rules, CSS can target specific elements of a page
         | 
| 692 | 
            +
                to apply styles, making it a core technology of modern web development.
         | 
| 693 | 
            +
             | 
| 694 | 
            +
                Example CSS
         | 
| 695 | 
            +
             | 
| 696 | 
            +
                [source,css]
         | 
| 697 | 
            +
                ----
         | 
| 698 | 
            +
                /* Basic CSS example for styling a web page */
         | 
| 699 | 
            +
                body {
         | 
| 700 | 
            +
                  font-family: Arial, sans-serif;
         | 
| 701 | 
            +
                  background-color: #f4f4f4;
         | 
| 702 | 
            +
                  margin: 0;
         | 
| 703 | 
            +
                  padding: 0;
         | 
| 704 | 
            +
                }
         | 
| 705 | 
            +
             | 
| 706 | 
            +
                h1 {
         | 
| 707 | 
            +
                  color: #333;
         | 
| 708 | 
            +
                  text-align: center;
         | 
| 709 | 
            +
                }
         | 
| 710 | 
            +
             | 
| 711 | 
            +
                p {
         | 
| 712 | 
            +
                  line-height: 1.6;
         | 
| 713 | 
            +
                  color: #666;
         | 
| 714 | 
            +
                }
         | 
| 715 | 
            +
                ----
         | 
| 716 | 
            +
             | 
| 717 | 
            +
                This snippet demonstrates how CSS is used to style a webpage, including defining fonts,
         | 
| 718 | 
            +
                background color, margins, and text styles for headers and paragraphs.
         | 
| 637 719 | 
             
              short: "Cascading Style Sheets, a language used for describing the presentation of a web page, including layout, colors, and fonts."
         | 
| 638 720 | 
             
            ----
         | 
| 639 721 |  | 
| @@ -729,6 +811,13 @@ To test the theme *with example-data*, run: | |
| 729 811 | 
             
            bundle exec jekyll serve --config _config.yml,_data.yml
         | 
| 730 812 | 
             
            ----
         | 
| 731 813 |  | 
| 814 | 
            +
            If you want additional debug output, simply set the log-level to `debug`:
         | 
| 815 | 
            +
             | 
| 816 | 
            +
            [source, bash]
         | 
| 817 | 
            +
            ----
         | 
| 818 | 
            +
            JEKYLL_LOG_LEVEL=debug bundle exec jekyll serve --config _config.yml,_data.yml
         | 
| 819 | 
            +
            ----
         | 
| 820 | 
            +
             | 
| 732 821 | 
             
            Values for theme specific configurations are stored in `_data.yml` and not in the themes `_config.yml`.
         | 
| 733 822 | 
             
            Since the `_config.yml` is shipped with the gem,
         | 
| 734 823 | 
             
            the users of your theme would otherwise have to unset the values in their own `config.yml`.
         | 
| @@ -0,0 +1,35 @@ | |
| 1 | 
            +
            {% comment %}
         | 
| 2 | 
            +
            This function is called to display an entry in the glossary.
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            'term' is escaped, since it is set in a data-file.
         | 
| 5 | 
            +
            'description' is asciidocified, to allow AsciiDoc formatting in the descriptions.
         | 
| 6 | 
            +
            {% endcomment %}
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            {% assign number  = site.tags[include.term] | uniq | size %}
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            {% comment %}
         | 
| 11 | 
            +
            In the href 'tag' Is NOT escaped, since the plugin generates
         | 
| 12 | 
            +
            files for tag-pages using filenames with the unescaped tag.
         | 
| 13 | 
            +
            {% endcomment %}
         | 
| 14 | 
            +
            {% assign tag_dir = site.tag_dir | default: 'tags' %}
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            {% if include.description.long %}
         | 
| 17 | 
            +
              <dt>{{ include.term | escape }}</dt>
         | 
| 18 | 
            +
              <dd>
         | 
| 19 | 
            +
                {{ include.description.long | asciidocify }}
         | 
| 20 | 
            +
                <p>
         | 
| 21 | 
            +
                  Number of <a href="{{ '/' | append: tag_dir | append: '/' | append: include.term | relative_url }}">posts tagged with "{{ include.term | escape }}"</a>:
         | 
| 22 | 
            +
            			<strong><em>{{ number }}</em></strong>
         | 
| 23 | 
            +
            		</p>
         | 
| 24 | 
            +
              </dd>
         | 
| 25 | 
            +
            {% elsif include.description.short %}
         | 
| 26 | 
            +
              <dt>{{ include.term | escape }}</dt>
         | 
| 27 | 
            +
              <dd>
         | 
| 28 | 
            +
                {{ include.description.short | asciidocify }}
         | 
| 29 | 
            +
                <p>
         | 
| 30 | 
            +
                  Number of <a href="{{ '/' | append: tag_dir | append: '/' | append: include.term | relative_url }}">posts tagged with "{{ include.term | escape }}"</a>:
         | 
| 31 | 
            +
            			<strong><em>{{ number }}</em></strong>
         | 
| 32 | 
            +
            		</p>
         | 
| 33 | 
            +
              </dd>
         | 
| 34 | 
            +
            {% endif %}
         | 
| 35 | 
            +
             | 
| @@ -0,0 +1,94 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            # Regular page with a tags and their description attached to the end of the content.
         | 
| 3 | 
            +
            layout: page
         | 
| 4 | 
            +
            ---
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            {{ content }}
         | 
| 7 | 
            +
             | 
| 8 | 
            +
             | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 11 | 
            +
             | 
| 12 | 
            +
            {% comment %}Create an empty array.{% endcomment %}
         | 
| 13 | 
            +
            {% assign terms = "" | split:"" %}
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            {% comment %}Get a list of all tags.{% endcomment %}
         | 
| 16 | 
            +
            {% for key in site.data.tag-description %}
         | 
| 17 | 
            +
            	{% assign terms = terms | push: key[0] %}
         | 
| 18 | 
            +
            {% endfor %}
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            {% comment %}Sort the list{% endcomment %}
         | 
| 21 | 
            +
            {% assign terms = terms | sort_natural %}
         | 
| 22 | 
            +
             | 
| 23 | 
            +
             | 
| 24 | 
            +
             | 
| 25 | 
            +
             | 
| 26 | 
            +
             | 
| 27 | 
            +
            <!-- Index of the glossary. -->
         | 
| 28 | 
            +
            {% assign letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" | split: "" %}
         | 
| 29 | 
            +
            <div class="glossary-index" id="index">
         | 
| 30 | 
            +
            	<strong>Index:</strong>
         | 
| 31 | 
            +
            	<ul>
         | 
| 32 | 
            +
            		<li><a href="#special">#</a></li>
         | 
| 33 | 
            +
            		{% for letter in letters %}
         | 
| 34 | 
            +
            			<li><a href="#{{ letter }}">{{ letter }}</a></li>
         | 
| 35 | 
            +
            		{% endfor %}
         | 
| 36 | 
            +
            	</ul>
         | 
| 37 | 
            +
            </div>
         | 
| 38 | 
            +
             | 
| 39 | 
            +
             | 
| 40 | 
            +
             | 
| 41 | 
            +
             | 
| 42 | 
            +
             | 
| 43 | 
            +
            <!-- Terms starting with special characters or numbers. -->
         | 
| 44 | 
            +
            <h2 class="glossary" id="special">
         | 
| 45 | 
            +
            	<span>#</span>
         | 
| 46 | 
            +
              <a href="#index" class="back-to-index">Back to Index</a>
         | 
| 47 | 
            +
            </h2>
         | 
| 48 | 
            +
            <dl>
         | 
| 49 | 
            +
            {% for term in terms %}
         | 
| 50 | 
            +
            	{% assign first_letter = term  | slice: 0, 1 %}
         | 
| 51 | 
            +
            	{% assign first_letter_matches = first_letter | match: "^[^A-Za-z]" %}
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            	{% if first_letter_matches %}
         | 
| 54 | 
            +
             | 
| 55 | 
            +
            		{% assign description=site.data.tag-description[term] %}
         | 
| 56 | 
            +
            		{% include function_glossary-entry.html
         | 
| 57 | 
            +
            			term=term
         | 
| 58 | 
            +
            			description=description
         | 
| 59 | 
            +
            		%}
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            	{% endif %}
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            {% endfor %}
         | 
| 64 | 
            +
            </dl>
         | 
| 65 | 
            +
            <div>
         | 
| 66 | 
            +
             | 
| 67 | 
            +
             | 
| 68 | 
            +
             | 
| 69 | 
            +
             | 
| 70 | 
            +
            <!-- Terms starting with letters from A-Z. -->
         | 
| 71 | 
            +
            {% for letter in letters %}
         | 
| 72 | 
            +
              <h2 class="glossary" id="{{ letter }}">
         | 
| 73 | 
            +
            		<span>{{ letter }}</span>
         | 
| 74 | 
            +
            		<a href="#index" class="back-to-index">Back to Index</a>
         | 
| 75 | 
            +
            	</h2>
         | 
| 76 | 
            +
              <dl>
         | 
| 77 | 
            +
              {% for term in terms %}
         | 
| 78 | 
            +
            		{% assign first_letter = term | slice: 0, 1 | upcase %}
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                {% if first_letter == letter %}
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            			{% assign description=site.data.tag-description[term] %}
         | 
| 83 | 
            +
            			{% include function_glossary-entry.html
         | 
| 84 | 
            +
            				term=term
         | 
| 85 | 
            +
            				description=description
         | 
| 86 | 
            +
            			%}
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            		{% endif %}
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            	{% endfor %}
         | 
| 91 | 
            +
            	</dl>
         | 
| 92 | 
            +
            {% endfor %}
         | 
| 93 | 
            +
             | 
| 94 | 
            +
             | 
| @@ -6,19 +6,6 @@ menu_position: -10 | |
| 6 6 | 
             
            page.tag and page.title are set by the plugin `generate-taglist`.
         | 
| 7 7 | 
             
            {% endcomment %}
         | 
| 8 8 |  | 
| 9 | 
            -
            {% if site.data.tag-description[page.tag].short %}
         | 
| 10 | 
            -
            	<p>
         | 
| 11 | 
            -
            		{% comment %}
         | 
| 12 | 
            -
            		'tag' is escaped, assuming it does not contain special characters
         | 
| 13 | 
            -
            		that were already escaped by the AsciiDoc processor, or, if special characters are present,
         | 
| 14 | 
            -
            		the tags were set unescaped through the Jekyll front matter.
         | 
| 15 | 
            -
            		'tag-description' is escaped, since it is set in a data-file.
         | 
| 16 | 
            -
            		{% endcomment %}
         | 
| 17 | 
            -
            		In this blog, the tag <dfn>{{ page.tag | escape }}</dfn> is used with the meaning
         | 
| 18 | 
            -
            		"<em>{{ site.data.tag-description[page.tag].short | escape }}</em>".
         | 
| 19 | 
            -
            	</p>
         | 
| 20 | 
            -
            {% endif %}
         | 
| 21 | 
            -
             | 
| 22 9 | 
             
            <p>
         | 
| 23 10 | 
             
            	{% comment %}
         | 
| 24 11 | 
             
            	'tag' is escaped, assuming it does not contain special characters
         | 
| @@ -28,3 +15,16 @@ page.tag and page.title are set by the plugin `generate-taglist`. | |
| 28 15 | 
             
            	Number of posts tagged with "<em>{{ page.tag | escape }}</em>": <strong>{{ site.tags[ page.tag ] | size }}</strong>
         | 
| 29 16 | 
             
            </p>
         | 
| 30 17 |  | 
| 18 | 
            +
            {% if site.data.tag-description[page.tag].short %}
         | 
| 19 | 
            +
            	<dl>
         | 
| 20 | 
            +
            		{% comment %}
         | 
| 21 | 
            +
            		'tag' is escaped, assuming it does not contain special characters
         | 
| 22 | 
            +
            		that were already escaped by the AsciiDoc processor, or, if special characters are present,
         | 
| 23 | 
            +
            		the tags were set unescaped through the Jekyll front matter.
         | 
| 24 | 
            +
            		'tag-description' is escaped, since it is set in a data-file.
         | 
| 25 | 
            +
            		{% endcomment %}
         | 
| 26 | 
            +
            		<dt>In this blog, the tag <dfn>{{ page.tag | escape }}</dfn> is used with the meaning</dt>
         | 
| 27 | 
            +
            		<dd>{{ site.data.tag-description[page.tag].short | asciidocify }}</dd>.
         | 
| 28 | 
            +
            	</dl>
         | 
| 29 | 
            +
            {% endif %}
         | 
| 30 | 
            +
             | 
    
        data/_sass/adoc-lists.scss
    CHANGED
    
    
    
        data/_sass/glossary.scss
    ADDED
    
    | @@ -0,0 +1,89 @@ | |
| 1 | 
            +
            dl{
         | 
| 2 | 
            +
            	dt {
         | 
| 3 | 
            +
            		margin-bottom: .3125em;
         | 
| 4 | 
            +
            		font-weight: bold;
         | 
| 5 | 
            +
            	}
         | 
| 6 | 
            +
            	dd {
         | 
| 7 | 
            +
            		margin-left: .7em;
         | 
| 8 | 
            +
            		padding-left: .7em;
         | 
| 9 | 
            +
            		padding-top: .3em;
         | 
| 10 | 
            +
            		padding-bottom: .01em;
         | 
| 11 | 
            +
            		margin-bottom: 2.1em;
         | 
| 12 | 
            +
            		border-left: 5px solid #dee2e6;
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            		p {
         | 
| 15 | 
            +
            			margin-bottom: 0.5em;
         | 
| 16 | 
            +
            		}
         | 
| 17 | 
            +
            	}
         | 
| 18 | 
            +
            }
         | 
| 19 | 
            +
             | 
| 20 | 
            +
             | 
| 21 | 
            +
             | 
| 22 | 
            +
            div.glossary-index {
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            	margin-top: 3em;
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            	ul {
         | 
| 27 | 
            +
            		list-style-type: none;
         | 
| 28 | 
            +
            		padding: 0;
         | 
| 29 | 
            +
            		margin: 0;
         | 
| 30 | 
            +
            		display: inline;
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            		li {
         | 
| 33 | 
            +
            			display: inline;
         | 
| 34 | 
            +
            			padding: 0;
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            			a {
         | 
| 37 | 
            +
            				text-decoration: none;
         | 
| 38 | 
            +
            				font-family: monospace;
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            				padding: 2px 8px;
         | 
| 41 | 
            +
            				border: 1px solid #d3d3d3;
         | 
| 42 | 
            +
            				border-radius: 4px;
         | 
| 43 | 
            +
            				display: inline-block;
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            				&:hover {
         | 
| 46 | 
            +
            					text-decoration: underline;
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            					background-color: #ccc;
         | 
| 49 | 
            +
            				}
         | 
| 50 | 
            +
            			}
         | 
| 51 | 
            +
             | 
| 52 | 
            +
            		}
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            	}
         | 
| 55 | 
            +
             | 
| 56 | 
            +
            }
         | 
| 57 | 
            +
             | 
| 58 | 
            +
             | 
| 59 | 
            +
             | 
| 60 | 
            +
            h2.glossary {
         | 
| 61 | 
            +
             | 
| 62 | 
            +
            	display: flex;
         | 
| 63 | 
            +
              justify-content: space-between;
         | 
| 64 | 
            +
              align-items: baseline;
         | 
| 65 | 
            +
            	font-weight: bold;
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            	border-bottom: 2px dotted #ccc;
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            	// Letter
         | 
| 70 | 
            +
            	span {
         | 
| 71 | 
            +
            		font-family: monospace;
         | 
| 72 | 
            +
            		color: #e83e8c;
         | 
| 73 | 
            +
            		font-style: italic;
         | 
| 74 | 
            +
            		font-size: 150%;
         | 
| 75 | 
            +
            	}
         | 
| 76 | 
            +
            	a.back-to-index {
         | 
| 77 | 
            +
            		font-size: 0.8rem;
         | 
| 78 | 
            +
            		color: #007BFF;
         | 
| 79 | 
            +
            		text-decoration: none;
         | 
| 80 | 
            +
            		text-align: right;
         | 
| 81 | 
            +
            	}
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            	a.back-to-index:hover {
         | 
| 84 | 
            +
            		text-decoration: underline;
         | 
| 85 | 
            +
            	}
         | 
| 86 | 
            +
             | 
| 87 | 
            +
            }
         | 
| 88 | 
            +
             | 
| 89 | 
            +
             | 
    
        data/assets/css/main.scss
    CHANGED
    
    
| @@ -36,27 +36,27 @@ module Jekyll | |
| 36 36 | 
             
            			safe true
         | 
| 37 37 | 
             
            			# A Generator needs to implement the generate method
         | 
| 38 38 | 
             
            			def generate(site)
         | 
| 39 | 
            -
            				 | 
| 39 | 
            +
            				Jekyll.logger.info("[INFO] Starting TagPage generation")
         | 
| 40 40 | 
             
            				# If a layout with the name `page-tag` exists
         | 
| 41 41 | 
             
            				if site.layouts.key? 'page-tag'
         | 
| 42 | 
            -
            					 | 
| 42 | 
            +
            					Jekyll.logger.info("TagPageGenerator", "[INFO] 'page-tag' layout found")
         | 
| 43 43 | 
             
            					# The directory in which the files are to be created is configured in `site.tag_dir`.
         | 
| 44 44 | 
             
            					# If not, the directory `tags/` is used.
         | 
| 45 45 | 
             
            					dir = site.config['tag_dir'] || 'tags'
         | 
| 46 | 
            -
            					 | 
| 46 | 
            +
            					Jekyll.logger.info("TagPageGenerator", "[INFO] Using tag directory: #{dir}")
         | 
| 47 47 |  | 
| 48 48 | 
             
            					# For each tag in the tag-list:
         | 
| 49 49 | 
             
            					site.tags.each_key do |tag|
         | 
| 50 50 | 
             
            						# Create a page-object using TagPage and add it to the `site.pages` array
         | 
| 51 51 | 
             
            						site.pages << TagPage.new(site, site.source, File.join(dir, tag), tag)
         | 
| 52 | 
            -
            						 | 
| 52 | 
            +
            						Jekyll.logger.debug("TagPageGenerator", "[DEBUG] TagPage created for tag: #{tag}")
         | 
| 53 53 | 
             
            					end
         | 
| 54 54 |  | 
| 55 | 
            -
            					 | 
| 55 | 
            +
            					Jekyll.logger.info("TagPageGenerator", "[INFO] All tags processed successfully")
         | 
| 56 56 | 
             
            				else
         | 
| 57 | 
            -
            					 | 
| 57 | 
            +
            					Jekyll.logger.error("TagPageGenerator", "[ERROR] Could not find the layout 'page-tag'. Create a file '_layouts/page-tag.html' to fix this error. Skipping TagPage generation for now.")
         | 
| 58 58 | 
             
            				end
         | 
| 59 | 
            -
            				 | 
| 59 | 
            +
            				Jekyll.logger.info("TagPageGenerator", "[INFO] TagPage generation finished")
         | 
| 60 60 | 
             
            			end
         | 
| 61 61 | 
             
            		end
         | 
| 62 62 |  | 
| @@ -72,7 +72,7 @@ module Jekyll | |
| 72 72 | 
             
            				@name = 'index.html'
         | 
| 73 73 |  | 
| 74 74 | 
             
            				self.process(@name)
         | 
| 75 | 
            -
            				 | 
| 75 | 
            +
            				Jekyll.logger.debug("TagPageGenerator", "[DEBUG] Generating file in folder: #{dir}")
         | 
| 76 76 | 
             
            				self.read_yaml(File.join(base, '_layouts'), 'page-tag.html')
         | 
| 77 77 |  | 
| 78 78 | 
             
            				# The prefix for the generated title is set via `tag_title_prefix` in `_config.yml` and defaults to `Tag: `
         | 
| @@ -80,7 +80,7 @@ module Jekyll | |
| 80 80 | 
             
            				# Generates the title for the tag page and makes it available in the layout file as `page.title`
         | 
| 81 81 | 
             
            				# Since AsciiDoc escapes the title, the plugin must also escape the content of the title (otherwise the tag would be unescaped).
         | 
| 82 82 | 
             
            				self.data['title'] = CGI.escapeHTML("#{tag_title_prefix}#{tag}")
         | 
| 83 | 
            -
            				 | 
| 83 | 
            +
            				Jekyll.logger.debug("TagPageGenerator", "[DEBUG] Generating title for tag page: #{self.data['title']}")
         | 
| 84 84 | 
             
            				# Makes `page.tag` available in the layout file
         | 
| 85 85 | 
             
            				self.data['tag'] = tag
         | 
| 86 86 |  | 
| @@ -89,7 +89,7 @@ module Jekyll | |
| 89 89 | 
             
            				# if a tag has been accidentally entered twice in the tag list of a post.
         | 
| 90 90 | 
             
            				self.data['postlist'] = (site.tags[tag] || []).uniq
         | 
| 91 91 |  | 
| 92 | 
            -
            				# | 
| 92 | 
            +
            				#Jekyll.logger.debug("TagPageGenerator", "[DEBUG] Loaded self.data: #{self.data.inspect}")
         | 
| 93 93 | 
             
            			end
         | 
| 94 94 | 
             
            		end
         | 
| 95 95 |  | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            module Jekyll
         | 
| 2 | 
            +
            	module LiquidMatchFilter
         | 
| 3 | 
            +
            		def match(input, regex)
         | 
| 4 | 
            +
            			result = input.match(Regexp.new(regex)) ? true : false
         | 
| 5 | 
            +
            			Jekyll.logger.debug("LiquidMatchFilter", "[DEBUG] Match-filter called with input '#{input}' and regex '#{regex}' returns #{result}")
         | 
| 6 | 
            +
            			# return the result
         | 
| 7 | 
            +
            			result
         | 
| 8 | 
            +
              	end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            	end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            Liquid::Template.register_filter(Jekyll::LiquidMatchFilter)
         | 
    
        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. | 
| 4 | 
            +
              version: 0.16.0
         | 
| 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-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jekyll-asciidoc
         | 
| @@ -17,6 +17,9 @@ dependencies: | |
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: '3.0'
         | 
| 20 | 
            +
                - - ">="
         | 
| 21 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            +
                    version: 3.0.1
         | 
| 20 23 | 
             
              type: :runtime
         | 
| 21 24 | 
             
              prerelease: false
         | 
| 22 25 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -24,48 +27,69 @@ dependencies: | |
| 24 27 | 
             
                - - "~>"
         | 
| 25 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 29 | 
             
                    version: '3.0'
         | 
| 30 | 
            +
                - - ">="
         | 
| 31 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            +
                    version: 3.0.1
         | 
| 27 33 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 34 | 
             
              name: jekyll
         | 
| 29 35 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 36 | 
             
                requirements:
         | 
| 31 37 | 
             
                - - "~>"
         | 
| 32 38 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '4. | 
| 39 | 
            +
                    version: '4.3'
         | 
| 40 | 
            +
                - - ">="
         | 
| 41 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 42 | 
            +
                    version: 4.3.4
         | 
| 34 43 | 
             
              type: :runtime
         | 
| 35 44 | 
             
              prerelease: false
         | 
| 36 45 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 46 | 
             
                requirements:
         | 
| 38 47 | 
             
                - - "~>"
         | 
| 39 48 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '4. | 
| 49 | 
            +
                    version: '4.3'
         | 
| 50 | 
            +
                - - ">="
         | 
| 51 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 52 | 
            +
                    version: 4.3.4
         | 
| 41 53 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 54 | 
             
              name: rouge
         | 
| 43 55 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 56 | 
             
                requirements:
         | 
| 45 57 | 
             
                - - "~>"
         | 
| 46 58 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version: '4. | 
| 59 | 
            +
                    version: '4.5'
         | 
| 60 | 
            +
                - - ">="
         | 
| 61 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            +
                    version: 4.5.1
         | 
| 48 63 | 
             
              type: :runtime
         | 
| 49 64 | 
             
              prerelease: false
         | 
| 50 65 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 66 | 
             
                requirements:
         | 
| 52 67 | 
             
                - - "~>"
         | 
| 53 68 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version: '4. | 
| 69 | 
            +
                    version: '4.5'
         | 
| 70 | 
            +
                - - ">="
         | 
| 71 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            +
                    version: 4.5.1
         | 
| 55 73 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 74 | 
             
              name: jekyll-feed
         | 
| 57 75 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 76 | 
             
                requirements:
         | 
| 59 77 | 
             
                - - "~>"
         | 
| 60 78 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            -
                    version: '0. | 
| 79 | 
            +
                    version: '0.17'
         | 
| 80 | 
            +
                - - ">="
         | 
| 81 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                    version: 0.17.0
         | 
| 62 83 | 
             
              type: :runtime
         | 
| 63 84 | 
             
              prerelease: false
         | 
| 64 85 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 86 | 
             
                requirements:
         | 
| 66 87 | 
             
                - - "~>"
         | 
| 67 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 | 
            -
                    version: '0. | 
| 89 | 
            +
                    version: '0.17'
         | 
| 90 | 
            +
                - - ">="
         | 
| 91 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 92 | 
            +
                    version: 0.17.0
         | 
| 69 93 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 94 | 
             
              name: asciidoctor-diagram
         | 
| 71 95 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -90,58 +114,82 @@ dependencies: | |
| 90 114 | 
             
              name: logger
         | 
| 91 115 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 92 116 | 
             
                requirements:
         | 
| 117 | 
            +
                - - "~>"
         | 
| 118 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 119 | 
            +
                    version: '1.6'
         | 
| 93 120 | 
             
                - - ">="
         | 
| 94 121 | 
             
                  - !ruby/object:Gem::Version
         | 
| 95 | 
            -
                    version:  | 
| 122 | 
            +
                    version: 1.6.0
         | 
| 96 123 | 
             
              type: :runtime
         | 
| 97 124 | 
             
              prerelease: false
         | 
| 98 125 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 99 126 | 
             
                requirements:
         | 
| 127 | 
            +
                - - "~>"
         | 
| 128 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 129 | 
            +
                    version: '1.6'
         | 
| 100 130 | 
             
                - - ">="
         | 
| 101 131 | 
             
                  - !ruby/object:Gem::Version
         | 
| 102 | 
            -
                    version:  | 
| 132 | 
            +
                    version: 1.6.0
         | 
| 103 133 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 104 134 | 
             
              name: csv
         | 
| 105 135 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 106 136 | 
             
                requirements:
         | 
| 137 | 
            +
                - - "~>"
         | 
| 138 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 139 | 
            +
                    version: '3.2'
         | 
| 107 140 | 
             
                - - ">="
         | 
| 108 141 | 
             
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                    version:  | 
| 142 | 
            +
                    version: 3.2.8
         | 
| 110 143 | 
             
              type: :runtime
         | 
| 111 144 | 
             
              prerelease: false
         | 
| 112 145 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 113 146 | 
             
                requirements:
         | 
| 147 | 
            +
                - - "~>"
         | 
| 148 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 149 | 
            +
                    version: '3.2'
         | 
| 114 150 | 
             
                - - ">="
         | 
| 115 151 | 
             
                  - !ruby/object:Gem::Version
         | 
| 116 | 
            -
                    version:  | 
| 152 | 
            +
                    version: 3.2.8
         | 
| 117 153 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 118 154 | 
             
              name: ostruct
         | 
| 119 155 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 120 156 | 
             
                requirements:
         | 
| 157 | 
            +
                - - "~>"
         | 
| 158 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 159 | 
            +
                    version: '0.6'
         | 
| 121 160 | 
             
                - - ">="
         | 
| 122 161 | 
             
                  - !ruby/object:Gem::Version
         | 
| 123 | 
            -
                    version:  | 
| 162 | 
            +
                    version: 0.6.0
         | 
| 124 163 | 
             
              type: :runtime
         | 
| 125 164 | 
             
              prerelease: false
         | 
| 126 165 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 127 166 | 
             
                requirements:
         | 
| 167 | 
            +
                - - "~>"
         | 
| 168 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 169 | 
            +
                    version: '0.6'
         | 
| 128 170 | 
             
                - - ">="
         | 
| 129 171 | 
             
                  - !ruby/object:Gem::Version
         | 
| 130 | 
            -
                    version:  | 
| 172 | 
            +
                    version: 0.6.0
         | 
| 131 173 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 132 174 | 
             
              name: base64
         | 
| 133 175 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 134 176 | 
             
                requirements:
         | 
| 177 | 
            +
                - - "~>"
         | 
| 178 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 179 | 
            +
                    version: '0.2'
         | 
| 135 180 | 
             
                - - ">="
         | 
| 136 181 | 
             
                  - !ruby/object:Gem::Version
         | 
| 137 | 
            -
                    version:  | 
| 182 | 
            +
                    version: 0.2.0
         | 
| 138 183 | 
             
              type: :runtime
         | 
| 139 184 | 
             
              prerelease: false
         | 
| 140 185 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 141 186 | 
             
                requirements:
         | 
| 187 | 
            +
                - - "~>"
         | 
| 188 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 189 | 
            +
                    version: '0.2'
         | 
| 142 190 | 
             
                - - ">="
         | 
| 143 191 | 
             
                  - !ruby/object:Gem::Version
         | 
| 144 | 
            -
                    version:  | 
| 192 | 
            +
                    version: 0.2.0
         | 
| 145 193 | 
             
            description: 
         | 
| 146 194 | 
             
            email:
         | 
| 147 195 | 
             
            - rubygems.org@boekhoff.net
         | 
| @@ -166,6 +214,7 @@ files: | |
| 166 214 | 
             
            - _includes/container_start-of-post.html
         | 
| 167 215 | 
             
            - _includes/content_footer-powered-by.html
         | 
| 168 216 | 
             
            - _includes/content_footer-usernames.html
         | 
| 217 | 
            +
            - _includes/function_glossary-entry.html
         | 
| 169 218 | 
             
            - _includes/function_list-pages.html
         | 
| 170 219 | 
             
            - _includes/function_list-posts.html
         | 
| 171 220 | 
             
            - _includes/function_post-in-list-duplicate-tags.html
         | 
| @@ -180,6 +229,7 @@ files: | |
| 180 229 | 
             
            - _layouts/default-minimal.html
         | 
| 181 230 | 
             
            - _layouts/default.html
         | 
| 182 231 | 
             
            - _layouts/html.html
         | 
| 232 | 
            +
            - _layouts/page-glossary.html
         | 
| 183 233 | 
             
            - _layouts/page-minimal.html
         | 
| 184 234 | 
             
            - _layouts/page-postlist.html
         | 
| 185 235 | 
             
            - _layouts/page-tag-template.html
         | 
| @@ -199,6 +249,7 @@ files: | |
| 199 249 | 
             
            - _sass/adoc-toc.scss
         | 
| 200 250 | 
             
            - _sass/adoc.scss
         | 
| 201 251 | 
             
            - _sass/background.scss
         | 
| 252 | 
            +
            - _sass/glossary.scss
         | 
| 202 253 | 
             
            - _sass/md-lists.scss
         | 
| 203 254 | 
             
            - _sass/md-quote.scss
         | 
| 204 255 | 
             
            - _sass/md-tables.scss
         | 
| @@ -212,6 +263,7 @@ files: | |
| 212 263 | 
             
            - assets/images/tree-3822149_640.jpg
         | 
| 213 264 | 
             
            - lib/jekyll-theme-endless.rb
         | 
| 214 265 | 
             
            - lib/jekyll-theme-endless/generate-tagpages.rb
         | 
| 266 | 
            +
            - lib/jekyll-theme-endless/liquid-match-filter.rb
         | 
| 215 267 | 
             
            - lib/jekyll-theme-endless/version.rb
         | 
| 216 268 | 
             
            - pages_examples/showroom-asciidoc-code.html
         | 
| 217 269 | 
             
            - pages_examples/showroom-asciidoc.adoc
         |