jekyll-theme-endless 0.9.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 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/.