jekyll-theme-endless 0.3.2 → 0.5.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 +31 -0
- data/_config.yml +10 -0
- data/_includes/function_show-dates.html +16 -0
- data/_includes/function_show-prev-next-navigation.html +19 -0
- data/_includes/function_tag-cloud.html +24 -7
- data/_includes/function_tag-list.html +15 -0
- data/_layouts/default.html +3 -3
- data/_layouts/html.html +1 -1
- data/_layouts/page-tag.html +4 -0
- data/_layouts/post.html +39 -9
- data/_sass/posts.scss +16 -0
- data/_sass/rouge-highlight.scss +68 -0
- data/assets/css/main.scss +6 -0
- data/lib/jekyll-theme-endless/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb31bb43fb78dd91b274a5f84a57176b0aea3699eab6b1d3c8a2b992f1e3b79f
|
4
|
+
data.tar.gz: 9f53070ae8f360023afa52c96a1d7207fffd392afc84b96a835ff329f5c2b809
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a5b90be2a585639374d61333397b4deeacb34d243a75406de135882d8ec174bf43eefb8d9c1f67be8d5118d56dfe7cba863ba962863ae43052f52e48904a8a4b
|
7
|
+
data.tar.gz: 8ed8555b0301d77081320c5571d3a29aabe41de5127cfa209bf651b667a208c59687d9e233b4fb130c6ac3e062d07ca2f3b9b172888b5dfe8550191ae1f4c435
|
data/README.adoc
CHANGED
@@ -3,6 +3,19 @@
|
|
3
3
|
:page-menu_position: 300
|
4
4
|
|
5
5
|
|
6
|
+
|
7
|
+
`jekyll-theme-endless` is a theme for the static site generator https://jekyllrb.com/[Jekyll].
|
8
|
+
The theme is ready to be used with posts written in https://asciidoctor.org/[AsciiDoc] using the
|
9
|
+
https://github.com/asciidoctor/jekyll-asciidoc[Jekyll AsciiDoc plugin].
|
10
|
+
The syntax of source code is highlighted using https://github.com/rouge-ruby/rouge/wiki/List-of-supported-languages-and-lexers[Rouge].
|
11
|
+
|
12
|
+
The repository of this Jekyll theme is located at:
|
13
|
+
https://gitlab.com/jekyll-theme-endless/jekyll-theme-endless.gitlab.io.
|
14
|
+
An example page using this theme can be viewed at: https://jekyll-theme-endless.gitlab.io.
|
15
|
+
The gem is published on https://rubygems.org/gems/jekyll-theme-endless.
|
16
|
+
|
17
|
+
|
18
|
+
|
6
19
|
== Quicktstart for testing
|
7
20
|
|
8
21
|
* Clone the repository
|
@@ -200,6 +213,24 @@ username_xing: XXXX
|
|
200
213
|
username_linkedin: XXXX
|
201
214
|
----
|
202
215
|
|
216
|
+
`_includes/function_tag-list.html`::
|
217
|
+
Generates a formatted list of tags.
|
218
|
+
This is e.g. used to display the tags of a blog post.
|
219
|
+
|
220
|
+
`_includes/function_show-dates.html`::
|
221
|
+
Show the creation date and (if present) the date a blog post was last edited.
|
222
|
+
The date of the last edit can be configured by setting a value for the page-variable `lastedit`.
|
223
|
+
|
224
|
+
In AsciiDoc this would be e.g.:
|
225
|
+
|
226
|
+
[source, AsciiDoc]
|
227
|
+
----
|
228
|
+
:page-lastedit: 2020-10-29
|
229
|
+
----
|
230
|
+
|
231
|
+
`_includes/function_show-prev-next-navigation.html`::
|
232
|
+
Displays links to the previous and the next post of your blog.
|
233
|
+
|
203
234
|
|
204
235
|
|
205
236
|
=== Plugins
|
data/_config.yml
CHANGED
@@ -23,6 +23,16 @@ url: "" # the base hostname & protocol for your site, e.g. http://example.com
|
|
23
23
|
|
24
24
|
|
25
25
|
|
26
|
+
# AsciiDoc settings
|
27
|
+
asciidoctor:
|
28
|
+
attributes:
|
29
|
+
# Highlighting source code using rouge
|
30
|
+
# https://github.com/asciidoctor/jekyll-asciidoc#stylesheet-for-code-highlighting
|
31
|
+
# https://github.com/asciidoctor/jekyll-asciidoc/issues/221#issuecomment-526857488
|
32
|
+
source-highlighter: rouge
|
33
|
+
|
34
|
+
|
35
|
+
|
26
36
|
# Theme specific settings
|
27
37
|
# Find example data in _data.yml of the theme repository.
|
28
38
|
# Run `bundle exec jekyll serve --config _config.yml,_data.yml`
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<div class="text-right">
|
2
|
+
|
3
|
+
<time class="created" datetime="{{ include.created | date_to_xmlschema }}">
|
4
|
+
<span class="sr-only sr-only-focusable">created:</span>
|
5
|
+
<strong title="date of creation">{{ include.created | date: "%b %-d, %Y" }}</strong>
|
6
|
+
</time>
|
7
|
+
|
8
|
+
{% if include.edited != "" and include.edited %}
|
9
|
+
/
|
10
|
+
<time class="edited" datetime="{{ include.edited | date_to_xmlschema }}">
|
11
|
+
<span class="sr-only sr-only-focusable">edited:</span>
|
12
|
+
<strong title="date of last edit">{{ include.edited | date: "%b %-d, %Y" }}</strong>
|
13
|
+
</time>
|
14
|
+
{% endif %}
|
15
|
+
|
16
|
+
</div>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="row text-left">
|
2
|
+
<div class="col">
|
3
|
+
{% if page.next %}
|
4
|
+
<a href="{{ page.next.url }}">
|
5
|
+
<i class="fa fa-arrow-left d-md-none"></i>
|
6
|
+
<span class="d-none d-md-inline">« {{page.next.title}}</span>
|
7
|
+
</a>
|
8
|
+
{% endif %}
|
9
|
+
</div>
|
10
|
+
<div class="col text-right">
|
11
|
+
{% if page.previous %}
|
12
|
+
<a href="{{ page.previous.url }}">
|
13
|
+
<span class="d-none d-md-inline">{{page.previous.title}} »</span>
|
14
|
+
<i class="fa fa-arrow-right d-md-none"></i>
|
15
|
+
</a>
|
16
|
+
{% endif %}
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
|
@@ -1,7 +1,24 @@
|
|
1
1
|
{% comment %}
|
2
|
+
Creates a tag cloud with tags beeing sized according to the number of occurences in blog posts.
|
3
|
+
{% endcomment %}
|
2
4
|
|
5
|
+
{% comment %}
|
6
|
+
Create an empty array.
|
7
|
+
{% endcomment %}
|
8
|
+
{% assign tags = "" | split:"" %}
|
9
|
+
|
10
|
+
{% comment %}
|
11
|
+
Fill the tags-array with tag-names.
|
12
|
+
The push-filter is a Jekyll specific filter.
|
13
|
+
{% endcomment %}
|
14
|
+
{% for tag in site.tags %}
|
15
|
+
{% assign tags = tags | push: tag.first %}
|
16
|
+
{% endfor %}
|
17
|
+
|
18
|
+
{% comment %}
|
19
|
+
Sort the tag-array case-insensitive.
|
3
20
|
{% endcomment %}
|
4
|
-
{% assign
|
21
|
+
{% assign tags_sorted = tags | sort_natural %}
|
5
22
|
|
6
23
|
{% comment %}
|
7
24
|
Requirements:
|
@@ -16,8 +33,8 @@ Assumption: Non of the tags occurs more than one million times.
|
|
16
33
|
{% assign min = 1000000 %}
|
17
34
|
{% assign max = 0 %}
|
18
35
|
|
19
|
-
{% for tag in
|
20
|
-
{% assign postsWithThisTag = tag |
|
36
|
+
{% for tag in tags_sorted %}
|
37
|
+
{% assign postsWithThisTag = site.tags[tag] | size %}
|
21
38
|
{% if postsWithThisTag > max %}
|
22
39
|
{% assign max = postsWithThisTag %}
|
23
40
|
{% endif %}
|
@@ -31,7 +48,7 @@ Assumption: Non of the tags occurs more than one million times.
|
|
31
48
|
|
32
49
|
<ul class="tag-cloud list-unstyled">
|
33
50
|
|
34
|
-
{% for tag in
|
51
|
+
{% for tag in tags_sorted %}
|
35
52
|
<li>
|
36
53
|
{% comment %}
|
37
54
|
The size difference should be 150%.
|
@@ -46,12 +63,12 @@ Assumption: Non of the tags occurs more than one million times.
|
|
46
63
|
To be on the safe side, create a float (times: 1.0)
|
47
64
|
{% endcomment %}
|
48
65
|
|
49
|
-
{% assign number = tag |
|
66
|
+
{% assign number = site.tags[tag] | size %}
|
50
67
|
{% assign percent = number | times: 1.0 | minus: min | times: sizeDifference | divided_by: steps | plus: 100 %}
|
51
|
-
{% assign tagname = tag |
|
68
|
+
{% assign tagname = tag | replace:'-', ' ' %}
|
52
69
|
|
53
70
|
<a
|
54
|
-
href = "/{{ site.tag_dir | default: 'tags' }}/{{ tag
|
71
|
+
href = "/{{ site.tag_dir | default: 'tags' }}/{{ tag }}"
|
55
72
|
style = "font-size: {{ percent }}%"
|
56
73
|
title = "Number of posts with the tag '{{ tagname }}': {{ number }}"
|
57
74
|
>{{ tagname }}</a>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Generates an unsorted list of tags.
|
3
|
+
Requires an array of tags beeing provided via the parameter `tags`.
|
4
|
+
{% endcomment %}
|
5
|
+
{% assign asize = include.tags | size %}
|
6
|
+
{% if asize > 0 %}
|
7
|
+
<ul class="list-inline">
|
8
|
+
{% for current_tag in include.tags %}
|
9
|
+
<li class="list-inline-item"><a
|
10
|
+
class="badge badge-pill badge-secondary"
|
11
|
+
href="/{{ site.tag_dir | default: 'tags' }}/{{ current_tag }}"
|
12
|
+
>{{ current_tag }}</a></li>
|
13
|
+
{% endfor %}
|
14
|
+
</ul>
|
15
|
+
{% endif %}
|
data/_layouts/default.html
CHANGED
@@ -51,15 +51,15 @@ layout: html
|
|
51
51
|
|
52
52
|
|
53
53
|
<!-- Page content -->
|
54
|
-
<main class="container pt-4
|
54
|
+
<main class="container pt-4" style="flex-grow: 1;" aria-label="Content">
|
55
55
|
|
56
56
|
<div class="row">
|
57
57
|
|
58
|
-
<div class="col-lg-8">
|
58
|
+
<div class="col-lg-8 pb-5">
|
59
59
|
{{ content }}
|
60
60
|
</div>
|
61
61
|
|
62
|
-
<div class="col-lg-4">
|
62
|
+
<div class="col-lg-4 pb-5">
|
63
63
|
<aside>
|
64
64
|
<h3>Blog Navigation</h3>
|
65
65
|
|
data/_layouts/html.html
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
<meta charset="utf-8">
|
9
9
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
10
10
|
<title>
|
11
|
-
{{ page.title }}
|
11
|
+
{{ page.title | default: page.menu_label | strip_html }}
|
12
12
|
</title>
|
13
13
|
|
14
14
|
<!-- Font-awesome CSS: https://www.bootstrapcdn.com/fontawesome/ -->
|
data/_layouts/page-tag.html
CHANGED
@@ -9,6 +9,10 @@ page.tag and page.title are set by the plugin `generate-taglist`.
|
|
9
9
|
<h1>{{ page.title }}</h1>
|
10
10
|
{% endif %}
|
11
11
|
|
12
|
+
<p>
|
13
|
+
Number of posts tagged with "<em>{{ page.tag }}</em>": <strong>{{ site.tags[ page.tag ] | size }}</strong>
|
14
|
+
</p>
|
15
|
+
|
12
16
|
<ul>
|
13
17
|
{% for post in site.tags[ page.tag ] %}
|
14
18
|
|
data/_layouts/post.html
CHANGED
@@ -1,12 +1,42 @@
|
|
1
1
|
---
|
2
2
|
layout: default
|
3
3
|
---
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
{% endcomment %}
|
8
|
-
{%
|
9
|
-
|
10
|
-
{%
|
11
|
-
|
12
|
-
|
4
|
+
<article>
|
5
|
+
<header>
|
6
|
+
|
7
|
+
{% comment %}Show link to previous/next post.{% endcomment %}
|
8
|
+
{% include function_show-prev-next-navigation.html %}
|
9
|
+
|
10
|
+
{% comment %}Show dates of the post.{% endcomment %}
|
11
|
+
{% include function_show-dates.html
|
12
|
+
created = page.date
|
13
|
+
edited = page.lastedit
|
14
|
+
%}
|
15
|
+
|
16
|
+
{% comment %}
|
17
|
+
In Markdown posts, page.title defaults to parts of the filename.
|
18
|
+
Thus, do not use `# Heading` in Blog posts, otherwise two H1-heading will appear.
|
19
|
+
{% endcomment %}
|
20
|
+
{% if page.title %}
|
21
|
+
<h1>{{ page.title }}</h1>
|
22
|
+
{% endif %}
|
23
|
+
|
24
|
+
{% comment %}Show tags of the post.{% endcomment %}
|
25
|
+
{% include function_tag-list.html
|
26
|
+
tags=page.tags
|
27
|
+
%}
|
28
|
+
|
29
|
+
</header>
|
30
|
+
|
31
|
+
<div>
|
32
|
+
{{ content }}
|
33
|
+
</div>
|
34
|
+
|
35
|
+
{% comment %}Show link to previous/next post.{% endcomment %}
|
36
|
+
{% include function_show-prev-next-navigation.html %}
|
37
|
+
|
38
|
+
</article>
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
|
data/_sass/posts.scss
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
/*
|
2
|
+
* Based on "Manni" from https://github.com/jwarby/jekyll-pygments-themes
|
3
|
+
*/
|
4
|
+
|
5
|
+
.highlight {
|
6
|
+
@at-root pre#{&} { background-color: #f8f8f8; padding: .5em 1em;}
|
7
|
+
.hll { background-color: #ffffcc }
|
8
|
+
.c { color: #080; font-style: italic } /* Comment */
|
9
|
+
.err { color: #AA0000; background-color: #FFAAAA } /* Error */
|
10
|
+
.k { color: #006699; font-weight: bold } /* Keyword */
|
11
|
+
.o { color: #555555 } /* Operator */
|
12
|
+
.cm { color: #080; font-style: italic } /* Comment.Multiline */
|
13
|
+
.cp { color: #08F } /* Comment.Preproc */
|
14
|
+
.c1 { color: #080; font-style: italic } /* Comment.Single */
|
15
|
+
.cs { color: #08F; font-weight: bold; font-style: italic } /* Comment.Special */
|
16
|
+
.gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
|
17
|
+
.ge { font-style: italic } /* Generic.Emph */
|
18
|
+
.gr { color: #FF0000 } /* Generic.Error */
|
19
|
+
.gh { color: #003300; font-weight: bold } /* Generic.Heading */
|
20
|
+
.gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
|
21
|
+
.go { color: #AAAAAA } /* Generic.Output */
|
22
|
+
.gp { color: #000099; font-weight: bold } /* Generic.Prompt */
|
23
|
+
.gs { font-weight: bold } /* Generic.Strong */
|
24
|
+
.gu { color: #003300; font-weight: bold } /* Generic.Subheading */
|
25
|
+
.gt { color: #99CC66 } /* Generic.Traceback */
|
26
|
+
.kc { color: #006699; font-weight: bold } /* Keyword.Constant */
|
27
|
+
.kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
|
28
|
+
.kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
|
29
|
+
.kp { color: #006699 } /* Keyword.Pseudo */
|
30
|
+
.kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
|
31
|
+
.kt { color: #007788; font-weight: bold } /* Keyword.Type */
|
32
|
+
.m { color: #FF6600 } /* Literal.Number */
|
33
|
+
.s { color: #CC3300 } /* Literal.String */
|
34
|
+
.na { color: #330099 } /* Name.Attribute */
|
35
|
+
.nb { color: #336666 } /* Name.Builtin */
|
36
|
+
.nc { color: #00AA88; font-weight: bold } /* Name.Class */
|
37
|
+
.no { color: #336600 } /* Name.Constant */
|
38
|
+
.nd { color: #9999FF } /* Name.Decorator */
|
39
|
+
.ni { color: #999999; font-weight: bold } /* Name.Entity */
|
40
|
+
.ne { color: #CC0000; font-weight: bold } /* Name.Exception */
|
41
|
+
.nf { color: #CC00FF } /* Name.Function */
|
42
|
+
.nl { color: #9999FF } /* Name.Label */
|
43
|
+
.nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
|
44
|
+
.nt { color: #330099; font-weight: bold } /* Name.Tag */
|
45
|
+
.nv { color: #003333 } /* Name.Variable */
|
46
|
+
.ow { color: #000000; font-weight: bold } /* Operator.Word */
|
47
|
+
.w { color: #bbbbbb } /* Text.Whitespace */
|
48
|
+
.mf { color: #FF6600 } /* Literal.Number.Float */
|
49
|
+
.mh { color: #FF6600 } /* Literal.Number.Hex */
|
50
|
+
.mi { color: #FF6600 } /* Literal.Number.Integer */
|
51
|
+
.mo { color: #FF6600 } /* Literal.Number.Oct */
|
52
|
+
.sb { color: #CC3300 } /* Literal.String.Backtick */
|
53
|
+
.sc { color: #CC3300 } /* Literal.String.Char */
|
54
|
+
.sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
|
55
|
+
.s2 { color: #CC3300 } /* Literal.String.Double */
|
56
|
+
.se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
|
57
|
+
.sh { color: #CC3300 } /* Literal.String.Heredoc */
|
58
|
+
.si { color: #AA0000 } /* Literal.String.Interpol */
|
59
|
+
.sx { color: #CC3300 } /* Literal.String.Other */
|
60
|
+
.sr { color: #33AAAA } /* Literal.String.Regex */
|
61
|
+
.s1 { color: #CC3300 } /* Literal.String.Single */
|
62
|
+
.ss { color: #FFCC33 } /* Literal.String.Symbol */
|
63
|
+
.bp { color: #336666 } /* Name.Builtin.Pseudo */
|
64
|
+
.vc { color: #003333 } /* Name.Variable.Class */
|
65
|
+
.vg { color: #003333 } /* Name.Variable.Global */
|
66
|
+
.vi { color: #003333 } /* Name.Variable.Instance */
|
67
|
+
.il { color: #FF6600 } /* Literal.Number.Integer.Long */
|
68
|
+
}
|
data/assets/css/main.scss
CHANGED
@@ -10,6 +10,12 @@
|
|
10
10
|
@import "background";
|
11
11
|
@import "address";
|
12
12
|
@import "tag-cloud";
|
13
|
+
@import "posts";
|
14
|
+
|
15
|
+
/*
|
16
|
+
* import styles for highlighting source code that was annotated using rouge.
|
17
|
+
*/
|
18
|
+
@import "rouge-highlight";
|
13
19
|
|
14
20
|
/*
|
15
21
|
* import SCSS-Code contributed by the user of the theme.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-endless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.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-
|
11
|
+
date: 2020-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -37,7 +37,10 @@ files:
|
|
37
37
|
- _includes/content_footer-usernames.html
|
38
38
|
- _includes/function_list-pages.html
|
39
39
|
- _includes/function_list-posts.html
|
40
|
+
- _includes/function_show-dates.html
|
41
|
+
- _includes/function_show-prev-next-navigation.html
|
40
42
|
- _includes/function_tag-cloud.html
|
43
|
+
- _includes/function_tag-list.html
|
41
44
|
- _layouts/default.html
|
42
45
|
- _layouts/html.html
|
43
46
|
- _layouts/page-postlist.html
|
@@ -46,6 +49,8 @@ files:
|
|
46
49
|
- _layouts/post.html
|
47
50
|
- _sass/address.scss
|
48
51
|
- _sass/background.scss
|
52
|
+
- _sass/posts.scss
|
53
|
+
- _sass/rouge-highlight.scss
|
49
54
|
- _sass/tag-cloud.scss
|
50
55
|
- _sass/user.scss
|
51
56
|
- assets/css/main.scss
|