jekyll-theme-endless 0.0.1 → 0.1.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: 895ee6675bf014e980f0cedef57fdc044087039a7448798aa74734539b99421d
4
- data.tar.gz: c448fa60ced14cd1cc70b30d8152abc05aa3c970e9d38901bb6b86b1b8034549
3
+ metadata.gz: 9c92dfedce5cc6880471ae7994859fd5b388634e4067407abd00daa28faf4ddb
4
+ data.tar.gz: e8a8c5fe9a45b37e80442f091f0054f7600cd942e6c7886bdd69eede6ed46875
5
5
  SHA512:
6
- metadata.gz: 73eb66c8bf2493deff4f3003ec9c6b336e98431d141d28300ad7fce87d41607e6fa090cd43e553147d4cf5266ed2320b55927f4e1424d0026004938841794e0a
7
- data.tar.gz: cc5f8ebc667554dde143e957c3d294700ca7655ddb2203ed1e9bd7402e5913ffcb7f3aa11706ca4724d0d3af060bb267275a3beae8eec1f844e206e09e5f2fdf
6
+ metadata.gz: 1712475fc0dcef617efb69fc282d8cf38e791e24355fbbb17b75bd7cc592d6806ec44bc6a8d335b8ad88ca7aa9a79edd113df6b297eef96ee68b7d68a5843404
7
+ data.tar.gz: af48af0c6da7245c89385b9b34b83952ea12811f56f3fd016feca673b7f3083b0837da59e3a106bb135f9e3de9e89d931436a8c3a214034321354b01f968b4ed
@@ -1,5 +1,7 @@
1
1
  = jekyll-theme-endless
2
2
 
3
+
4
+
3
5
  == Installation
4
6
 
5
7
  Add this line to your Jekyll site's `Gemfile`:
@@ -24,6 +26,20 @@ Or install it yourself as:
24
26
 
25
27
  $ gem install jekyll-theme-endless
26
28
 
29
+
30
+
31
+ == General information
32
+
33
+ The theme is styled using https://getbootstrap.com/[Bootstrap] that is added
34
+ via a content delivery network (CDN; here: https://www.jsdelivr.com/).
35
+
36
+ The output of page variables (e.g. `page.title` or `page.menu_label`) is *not escaped* by the theme-layout.
37
+ The reason is, that Jekyll-AsciiDoc (in contrast to Markdown) escapes HTML by default.
38
+ Thus, using (unescaped) HTML-commands e.g. in titles of Markdown posts/pages might break the layout.
39
+ If you want to use Markdown AND have HTML-commands in the title, simply escape them (e.g. use `&lt;` instead of `<`).
40
+
41
+
42
+
27
43
  == Usage
28
44
 
29
45
  Here I describe available layouts, includes, sass and/or assets here.
@@ -36,15 +52,79 @@ HTML boilerplate code used for all layouts.
36
52
  `_layouts/default.html`::
37
53
  Default website structure (menue, tag cloud, ...) used for pages and posts.
38
54
 
55
+ Contains a navigation bar with a configurable brand-label.
56
+ Set `brand` in your `_config.yml`, to determine what is shown on the left side of the navigation.
57
+ Example:
58
+
59
+ [source, yaml]
60
+ ----
61
+ brand: '"<i>endless</i>"-Theme'
62
+ ----
63
+
64
+
39
65
  `_layouts/page.html`::
40
66
  Layout of page-content.
41
67
 
68
+ Start a new page in *AsciiDoc* by adding a file ending with `.adoc`.
69
+ Do not forget the `page-`-prefix when setting page variables.
70
+ Jekyll-AsciiDoc has an https://github.com/asciidoctor/jekyll-asciidoc#specifying-a-layout[auto-detection mechanism for the layout].
71
+ Thus, you typically do not have to set the layout to `page` or `post`.
72
+ [source, AsciiDoc]
73
+ ----
74
+ = Page title
75
+ :page-layout: page
76
+
77
+ Content.
78
+ ----
79
+
80
+ Start a new page in *Markdown* by adding a file ending with `.md`.
81
+
82
+ [source, Markdown]
83
+ ----
84
+ ---
85
+ layout: page
86
+ # Use either a `# Heading` OR set the title in the frontmatter.
87
+ # Using both will result in two headings.
88
+ ---
89
+ # Page title
90
+
91
+ Content
92
+ ----
93
+
42
94
  `_layouts/page-postlist.html`::
43
95
  Layout of page-content with a list of blog posts at the end.
44
96
 
45
97
  `_layouts/post.html`::
46
98
  Layout of blog-posts.
47
99
 
100
+ Start a new post in *AsciiDoc* by adding a file ending with `.adoc` to the `_posts/`-folder.
101
+ Do not forget the `page-`-prefix when setting page variables.
102
+ Jekyll-AsciiDoc has an https://github.com/asciidoctor/jekyll-asciidoc#specifying-a-layout[auto-detection mechanism for the layout].
103
+ Thus, you typically do not have to set the layout to `page` or `post`.
104
+ [source, AsciiDoc]
105
+ ----
106
+ = Page title
107
+ :page-layout: post
108
+
109
+ Content.
110
+ ----
111
+
112
+ Start a new post in *Markdown* by adding a file ending with `.md`.
113
+
114
+ [source, Markdown]
115
+ ----
116
+ ---
117
+ layout: post
118
+ # If the title of the post should be different from parts of the filename,
119
+ # change it using the title variable.
120
+ # Using a `# Heading` will result in two headings in the post.
121
+ title: Page title
122
+ ---
123
+
124
+ Content
125
+ ----
126
+
127
+
48
128
 
49
129
  === Includes
50
130
 
@@ -52,6 +132,15 @@ Layout of blog-posts.
52
132
  Generates the code containing links to each page.
53
133
  The text of the link is the title of the page.
54
134
 
135
+ If the text should be different from the page-title, set the page variable `menu_label`.
136
+ In AsciiDoc files this could be e.g.: `:page-menu_label: 'AnotherText'`.
137
+
138
+ The order of the links can be determined with the help of the page variable `menu_label`
139
+ (in AsciiDoc e.g. `:page-menu_position: 100`; in frontmatter e.g. `menu_position: 50`).
140
+ Pages with higher numbers appear on the left side of the menu.
141
+ Pages with a negative value for `menu_label` will be hidden from the menu.
142
+ This can be useful for your 404 page, which should be generated by Jekyll, but not visible in the menu.
143
+
55
144
  `_includes/function_list-posts.html`::
56
145
  Generates the code containing links to each blog-post.
57
146
  The text of the link is the title of the post.
@@ -64,12 +153,27 @@ This file is included by `assets/css/main.scss`.
64
153
 
65
154
 
66
155
 
156
+ == Settings
157
+
158
+ === Language
159
+
160
+ The language of the content can be set using `page.lang` which overrides `site.lang`.
161
+ The default is `en`.
162
+
163
+ * use e.g. `:page-lang: en` in AsciiDoc
164
+ * use e.g. `lang: en` in frontmatter
165
+ * use e.g. `lang: en` in `_config.yml`
166
+
167
+
168
+
67
169
  == Contributing
68
170
 
69
171
  Bug reports and pull requests are welcome on GitHub at https://gitlab.com/jekyll-theme-endless/jekyll-theme-endless.gitlab.io.
70
172
  This project is intended to be a safe, welcoming space for collaboration,
71
173
  and contributors are expected to adhere to the http://contributor-covenant.org[Contributor Covenant] code of conduct.
72
174
 
175
+
176
+
73
177
  == Development
74
178
 
75
179
  To set up your environment to develop this theme:
@@ -87,6 +191,8 @@ you should see the changes in the browser after a refresh, just like normal.
87
191
  When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
88
192
  To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-endless.gemspec` accordingly.
89
193
 
194
+
195
+
90
196
  == License
91
197
 
92
198
  The theme is available as open source under the terms of the https://opensource.org/licenses/MIT[MIT License].
@@ -29,6 +29,17 @@ url: "" # the base hostname & protocol for your site, e.g. http://example.com
29
29
  #twitter_username: jekyllrb
30
30
  #github_username: jekyll
31
31
 
32
+
33
+
34
+ # Theme specific settings
35
+ # Language. Is overriden by value of page.lang.
36
+ lang: en
37
+ # Brand is not escaped in the layout.
38
+ # Thus, HTML-commands can be used.
39
+ brand: '"<i>endless</i>"-Theme'
40
+
41
+
42
+
32
43
  # Build settings
33
44
  #theme: minima
34
45
  #plugins:
@@ -57,3 +68,4 @@ exclude:
57
68
  # - vendor/gems/
58
69
  # - vendor/ruby/
59
70
 
71
+
@@ -2,12 +2,31 @@
2
2
  List of pages that were processed to HTML.
3
3
  Used for the pages menu.
4
4
  {% endcomment %}
5
- <ul>
6
- {% for current_page in site.html_pages %}
7
- <li>
8
- <a href="{{ current_page.url }}">{{ current_page.title }}</a>
9
- </li>
10
- {% endfor %}
11
- </ul>
12
5
 
6
+ {% comment %}
7
+ Descending order according to their position value.
8
+ (Pages with higher number are on top of the list)
9
+ {% endcomment %}
10
+ {% assign reverse_list = site.html_pages | sort: 'menu_position' | reverse %}
11
+
12
+ {% for current_page in reverse_list %}
13
+
14
+ {% comment %}
15
+ In order for a menu entry to be visible,
16
+ 1) either a name for the menu entry or a page title must be available
17
+ 2) the position parameter must be larger or equal to 0
18
+ (to hide entries, use a negative value)
19
+ Pages that have not set the position parameter, will be placed to the end.
20
+ {% endcomment %}
21
+
22
+ {% assign label = current_page.menu_label | default: current_page.title %}
23
+ {% assign position = current_page.menu_position | default: 0 %}
24
+
25
+ {% if label and position >= 0 %}
26
+ <li class="nav-item">
27
+ <a class="nav-link" href="{{ current_page.url }}">{{ label }}</a>
28
+ </li>
29
+ {% endif %}
30
+
31
+ {% endfor %}
13
32
 
@@ -3,6 +3,41 @@
3
3
  layout: html
4
4
  ---
5
5
 
6
- {% include function_list-pages.html %}
6
+ <!-- Navigation -->
7
+ <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
8
+ <div class="container">
9
+
10
+ <!-- Brand Icon -->
11
+ <a class="navbar-brand" href="{{ "/" | relative_url}}">{{ site.brand }}</a>
12
+
13
+ <!-- Burger menu -->
14
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
15
+ <span class="navbar-toggler-icon"></span>
16
+ </button>
17
+
18
+ <!-- Page links -->
19
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
20
+ <ul class="navbar-nav mr-auto">
21
+
22
+ {% include function_list-pages.html %}
23
+
24
+ </ul>
25
+ </div>
26
+
27
+ </div>
28
+ </nav>
29
+
30
+
31
+
32
+ <!-- Page content -->
33
+ <main class="container" aria-label="Content">
34
+
35
+ {{ content }}
36
+
37
+ </main>
38
+
39
+
40
+
41
+ <!-- Footer -->
42
+
7
43
 
8
- {{ content }}
@@ -3,17 +3,27 @@
3
3
  # Used for the default website layout (with menu, etc.), as well as the 404-Page.
4
4
  ---
5
5
  <!DOCTYPE html>
6
- <html lang="en" dir="ltr">
6
+ <html lang="{{ page.lang | default: site.lang | default: 'en' }}" dir="ltr">
7
7
  <head>
8
8
  <meta charset="utf-8">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
9
10
  <title>
10
11
  {{ page.title }}
11
12
  </title>
13
+
14
+ <!-- Bootstrap CSS -->
15
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha256-93wNFzm2GO3EoByj9rKZCwGjAJAwr0nujPaOgwUt8ZQ=" crossorigin="anonymous">
12
16
  <link rel="stylesheet" href="/assets/css/main.css">
17
+
13
18
  </head>
14
19
  <body>
15
20
 
16
21
  {{ content }}
17
22
 
23
+ <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
24
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha256-jXCJJT3KKcnNjZ3rfsabCj1EX4j2omR4xxm+H5CtywE=" crossorigin="anonymous"></script>
25
+
18
26
  </body>
19
27
  </html>
28
+
29
+
@@ -1,6 +1,12 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
+ {% comment %}
5
+ In Markdown pages, page.title is not filled.
6
+ Either set `title` in the frontmater, or use a `# Heading` on the page.
7
+ {% endcomment %}
8
+ {% if page.title %}
4
9
  <h1>{{ page.title }}</h1>
10
+ {% endif %}
5
11
 
6
12
  {{ content }}
@@ -1,6 +1,12 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
+ {% comment %}
5
+ In Markdown posts, page.title defaults to parts of the filename.
6
+ Thus, do not use `# Heading` in Blog posts, otherwise two H1-heading will appear.
7
+ {% endcomment %}
8
+ {% if page.title %}
4
9
  <h1>{{ page.title }}</h1>
10
+ {% endif %}
5
11
 
6
12
  {{ content }}
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.0.1
4
+ version: 0.1.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-10-17 00:00:00.000000000 Z
11
+ date: 2020-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -44,7 +44,7 @@ files:
44
44
  - _sass/background.scss
45
45
  - _sass/user.scss
46
46
  - assets/css/main.scss
47
- homepage: https://jekyll-theme-endless.gitlab.io
47
+ homepage: https://gitlab.com/jekyll-theme-endless/jekyll-theme-endless.gitlab.io
48
48
  licenses:
49
49
  - MIT
50
50
  metadata: {}
@@ -66,5 +66,5 @@ requirements: []
66
66
  rubygems_version: 3.1.2
67
67
  signing_key:
68
68
  specification_version: 4
69
- summary: A Jekyll theme that was started from scratch.
69
+ summary: A Jekyll theme that was started from scratch. View it on https://jekyll-theme-endless.gitlab.io/.
70
70
  test_files: []