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 +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/.
|