jekyll-theme-endless 0.9.0 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c44a8b0b77f57bf3ef8c3107d45d5993590b951bafe7123b7a3d43aff1755e0f
4
- data.tar.gz: ec822eb3c232ed9e4bceae9459c9ec6d0dc93c366269bf88ce046a61bc17d49e
3
+ metadata.gz: e5f07f885402f2e5f0e3431fb93102b8cbd9be1f0a0e7a6e42b0fbe59927b911
4
+ data.tar.gz: 2fb7e64709edac7b386f964305023d497081a11649f85d118af860a7931a7aaa
5
5
  SHA512:
6
- metadata.gz: 2eb544cacc56b869f3d57935b580d824b11116649541ae2c4b508bd30f245a8e4a933719946f8c46fdcde7cc782e61a4fbaa6ab52f59b016202696d41a484e7e
7
- data.tar.gz: 3a4fd8c1fa675898414c9618d0f4f91dded12bde8bb51e91525a96291b34452fe84f09573dc9c216fd29b1341c54661f3e4ad27916e7693797e0644905b5a938
6
+ metadata.gz: 52e24e161c592c799bead922df6265fd594a17b12e19b83856369e5742fbe4c405735e32e36656da61807961570b4a4a79d593672ab210827335284c287f59e7
7
+ data.tar.gz: 9d80abc86bd11686c49d65b38fa3d5b022b4deab9597d59abf0f729c3781f719d1745ba5d83896b0f4ced4684136e501331b09bc6fbfcee9170d8c53620aaf5c
data/README.adoc CHANGED
@@ -7,6 +7,7 @@
7
7
  `jekyll-theme-endless` is a theme for the static site generator https://jekyllrb.com/[Jekyll].
8
8
  The theme is ready to be used with posts written in https://asciidoctor.org/[AsciiDoc] using the
9
9
  https://github.com/asciidoctor/jekyll-asciidoc[Jekyll AsciiDoc plugin].
10
+ Moreover, it is shipped with a plugin that generates a *tag cloud*.
10
11
  The syntax of source code is highlighted using https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers[Rouge].
11
12
 
12
13
  The repository of this Jekyll theme is located at:
@@ -73,7 +74,21 @@ If you want to use Markdown AND have HTML-commands in the title, simply escape t
73
74
 
74
75
  == Usage
75
76
 
76
- Here I describe available layouts, includes, sass and/or assets here.
77
+ Here I describe available layouts, includes, SASS- and other assets.
78
+
79
+ To copy all the files of the theme into a folder,
80
+ you can use the following command (in the root directory of your Jekyll project):
81
+
82
+ [source,bash]
83
+ ----
84
+ cp -r $(bundle show jekyll-theme-endless)/ .
85
+ ----
86
+
87
+ This will copy the theme-folder containing all its files into the current directory.
88
+ From there, you can selectively move files to your project and modify them as needed.
89
+ Your (modified) copy will afterwards overwrite the contents provided by the theme.
90
+
91
+
77
92
 
78
93
  === Layouts
79
94
 
@@ -167,14 +182,29 @@ Layout of page-content with a list of blog posts at the end.
167
182
  Layout of pages containing a list of those posts being tagged with a given tag.
168
183
  This file is required by the `generate-tagpages`-plugin.
169
184
 
185
+ [IMPORTANT]
186
+ ====
170
187
  It seems that plugins cannot read the files provided by themes.
171
188
  Thus, the file has to be created in the `_layouts` folder in every Jekyll project.
189
+
190
+ For simplicity, I have designed a basic layout in the file `page-tag-template.html` that you can include.
191
+ Alternatively, you can copy the content of `page-tag-template.html` into your `page-tags.html`.
192
+
172
193
  The content can be for example the following:
173
194
 
174
195
  [source, liquid]
175
196
  ----
176
197
  include::_layouts/page-tag.html[]
177
198
  ----
199
+ ====
200
+ --
201
+
202
+
203
+ `_layouts/page-tag-template.html`::
204
+ +
205
+ --
206
+ Simple page that allows you to define the content of the tag pages.
207
+ This file is a template layout that can be included in `page-tag.html`.
178
208
  --
179
209
 
180
210
 
@@ -214,6 +244,16 @@ Content
214
244
 
215
245
 
216
246
 
247
+ `_layouts/statistics.html`::
248
+ +
249
+ --
250
+ Simple page that displays statistics about the blog (such as the number of posts, number of tags, etc.),
251
+ as well as potential issues (e.g., "posts without a tag").
252
+ I typically use this page as a layout for my "about" page.
253
+ --
254
+
255
+
256
+
217
257
  === Includes
218
258
 
219
259
  `_includes/container_end-of-document.html`::
@@ -233,10 +273,11 @@ The text of the link is the title of the page.
233
273
  If the text should be different from the page-title, set the page variable `menu_label`.
234
274
  In AsciiDoc files this could be e.g.: `:page-menu_label: 'AnotherText'`.
235
275
 
236
- The order of the links can be determined with the help of the page variable `menu_label`
276
+ By default, the links in the menu are ordered alphabetically.
277
+ The order of the links can be explicitly determined using the page variable `menu_position`
237
278
  (in AsciiDoc e.g. `:page-menu_position: 100`; in frontmatter e.g. `menu_position: 50`).
238
279
  Pages with higher numbers appear on the left side of the menu.
239
- Pages with a negative value for `menu_label` will be hidden from the menu.
280
+ Pages with a negative value for `menu_position` will be hidden from the menu.
240
281
  This can be useful for your 404 page, which should be generated by Jekyll, but not visible in the menu.
241
282
  --
242
283
 
@@ -324,9 +365,62 @@ tag_title_prefix: "Posts tagged with: "
324
365
 
325
366
  === Styles
326
367
 
327
- In order to contribute SCSS-code, simply add a file `_sass/user.scss`, containing your SCCS-code.
368
+ In order to contribute SCSS-code, simply add a file `_sass/user.scss`, containing your SCSS-code.
328
369
  This file is included by `assets/css/main.scss`.
329
370
 
371
+ Since version 0.10.0, you can also add stylesheets dynamically to `assets/css/main.scss`
372
+ using the site-variable `additional-stylesheets` in `_config.yml`.
373
+ Example
374
+
375
+ [source, yml]
376
+ ----
377
+ # You can dynamically add import statements to assets/css/main.css
378
+ # Just add the path (relative to the folder `_sass`) to this array
379
+ # CAUTION: omit the ending ".scss"
380
+ additional-stylesheets:
381
+ - "../theme-specific/debug"
382
+ ----
383
+
384
+
385
+ === Data-files
386
+
387
+ `_data/tag-description.yml`::
388
+ +
389
+ --
390
+ You have the option to store descriptions for your tags in a YAML file.
391
+ This is useful to ensure that everyone has the same understanding of each tag.
392
+ In the current theme, the descriptions are used in two places:
393
+
394
+ * On the tag page, below the page header
395
+ * As the title of each tag in the tag cloud
396
+
397
+ The format of the YAML file is:
398
+
399
+ [source, yml]
400
+ ----
401
+ Tag:
402
+ short: "Short description for the tag 'Tag'."
403
+ AsciiDoc:
404
+ short: "A lightweight but feature-rich markup language used for writing documentation in plain text."
405
+ Bootstrap:
406
+ short: "A popular front-end framework for building responsive, mobile-first websites using CSS and JavaScript components."
407
+ CSS:
408
+ short: "Cascading Style Sheets, a language used for describing the presentation of a web page, including layout, colors, and fonts."
409
+ ----
410
+
411
+ CAUTION: Be aware that the tags are case-sensitive!
412
+
413
+ To check if you haven't created a description for a tag, you can simply create a style
414
+ for the class `no-tag-description` in the `_sass/user.scss` file.
415
+ I use, for example:
416
+
417
+ [source, css]
418
+ ----
419
+ .no-tag-description {
420
+ background-color: lightcoral;
421
+ }
422
+ ----
423
+ --
330
424
 
331
425
 
332
426
  == Settings
@@ -344,7 +438,7 @@ The default is `en`.
344
438
 
345
439
  == Contributing
346
440
 
347
- Bug reports and pull requests are welcome on GitHub at https://gitlab.com/jekyll-theme-endless/jekyll-theme-endless.gitlab.io.
441
+ Bug reports and pull requests are welcome on GitLab at https://gitlab.com/jekyll-theme-endless/jekyll-theme-endless.gitlab.io.
348
442
  This project is intended to be a safe, welcoming space for collaboration,
349
443
  and contributors are expected to adhere to the http://contributor-covenant.org[Contributor Covenant] code of conduct.
350
444
 
data/_config.yml CHANGED
@@ -11,8 +11,13 @@
11
11
  # If you need help with YAML syntax, here are some quick references for you:
12
12
  # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13
13
  # https://learnxinyminutes.com/docs/yaml/
14
- #
14
+
15
+
16
+
17
+
18
+
15
19
  # Site settings
20
+ ###############################################################################
16
21
  # These are used to personalize your new site. If you look in the HTML files,
17
22
  # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
18
23
  # You can create any custom variable you would like, and they will be accessible
@@ -23,7 +28,10 @@ url: "" # the base hostname & protocol for your site, e.g. http://example.com
23
28
 
24
29
 
25
30
 
31
+
32
+
26
33
  # AsciiDoc settings
34
+ ###############################################################################
27
35
  asciidoctor:
28
36
  attributes:
29
37
  # Highlighting source code using rouge
@@ -36,27 +44,34 @@ asciidoctor:
36
44
 
37
45
 
38
46
 
39
- # Theme specific settings
40
- # Find example data in _data.yml of the theme repository.
41
- # Run `bundle exec jekyll serve --config _config.yml,_data.yml`
42
47
 
43
48
 
44
49
  # Build settings
45
- #theme: minima
50
+ ###############################################################################
51
+ # Load data (e.g. layouts) from a theme that is installed using bundler
52
+ # Not required in this repository, since it provides the theme ("jekyll-theme-endless")
53
+ #theme: jekyll-theme-endless
54
+
55
+ # `plugins` specifies the list of plugins that are installed via RubyGems and managed through Bundler.
56
+ # These are typically shared or third-party plugins available in the RubyGems ecosystem.
46
57
  #plugins:
58
+ # Required to load the plugin that generates the tag pages.
59
+ # jekyll-theme-endless is both a theme AND a plugin.
60
+ # NOT required in the repository that provides the plugin.
61
+ # Instead, the plugin can be loaded from the `./lib` directory.
62
+ # Local plugins are configured via the `plugins_dir` setting,
63
+ # which in this project has been outsourced to `_data.yml`.
64
+ #- jekyll-theme-endless
65
+ # Feed plugin currently not used
47
66
  # - jekyll-feed
48
67
 
49
- # Exclude from processing.
50
- # The following items will not be processed, by default.
51
- # Any item listed under the `exclude:` key here will be automatically added to
52
- # the internal "default list".
68
+ # Exclude files from processing.
53
69
  #
54
70
  # Excluded items can be processed by explicitly listing the directories or
55
71
  # their entries' file path in the `include:` list.
56
72
  #
57
73
  exclude:
58
- - '*.gemspec'
59
- - LICENSE.txt
74
+ ## The following items are not processed, by default.
60
75
  # - .sass-cache/
61
76
  # - .jekyll-cache/
62
77
  # - gemfiles/
@@ -67,5 +82,24 @@ exclude:
67
82
  # - vendor/cache/
68
83
  # - vendor/gems/
69
84
  # - vendor/ruby/
85
+ ## Your excludes:
86
+ ## Any item listed under the `exclude:` key here will be automatically added to
87
+ ## the internal "default list".
88
+ - '*.gemspec'
89
+ - LICENSE.txt
90
+ - .gitlab-ci.yml
91
+ - .gitignore
92
+ - .editorconfig
93
+
94
+
95
+
96
+
97
+
98
+ # Settings for: jekyll-theme-endless
99
+ ###############################################################################
100
+ # These settings have been outsourced into the file `_data.yml` in this project.
101
+ # You can find example data in the `_data.yml` file of the theme repository.
102
+ # If you want to build the theme website, you need to start the Jekyll server with two configuration files:
103
+ # `bundle exec jekyll serve --config _config.yml,_data.yml`
70
104
 
71
105
 
@@ -0,0 +1,91 @@
1
+ SASS:
2
+ short: "SASS (Syntactically Awesome Stylesheets) is a CSS preprocessor that adds advanced features like variables, nested rules, and mixins to standard CSS. SASS has two syntax options: the older indented syntax (SASS) and the newer, more CSS-like syntax (SCSS). The SASS syntax uses indentation instead of curly braces and semicolons, while SCSS is more similar to traditional CSS and is often preferred for its familiarity."
3
+ cleanup:
4
+ short: "The process of removing unnecessary or temporary files, obsolete code, or outdated data from a system or project to improve performance or maintainability."
5
+ _data.yml:
6
+ short: "A YAML file used to store settings required for the theme website. They were outsourced from the _config.yml file to prevent them from being loaded as default values when using the theme."
7
+ dependencies:
8
+ short: "External libraries, modules, or packages required by a project or software to function properly, typically managed by package managers like bundler."
9
+ bash:
10
+ short: "A popular Unix shell and command language, commonly used for scripting and automating tasks in Linux and macOS environments."
11
+ deployment:
12
+ short: "The process of releasing or distributing software to a production environment, making it available for use by end users."
13
+
14
+ statistics:
15
+ short: "Data or numerical insights gathered from various sources, often used to analyze performance, user behavior, or other measurable factors."
16
+ bugfixes:
17
+ short: "Software updates or patches that resolve identified errors or malfunctions, ensuring the application runs as expected."
18
+ quotes:
19
+ short: "Text or speech cited from a source, typically used to reference someone's exact words or to highlight a point. Specifically refers to the styling and formatting of quotes in this context."
20
+ tables:
21
+ short: "A structured format for organizing data into rows and columns, making it easy to present and interpret information in a grid layout."
22
+ layout:
23
+ short: "The structured design and positioning of elements on a webpage or document, such as text and images, to enhance user experience. In Jekyll, layout files are stored in the '_layouts/' directory."
24
+ CDN:
25
+ short: "A Content Delivery Network (CDN) is a system of distributed servers that deliver web content to users based on their geographic location, improving load times and performance."
26
+ jsdelivr:
27
+ short: "A free, fast, and open-source CDN that hosts JavaScript libraries, CSS files, and other web assets, helping to deliver them efficiently to users."
28
+ i18n:
29
+ short: "Short for 'internationalization', i18n refers to the process of designing software to be adaptable to different languages and regions without requiring engineering changes."
30
+ updates:
31
+ short: "Changes or improvements applied to software or content, typically to fix bugs, add new features, or enhance security."
32
+ logging:
33
+ short: "The practice of recording system events, errors, or user activities, often used for tracking and troubleshooting."
34
+ debugging:
35
+ short: "The process of finding and resolving bugs or defects in software to ensure it behaves as expected."
36
+ Gemfile:
37
+ short: "A file used in Ruby projects to list the dependencies (gems) required by the project and to manage their installation."
38
+ _data:
39
+ short: "A directory in Jekyll where structured data (e.g., YAML, JSON, or CSV files) is stored, which can be accessed and used across the site."
40
+
41
+ _config.yml:
42
+ short: "A configuration file used in Jekyll to customize settings for your site."
43
+ admonition:
44
+ short: "A formatted block in documentation that draws attention to important notes or warnings."
45
+ AsciiDoc:
46
+ short: "A lightweight but feature-rich markup language used for writing documentation in plain text."
47
+ Bootstrap:
48
+ short: "A popular front-end framework for building responsive, mobile-first websites using CSS and JavaScript components."
49
+ CSS:
50
+ short: "Cascading Style Sheets, a language used for describing the presentation of a web page, including layout, colors, and fonts."
51
+ documentation:
52
+ short: "Written text or resources that explain how a piece of software or technology works."
53
+ EditorConfig:
54
+ short: "A file format and collection of text editor plugins for maintaining consistent coding styles across different editors."
55
+ example:
56
+ short: "A sample or instance used to demonstrate how something works or can be done."
57
+ features:
58
+ short: "A set of distinctive attributes or capabilities that a software or product offers."
59
+ Font Awesome:
60
+ short: "A font and icon toolkit used to include scalable vector icons and social logos on websites."
61
+ footer:
62
+ short: "The section at the bottom of a webpage or document, usually containing copyright information, links, or branding."
63
+ function:
64
+ short: "A block of code designed to perform a specific task and which can be reused in a program."
65
+ gemspec:
66
+ short: "A specification file that defines the details of a Ruby gem, including its dependencies and metadata."
67
+ highlighting:
68
+ short: "A feature used to apply color to syntax in code examples, making it easier to read and understand."
69
+ images:
70
+ short: "Visual elements used in websites or documents, including photos, illustrations, and graphics."
71
+ lists:
72
+ short: "A collection of items organized in a sequence, either ordered or unordered."
73
+ Markdown:
74
+ short: "A lightweight markup language for formatting text, used widely for creating simple, readable documentation."
75
+ menu:
76
+ short: "A navigation element in a webpage that allows users to move between different sections or pages."
77
+ posts:
78
+ short: "Multiple blog entries or articles displayed on a site, typically listed in reverse chronological order."
79
+ Rouge:
80
+ short: "A syntax highlighter used in Jekyll and other systems to colorize code snippets in various programming languages."
81
+ SCSS:
82
+ short: "A preprocessor language that extends CSS with features like variables, nested rules, and functions."
83
+ styling:
84
+ short: "The process of applying styles to a webpage or document, often through CSS, to enhance its appearance."
85
+ table:
86
+ short: "A structured arrangement of data in rows and columns, often used for displaying information in a grid format."
87
+ tag-cloud:
88
+ short: "A visual representation of the tags used in a blog, with more frequently used tags appearing larger."
89
+ tags:
90
+ short: "Keywords or labels that categorize and describe blog posts or content to make them easier to find."
91
+
data/_data.yml ADDED
@@ -0,0 +1,63 @@
1
+ # Theme-specific settings
2
+ ################################################################################
3
+ # All configuration options for the theme jekyll-theme-endless are listed here.
4
+ # These settings are outsourced into a separate file because they contain the values for the theme’s website.
5
+ # This way, these values are not used as default settings when you integrate the theme into your own project.
6
+
7
+ # Language. Is overriden by value of page.lang.
8
+ lang: en
9
+ # Brand is not escaped in the layout.
10
+ # Thus, HTML-commands can be used.
11
+ brand: '"<i>endless</i>"-Theme'
12
+
13
+ # Title and subtile of the page
14
+ title: jekyll-theme-endless
15
+ subtitle: A Jekyll theme ready for AsciiDoc
16
+
17
+ author: Sven Boekhoff
18
+ copydate: 2020-2024
19
+ disclaimer: >- # this means to ignore newlines until the next entry
20
+ I'm creating this Jekyll theme because I want to use it myself.
21
+ Therefore, many things (e.g. the support of AsciiDoc) are based on personal requirements.
22
+ You are welcome to use the theme (at your own risk) and contribute to the development.
23
+
24
+ # eMail address
25
+ email: your-email@example.com
26
+ # Username on https://gitlab.com/
27
+ username_gitlab: XXXX
28
+ # Username on https://github.com/
29
+ username_github: XXXX
30
+ # Username on https://www.xing.com/
31
+ username_xing: XXXX
32
+ # Username on https://linkedin.com/
33
+ username_linkedin: XXXX
34
+
35
+ # Settings for tag cloud:
36
+ # The name of the directory in which the files for each tag are created
37
+ # default: `tags`
38
+ tag_dir: posts-for-tag
39
+ # Prefix to be used for the title of the tag-page
40
+ # default: `Tag: `
41
+ tag_title_prefix: "Posts tagged with: "
42
+
43
+ # You can dynamically add import statements to assets/css/main.css
44
+ # Just add the path (relative to the folder `_sass`) to this array
45
+ # CAUTION: omit the ending ".scss"
46
+ additional-stylesheets:
47
+ - "../theme-specific/debug"
48
+
49
+
50
+
51
+
52
+
53
+ # Specific settings for this project
54
+ ################################################################################
55
+ # In this project, the plugin for generating tag pages is loaded from the local directory `./lib`.
56
+ # The folder where Jekyll looks for locally available plugins is configured via `plugins_dir`.
57
+ # The default value for this is `_plugins`.
58
+ # However, `_plugins` is also the directory that Jekyll uses for plugins managed by Bundler
59
+ # (those plugins are specified using the `plugins` array in `_config.yml`).
60
+ # Therefore, it is good practice to define a separate directory for locally available plugins.
61
+ plugins_dir:
62
+ - ./lib
63
+
@@ -78,8 +78,16 @@ Assumption: Non of the tags occurs more than one million times.
78
78
  <a
79
79
  href = "/{{ site.tag_dir | default: 'tags' }}/{{ tag }}"
80
80
  style = "font-size: {{ percent }}%"
81
- title = "Number of posts with the tag '{{ tagname }}': {{ number }}"
81
+
82
+ {% if site.data.tag-description[tag].short %}
83
+ title = "{{ site.data.tag-description[tag].short }} Number of posts with the tag '{{ tagname }}': {{ number }}"
84
+ {% else %}
85
+ class = "no-tag-description"
86
+ title = "Number of posts with the tag '{{ tagname }}': {{ number }}"
87
+ {% endif %}
88
+
82
89
  >{{ tagname }}</a>
83
90
  </li>
91
+
84
92
  {% endfor %}
85
93
  </ul>
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ menu_position: -10
4
+ ---
5
+ {% comment %}
6
+ page.tag and page.title are set by the plugin `generate-taglist`.
7
+ {% endcomment %}
8
+ {% if page.title %}
9
+ <h1>{{ page.title }}</h1>
10
+ {% endif %}
11
+
12
+ {% if site.data.tag-description[page.tag].short %}
13
+ <p>
14
+ In this blog, the tag <dfn>{{page.tag}}</dfn> is used with the meaning
15
+ "<em>{{ site.data.tag-description[page.tag].short }}</em>".
16
+ </p>
17
+ {% endif %}
18
+
19
+ <p>
20
+ Number of posts tagged with "<em>{{ page.tag }}</em>": <strong>{{ site.tags[ page.tag ] | size }}</strong>
21
+ </p>
22
+
23
+ {% assign tag_posts = site.tags[page.tag] %}
24
+ {% include function_list-posts.html
25
+ postlist=tag_posts
26
+ %}
@@ -1,19 +1,5 @@
1
1
  ---
2
- layout: default
2
+ layout: page-tag-template
3
3
  menu_position: -10
4
4
  ---
5
- {% comment %}
6
- page.tag and page.title are set by the plugin `generate-taglist`.
7
- {% endcomment %}
8
- {% if page.title %}
9
- <h1>{{ page.title }}</h1>
10
- {% endif %}
11
5
 
12
- <p>
13
- Number of posts tagged with "<em>{{ page.tag }}</em>": <strong>{{ site.tags[ page.tag ] | size }}</strong>
14
- </p>
15
-
16
- {% assign tag_posts = site.tags[page.tag] %}
17
- {% include function_list-posts.html
18
- postlist=tag_posts
19
- %}
@@ -0,0 +1,95 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <h1>{{ page.title }}</h1>
5
+
6
+ {{ content }}
7
+
8
+ <h2>Blog statistics</h2>
9
+
10
+ {% comment %}Create an empty array.{% endcomment %}
11
+ {% assign posts_without_tags = "" | split:"" %}
12
+
13
+ {% for post in site.posts %}
14
+ {% assign number_of_tags = post.tags | size %}
15
+
16
+ {% if number_of_tags > 0 %}
17
+ {% assign posts_with_tags = posts_with_tags | plus: 1 %}
18
+ {% assign number_of_tags_total = number_of_tags_total | plus: number_of_tags %}
19
+ {% else %}
20
+ {% assign posts_without_tags = posts_without_tags | push: post %}
21
+ {% endif %}
22
+
23
+ {% endfor %}
24
+
25
+
26
+
27
+ {% comment %}Create an empty array.{% endcomment %}
28
+ {% assign tags_without_description = "" | split:"" %}
29
+ {% assign number_of_tags_with_description = 0 %}
30
+ {% assign number_of_tags_without_description = 0 %}
31
+
32
+ {% assign tags = "" | split:"" %}
33
+ {% for tag in site.tags %}
34
+
35
+ {% if site.data.tag-description[tag.first].short %}
36
+ {% assign number_of_tags_with_description = number_of_tags_with_description | plus: 1 %}
37
+ {% else %}
38
+ {% assign number_of_tags_without_description = number_of_tags_without_description | plus: 1 %}
39
+ {% assign tags_without_description = tags_without_description | push: tag.first %}
40
+ {% endif %}
41
+
42
+ {% endfor %}
43
+
44
+
45
+ <h3>Overview</h3>
46
+
47
+ {% comment %}
48
+ Bei Änderungen auch den entsprechenden Blog-Eintrag vom 28.10.2020 anpassen!
49
+ {% endcomment %}
50
+ <ul>
51
+ <li><strong>Time created</strong>: {{ site.time }}</li>
52
+
53
+ <li><strong># pages</strong>: {{ site.pages | size }}</li>
54
+ <li><strong># HTML-pages</strong>: {{ site.html_pages | size }}</li>
55
+
56
+ <li><strong># posts</strong>: {{ site.posts | size }}</li>
57
+ <li><strong># posts_with_tags</strong>: {{ posts_with_tags }}</li>
58
+ <li><strong># posts_without_tags</strong>: {{ posts_without_tags | size }}</li>
59
+
60
+ <li><strong># number_of_tags_total</strong>: {{ number_of_tags_total }}</li>
61
+ <li><strong># different tags</strong>: {{ site.tags | size }}</li>
62
+ <li><strong># Tags with description</strong>: {{ number_of_tags_with_description }}</li>
63
+ <li><strong># Tags without description</strong>: {{ number_of_tags_without_description }}</li>
64
+
65
+ <li><strong># categories</strong>: {{ site.categories | size }}</li>
66
+ </ul>
67
+
68
+
69
+
70
+ {% assign number_pwt = posts_without_tags | size %}
71
+ {% if number_pwt > 0 %}
72
+ <h3>Posts without tags</h3>
73
+ <p>
74
+ <em>This can be useful for debugging purpose, since every post should have at least one tag.</em>
75
+ </p>
76
+
77
+ {% include function_list-posts.html
78
+ postlist=posts_without_tags
79
+ %}
80
+
81
+ {% endif %}
82
+
83
+
84
+ {% assign number_twd = tags_without_description | size %}
85
+ {% if number_twd > 0 %}
86
+ <h3>Tags without description</h3>
87
+ <p>
88
+ <em>This can be useful for debugging purposes, as every tag used should have a description from the <code>tag-description.yml</code> data file.</em>
89
+ </p>
90
+
91
+ {% include function_tag-list.html
92
+ tags=tags_without_description
93
+ %}
94
+
95
+ {% endif %}
@@ -9,6 +9,7 @@ div.admonitionblock {
9
9
  width: 100%;
10
10
  td {
11
11
  padding: .75em .25em;
12
+ border-width: 0;
12
13
  }
13
14
  }
14
15
  /* See:
@@ -19,6 +20,7 @@ span.icon>.fa {
19
20
  }
20
21
  .admonitionblock td.icon {
21
22
  text-align: center;
23
+ vertical-align: top;
22
24
  width: 66px;
23
25
 
24
26
  [class^="fa icon-"] {
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Show name of the language highlighted in a code block in the upper right corner.
3
+ */
4
+ .listingblock .content code {
5
+ position: relative;
6
+ display: block;
7
+ }
8
+
9
+ .listingblock .content code::before {
10
+ content: attr(data-lang);
11
+ position: absolute;
12
+ top: 0;
13
+ right: 0;
14
+ background-color: #f0f0f0;
15
+ padding: 2px 5px;
16
+ font-size: 12px;
17
+ color: #333;
18
+ border-radius: 3px;
19
+ border: 1px solid #ccc;
20
+ }
21
+
22
+ /* If data-lang is empty or not set, ::before will be hidden. */
23
+ .listingblock .content code[data-lang=""]::before,
24
+ .listingblock .content code:not([data-lang])::before {
25
+ display: none;
26
+ }
27
+
28
+
@@ -13,11 +13,6 @@ div.imageblock {
13
13
  padding: 10px 10px;
14
14
  border-radius: 5px;
15
15
  }
16
- .title {
17
- padding-top: .75rem;
18
- padding-bottom: .75rem;
19
- color: #6c757d;
20
- }
21
16
 
22
17
  }
23
18
 
@@ -20,6 +20,30 @@ table.tableblock {
20
20
  caption-side: top;
21
21
  }
22
22
 
23
+
24
+ .halign-left {
25
+ text-align: left;
26
+ }
27
+ .halign-center {
28
+ text-align: center;
29
+ }
30
+ .halign-right {
31
+ text-align: right;
32
+ }
33
+ .valign-top {
34
+ vertical-align: top;
35
+ }
36
+ .valign-middle {
37
+ vertical-align: middle;
38
+ }
39
+ .valign-bottom {
40
+ vertical-align: bottom;
41
+ }
42
+
43
+
44
+
45
+
46
+
23
47
  }
24
48
 
25
49
  p.tableblock {
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Text formatting.
3
+ */
4
+ .line-through {
5
+ text-decoration: line-through;
6
+ }
7
+
8
+
9
+ .underline{
10
+ text-decoration: underline;
11
+ }
12
+
data/_sass/adoc.scss CHANGED
@@ -12,3 +12,12 @@ table tr:nth-of-type(even) {
12
12
  background: #f8f8f7;
13
13
  }
14
14
 
15
+ /**
16
+ * Captions of images, tables, code-blocks, ...
17
+ */
18
+ .title {
19
+ padding-top: .75rem;
20
+ padding-bottom: .75rem;
21
+ color: #6c757d;
22
+ }
23
+
@@ -0,0 +1,5 @@
1
+ .task-list-item {
2
+ input.task-list-item-checkbox {
3
+ margin-right: .5em;
4
+ }
5
+ }
@@ -0,0 +1,7 @@
1
+ blockquote {
2
+ text-align: center;
3
+ background-color: #f8f8f8;
4
+ margin: 1em 1.5em;
5
+ font-style: italic;
6
+ color: rgba(0,0,0,.6);
7
+ }
@@ -0,0 +1,17 @@
1
+ table {
2
+
3
+ th, td {
4
+ border: 0 solid #f00;
5
+ border: 0 solid #dedede;
6
+ padding: .5em .625em;
7
+ border-width: 1px;
8
+ }
9
+
10
+ thead,
11
+ tfoot {
12
+ background: #e7e8e7;
13
+ font-weight: bold;
14
+ }
15
+
16
+ }
17
+
data/assets/css/main.scss CHANGED
@@ -7,31 +7,47 @@
7
7
  * imports _scss/background.scss
8
8
  * imports _scss/icons.scss
9
9
  */
10
- @import "background";
11
- @import "address";
12
- @import "tag-cloud";
13
- @import "posts";
14
- @import "structure";
10
+ @use "background";
11
+ @use "address";
12
+ @use "tag-cloud";
13
+ @use "posts";
14
+ @use "structure";
15
15
 
16
16
  /*
17
- * import styles for highlighting source code that was annotated using rouge.
17
+ * Import styles for highlighting source code that was annotated using rouge.
18
18
  */
19
- @import "rouge-highlight";
19
+ @use "rouge-highlight";
20
20
 
21
21
  /*
22
- * import styles for AsciiDoc.
22
+ * Import styles for Markdown.
23
23
  */
24
- @import "adoc";
25
- @import "adoc-admonition";
26
- @import "adoc-tables";
27
- @import "adoc-lists";
28
- @import "adoc-quote";
29
- @import "adoc-images";
24
+ @use "md-quote";
25
+ @use "md-lists";
26
+ @use "md-tables";
30
27
 
31
28
  /*
32
- * import SCSS-Code contributed by the user of the theme.
29
+ * Import styles for AsciiDoc.
30
+ */
31
+ @use "adoc";
32
+ @use "adoc-admonition";
33
+ @use "adoc-tables";
34
+ @use "adoc-lists";
35
+ @use "adoc-quote";
36
+ @use "adoc-images";
37
+ @use "adoc-code";
38
+ @use "adoc-text";
39
+
40
+ /*
41
+ * Dynamically add stylesheets as configured by the user in `_config.yml`
42
+ */
43
+ {% for stylesheet in site.additional-stylesheets %}
44
+ @use "{{ stylesheet }}";
45
+ {% endfor %}
46
+
47
+ /*
48
+ * Import SCSS-Code contributed by the user of the theme.
33
49
  * imports from _scss/background.scss
34
50
  */
35
- @import "user";
51
+ @use "user";
36
52
 
37
53
 
@@ -33,19 +33,27 @@ module Jekyll
33
33
  safe true
34
34
  # A Generator needs to implement the generate method
35
35
  def generate(site)
36
+ puts "[INFO] Starting TagPage generation"
36
37
  # If a layout with the name `page-tag` exists
37
38
  if site.layouts.key? 'page-tag'
39
+ puts "[INFO] 'page-tag' layout found"
38
40
  # The directory in which the files are to be created is configured in `site.tag_dir`.
39
41
  # If not, the directory `tags/` is used.
40
42
  dir = site.config['tag_dir'] || 'tags'
43
+ puts "[INFO] Using tag directory: #{dir}"
41
44
 
42
45
  # For each tag in the tag-list:
43
46
  site.tags.each_key do |tag|
44
47
  # Create a page-object using TagPage and add it to the `site.pages` array
45
48
  site.pages << TagPage.new(site, site.source, File.join(dir, tag), tag)
49
+ puts "[INFO] TagPage created for tag: #{tag}"
46
50
  end
47
51
 
52
+ puts "[INFO] All tags processed successfully"
53
+ else
54
+ puts "[ERROR] Could not find the layout 'page-tag'. Create a file '_layouts/page-tag.html' to fix this error. Skipping TagPage generation for now."
48
55
  end
56
+ puts "[INFO] TagPage generation finished"
49
57
  end
50
58
  end
51
59
 
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Endless
3
- VERSION = '0.9.0'
3
+ VERSION = '0.11.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-endless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.11.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: 2020-12-09 00:00:00.000000000 Z
11
+ date: 2024-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll-asciidoc
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: jekyll
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +38,20 @@ dependencies:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '4.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rouge
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '4.4'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '4.4'
27
55
  description:
28
56
  email:
29
57
  - rubygems.org@boekhoff.net
@@ -34,6 +62,8 @@ files:
34
62
  - LICENSE.txt
35
63
  - README.adoc
36
64
  - _config.yml
65
+ - _data.yml
66
+ - _data/tag-description.yml
37
67
  - _includes/container_end-of-document.html
38
68
  - _includes/content_footer-usernames.html
39
69
  - _includes/function_list-pages.html
@@ -46,17 +76,24 @@ files:
46
76
  - _layouts/default.html
47
77
  - _layouts/html.html
48
78
  - _layouts/page-postlist.html
79
+ - _layouts/page-tag-template.html
49
80
  - _layouts/page-tag.html
50
81
  - _layouts/page.html
51
82
  - _layouts/post.html
83
+ - _layouts/statistics.html
52
84
  - _sass/address.scss
53
85
  - _sass/adoc-admonition.scss
86
+ - _sass/adoc-code.scss
54
87
  - _sass/adoc-images.scss
55
88
  - _sass/adoc-lists.scss
56
89
  - _sass/adoc-quote.scss
57
90
  - _sass/adoc-tables.scss
91
+ - _sass/adoc-text.scss
58
92
  - _sass/adoc.scss
59
93
  - _sass/background.scss
94
+ - _sass/md-lists.scss
95
+ - _sass/md-quote.scss
96
+ - _sass/md-tables.scss
60
97
  - _sass/posts.scss
61
98
  - _sass/rouge-highlight.scss
62
99
  - _sass/structure.scss
@@ -79,14 +116,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
116
  requirements:
80
117
  - - ">="
81
118
  - !ruby/object:Gem::Version
82
- version: '0'
119
+ version: 3.3.5
83
120
  required_rubygems_version: !ruby/object:Gem::Requirement
84
121
  requirements:
85
122
  - - ">="
86
123
  - !ruby/object:Gem::Version
87
124
  version: '0'
88
125
  requirements: []
89
- rubygems_version: 3.1.2
126
+ rubygems_version: 3.5.16
90
127
  signing_key:
91
128
  specification_version: 4
92
129
  summary: A Jekyll theme that was started from scratch. View it on https://jekyll-theme-endless.gitlab.io/.