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 +4 -4
- data/README.adoc +99 -5
- data/_config.yml +45 -11
- data/_data/tag-description.yml +91 -0
- data/_data.yml +63 -0
- data/_includes/function_tag-cloud.html +9 -1
- data/_layouts/page-tag-template.html +26 -0
- data/_layouts/page-tag.html +1 -15
- data/_layouts/statistics.html +95 -0
- data/_sass/adoc-admonition.scss +2 -0
- data/_sass/adoc-code.scss +28 -0
- data/_sass/adoc-images.scss +0 -5
- data/_sass/adoc-tables.scss +24 -0
- data/_sass/adoc-text.scss +12 -0
- data/_sass/adoc.scss +9 -0
- data/_sass/md-lists.scss +5 -0
- data/_sass/md-quote.scss +7 -0
- data/_sass/md-tables.scss +17 -0
- data/assets/css/main.scss +32 -16
- data/lib/jekyll-theme-endless/generate-tagpages.rb +8 -0
- data/lib/jekyll-theme-endless/version.rb +1 -1
- metadata +41 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5f07f885402f2e5f0e3431fb93102b8cbd9be1f0a0e7a6e42b0fbe59927b911
|
4
|
+
data.tar.gz: 2fb7e64709edac7b386f964305023d497081a11649f85d118af860a7931a7aaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
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
|
-
|
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 `
|
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
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
+
%}
|
data/_layouts/page-tag.html
CHANGED
@@ -1,19 +1,5 @@
|
|
1
1
|
---
|
2
|
-
layout:
|
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 %}
|
data/_sass/adoc-admonition.scss
CHANGED
@@ -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
|
+
|
data/_sass/adoc-images.scss
CHANGED
data/_sass/adoc-tables.scss
CHANGED
@@ -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 {
|
data/_sass/adoc.scss
CHANGED
data/_sass/md-lists.scss
ADDED
data/_sass/md-quote.scss
ADDED
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
|
-
@
|
11
|
-
@
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@
|
10
|
+
@use "background";
|
11
|
+
@use "address";
|
12
|
+
@use "tag-cloud";
|
13
|
+
@use "posts";
|
14
|
+
@use "structure";
|
15
15
|
|
16
16
|
/*
|
17
|
-
*
|
17
|
+
* Import styles for highlighting source code that was annotated using rouge.
|
18
18
|
*/
|
19
|
-
@
|
19
|
+
@use "rouge-highlight";
|
20
20
|
|
21
21
|
/*
|
22
|
-
*
|
22
|
+
* Import styles for Markdown.
|
23
23
|
*/
|
24
|
-
@
|
25
|
-
@
|
26
|
-
@
|
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
|
-
*
|
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
|
-
@
|
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
|
|
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.
|
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:
|
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:
|
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.
|
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/.
|