jekyll-glass 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: db3b7606039886dd5f4ab8df2a0a4c5286aaf2d05b0b79e7d5f3e341b309ac2b
4
+ data.tar.gz: 1c6b47a1921fa60f5bc2f2f0395722f51fd80f72beb8ac5497b3a158ace88a2b
5
+ SHA512:
6
+ metadata.gz: ffad05959b146585b754a7981d4fa8e0e83700083aedd6c25ba38dd65c3339fffad15eef53c3cf1797910af0f5164b534a3072e6631de0d964a008533a6b7ffa
7
+ data.tar.gz: 5c6eb011de9c8d028591a0ab7848c98584e00605c59f1354330eb53a8fc51318427798cbda8e20ee01f5f59e763263174427e4af1ff6a856e4b02198a23df287
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2024 Linus Warnatz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,79 @@
1
+ ---
2
+ layout: page
3
+ permalink: /index
4
+ title: README
5
+ ---
6
+
7
+ # jekyll-glass
8
+
9
+ `jekyll-glass` is a Jekyll theme using glassmorphism design and clear block separation, created for my own blog. The theme's layout was loosely inspired by the page layout of [xkcd](https://xkcd.com/).
10
+
11
+
12
+ ## Installation
13
+
14
+ Add this line to your Jekyll site's `Gemfile`:
15
+
16
+ ```ruby
17
+ gem "jekyll-glass"
18
+ ```
19
+
20
+ And add this line to your Jekyll site's `_config.yml`:
21
+
22
+ ```yaml
23
+ theme: jekyll-glass
24
+ ```
25
+
26
+ And then execute:
27
+
28
+ $ bundle
29
+
30
+ Or install it yourself as:
31
+
32
+ $ gem install jekyll-glass
33
+
34
+ ## Usage
35
+
36
+ ### Layouts
37
+ The theme provides the following four layouts:
38
+ - `home`, intended for the index page, listing all posts
39
+ - `post`, intended for blog posts
40
+ - `page`, intended for static pages (currently identical to `post`)
41
+ - `tag`, intended for tag pages, listing all posts with a certain tag
42
+
43
+ The `base` layout is not intended to be used directly, but provides the basic structure for the other layouts, and is functionally identical to `page`.
44
+
45
+ ### Includes
46
+ You may be interested in modifying the following `includes`:
47
+ - `custom-head`, for custom CSS or JavaScript
48
+ - `header`, for the header of the page, set to display the site title and description.
49
+
50
+ If you modify the `footer` include, please retain some kind of theme credit, as per the MIT license.
51
+
52
+ All other includes are not intended to be modified. Remember that overriding includes removes the original, so you may want to copy the original content into your new include.
53
+
54
+ ### Configuration
55
+ All other configuration is in `_config.yml`, or dynamically created from Front Matter.
56
+
57
+ The configuration is designed to closely follow [Minima] 3, the default Jekyll theme.
58
+
59
+ The following configuration options are available:
60
+ - `title`, the title of the site
61
+ - `description`, a short description of the site
62
+ - `author`, the author of the site. This expects a mapping of `name` and `email`.
63
+ - `baseurl`, the subpath of the site, if it is not hosted at the root of the domain
64
+ - `url`, the hostname of the site, and protocol, if not `https://`
65
+ - `social`, a mapping of social media links, with the same format as [Minima] 3, although no icons are generated, so I recommend setting the `title` property.
66
+ - `tag_page_dir`, the directory where tag pages are generated.
67
+
68
+ ## A note on GitHub Pages
69
+ The default "Publish from Branch" option on GitHub Pages does not support custom Gems. While you can use this theme using `jekyll-remote-theme`, this will break tags. Use a GitHub Actions workflow to build the site instead. The Jekyll team have written a simple [guide](https://jekyllrb.com/docs/continuous-integration/github-actions/) for this.
70
+
71
+ ## Contributing
72
+
73
+ Bug reports and pull requests are welcome on GitHub at https://github.com/libewa/jekyll-glass. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
74
+
75
+ ## License
76
+
77
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
78
+
79
+ [Minima]: https://github.com/jekyll/minima
File without changes
@@ -0,0 +1,5 @@
1
+ <div id="page-footer" class="glass container">
2
+ <p>© 2024 - {{ site.author.name }}</p>
3
+ <p>Powered by <a href="https://jekyllrb.com/" target="_blank">Jekyll</a> and <a href="https://pages.github.com/" target="_blank">GitHub Pages</a></p>
4
+ <p>Theme by <a href="https://github.com/libewa">libewa</a>, licensed under the MIT License.</p>
5
+ </div>
@@ -0,0 +1,9 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
6
+ <title>{{ page.title }} | {{ site.title }}</title>
7
+ {%- feed_meta -%}
8
+ {%- include custom-head.html -%}
9
+ </head>
@@ -0,0 +1,6 @@
1
+ <div id="page-header" class="glass container">
2
+ <h1 id="site-title"><a href="/index">{{ site.title }}</a></h1>
3
+ {% if site.description %}
4
+ <p id="site-description">{{ site.description }}</p>
5
+ {% endif %}
6
+ </div>
@@ -0,0 +1,8 @@
1
+ <ul class="static-links">
2
+ {%- include static-links.html -%}
3
+ </ul>
4
+ <ul class="social-links">
5
+ {%- for entry in site.social_links -%}
6
+ {%- include social-item.html item = entry -%}
7
+ {%- endfor -%}
8
+ </ul>
@@ -0,0 +1,12 @@
1
+ <div id="sidebar-left" class="sidebar glass container" >
2
+ <nav id="sidenav">
3
+ {%- include navlinks.html -%}
4
+ <h3>Tags</h3>
5
+ <ul id="sidebar-tag-list">
6
+ {%- include taglist.html -%}
7
+ </ul>
8
+ </nav>
9
+ <nav id="topnav">
10
+ {%- include navlinks.html -%}
11
+ </nav>
12
+ </div>
@@ -0,0 +1,5 @@
1
+ <li>{% assign entry = include.item %}
2
+ <a {% unless entry.platform == 'rss' %}rel="me" {% endunless %}href="{{ entry.user_url }}" target="_blank" title="{{ entry.title | default: entry.platform }}">
3
+ {{ entry.title | default: entry.platform }}
4
+ </a>
5
+ </li>
@@ -0,0 +1,3 @@
1
+ <li><a href="/index">Home</a></li>
2
+ <li><a href="/contact">Contact</a></li>
3
+ <li><a href="/feed.xml">RSS</a></li>
@@ -0,0 +1,3 @@
1
+ {%- for tag in site.tags -%}
2
+ <li><a href="{{ '/tag/' | append: tag[0] | relative_url }}">{{ tag[0] }}</a></li>
3
+ {%- endfor -%}
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: "en" }}">
3
+
4
+ {%- include head.html -%}
5
+
6
+ <body>
7
+
8
+ {%- include header.html -%}
9
+
10
+ <div id="below-header">
11
+ {%- include sidebar.html -%}
12
+
13
+ <main class="glass container" id="page-content" aria-label="Content">
14
+ <div class="wrapper">
15
+ {{ content }}
16
+ </div>
17
+ </main>
18
+ </div>
19
+
20
+ {%- include footer.html -%}
21
+
22
+ </body>
23
+
24
+ </html>
@@ -0,0 +1,59 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+
5
+ <div class="home">
6
+ {{ content }}
7
+
8
+
9
+ <h1 class="post-list-heading">All posts</h1>
10
+
11
+ {% if site.paginate %}
12
+ {% assign posts = paginator.posts %}
13
+ {% else %}
14
+ {% assign posts = site.posts %}
15
+ {% endif %}
16
+
17
+
18
+ {%- if posts.size > 0 -%}
19
+ {%- if page.list_title -%}
20
+ <h2 class="post-list-heading">{{ page.list_title }}</h2>
21
+ {%- endif -%}
22
+ <ul class="post-list">
23
+ {%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
24
+ {%- for post in posts -%}
25
+ <li>
26
+ <span class="post-meta">{{ post.date | date: date_format }}</span>
27
+ <h3>
28
+ <a class="post-link" href="{{ post.url | relative_url }}">
29
+ {{ post.title | escape }}
30
+ </a>
31
+ </h3>
32
+ {%- if site.show_excerpts -%}
33
+ {{ post.excerpt }}
34
+ {%- endif -%}
35
+ </li>
36
+ {%- endfor -%}
37
+ </ul>
38
+
39
+ {% if site.paginate %}
40
+ <div class="pager">
41
+ <ul class="pagination">
42
+ {%- if paginator.previous_page %}
43
+ <li><a href="{{ paginator.previous_page_path | relative_url }}" class="previous-page">{{ paginator.previous_page }}</a></li>
44
+ {%- else %}
45
+ <li><div class="pager-edge">•</div></li>
46
+ {%- endif %}
47
+ <li><div class="current-page">{{ paginator.page }}</div></li>
48
+ {%- if paginator.next_page %}
49
+ <li><a href="{{ paginator.next_page_path | relative_url }}" class="next-page">{{ paginator.next_page }}</a></li>
50
+ {%- else %}
51
+ <li><div class="pager-edge">•</div></li>
52
+ {%- endif %}
53
+ </ul>
54
+ </div>
55
+ {%- endif %}
56
+
57
+ {%- endif -%}
58
+
59
+ </div>
@@ -0,0 +1,4 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ {{ content }}
@@ -0,0 +1,4 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ {{ content }}
data/_layouts/tag.html ADDED
@@ -0,0 +1,20 @@
1
+ ---
2
+ layout: base
3
+ ---
4
+ <h1 class="post-list-heading">Posts tagged with "{{ page.tag }}"</h1>
5
+ <ul class="post-list">
6
+ {%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
7
+ {%- for post in site.tags[page.tag] -%}
8
+ <li>
9
+ <span class="post-meta">{{ post.date | date: date_format }}</span>
10
+ <h3>
11
+ <a class="post-link" href="{{ post.url | relative_url }}">
12
+ {{ post.title | escape }}
13
+ </a>
14
+ </h3>
15
+ {%- if site.show_excerpts -%}
16
+ {{ post.excerpt }}
17
+ {%- endif -%}
18
+ </li>
19
+ {%- endfor -%}
20
+ </ul>
File without changes
@@ -0,0 +1,164 @@
1
+ ---
2
+ ---
3
+
4
+ @charset "utf-8";
5
+ @import "custom";
6
+
7
+ // Define defaults for each variable.
8
+
9
+ $base-font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI",
10
+ "Segoe UI Emoji", "Segoe UI Symbol", "Apple Color Emoji", Roboto, Helvetica,
11
+ Arial, sans-serif !default;
12
+ $code-font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono",
13
+ "Ubuntu Mono", "Liberation Mono", "Courier New", monospace;
14
+
15
+ // https://coolors.co/1b2f33-28502e-47682c-8c7051-ef3054
16
+ $dark-color: #1b2f33ff !default; // Dark color used e.g. for the background
17
+ $color-2: #28502eff !default;
18
+ $color-3: #47682cff !default;
19
+ $color-4: #8c7051ff !default;
20
+ $color-5: #ef3054ff !default;
21
+ $light-color: #fff !default; // Light color used e.g. for foreground text
22
+ $link-color: #bbb !default;
23
+ $link-color-visited: #888 !default;
24
+
25
+ $spacing-unit: 30px !default;
26
+
27
+ $table-text-align: left !default;
28
+
29
+ body {
30
+ font-family: $base-font-family;
31
+ color: $light-color;
32
+ -webkit-text-size-adjust: 100%;
33
+ -webkit-font-feature-settings: "kern" 1;
34
+ -moz-font-feature-settings: "kern" 1;
35
+ -o-font-feature-settings: "kern" 1;
36
+ font-feature-settings: "kern" 1;
37
+ font-kerning: normal;
38
+ background-color: $dark-color;
39
+ }
40
+
41
+ a {
42
+ color: $link-color;
43
+ }
44
+
45
+ a:visited {
46
+ color: $link-color-visited;
47
+ }
48
+
49
+ .container {
50
+ box-sizing: border-box;
51
+ padding: 1em 2em 1em 2em;
52
+ }
53
+ ul {
54
+ padding-left: inherit;
55
+ }
56
+ nav ul li {
57
+ list-style-type: none;
58
+ }
59
+ #page-content ul {
60
+ padding-left: 20px;
61
+ }
62
+
63
+ h1 {
64
+ font-family: $code-font-family, monospace;
65
+ }
66
+
67
+ .post-list-heading {
68
+ font-size: 26px;
69
+ }
70
+
71
+ h1 a {
72
+ color: $light-color;
73
+ text-decoration: none;
74
+ }
75
+ h1 a:visited {
76
+ color: $light-color;
77
+ }
78
+
79
+ .static-links a:visited {
80
+ color: $link-color;
81
+ }
82
+
83
+ code {
84
+ font-family: $code-font-family, monospace;
85
+ padding: 1px 3px 1px 3px;
86
+ @extend .glass;
87
+ }
88
+
89
+ .glass {
90
+ /* From https://css.glass */
91
+ background: rgba(255, 255, 255, 0.2);
92
+ border-radius: 16px;
93
+ box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
94
+ backdrop-filter: blur(7.1px);
95
+ -webkit-backdrop-filter: blur(7.1px);
96
+ border: 1px solid rgba(255, 255, 255, 0.3);
97
+ }
98
+
99
+ /* Grid layout */
100
+
101
+ body {
102
+ display: grid;
103
+ grid-template-areas:
104
+ "header"
105
+ "content"
106
+ "footer";
107
+ grid-template-columns: 1fr;
108
+ grid-template-rows: auto 1fr auto;
109
+ gap: 10px;
110
+ }
111
+
112
+ #page-header {
113
+ grid-area: header;
114
+ width: 100%;
115
+ }
116
+
117
+ #below-header {
118
+ display: grid;
119
+ grid-template-areas: "sidebar content";
120
+ grid-template-columns: 250px 1fr;
121
+ gap: 10px;
122
+ }
123
+
124
+ #sidebar-left {
125
+ grid-area: sidebar;
126
+ }
127
+
128
+ #page-content {
129
+ grid-area: content;
130
+ }
131
+
132
+ #page-footer {
133
+ grid-area: footer;
134
+ width: 100%;
135
+ }
136
+
137
+ @media (max-width: 600px) {
138
+ #below-header {
139
+ grid-template-areas:
140
+ "sidebar"
141
+ "content";
142
+ grid-template-columns: 1fr;
143
+ }
144
+ .social-link {
145
+ display: none;
146
+ }
147
+ }
148
+
149
+ #topnav {
150
+ display: none; /* Hide by default */
151
+ }
152
+ #topnav ul {
153
+ display: flex;
154
+ gap: 1rem; /* Optional: Adjust the gap between links */
155
+ }
156
+
157
+ @media (max-width: 600px) {
158
+ #sidenav {
159
+ display: none;
160
+ }
161
+ #topnav {
162
+ display: block;
163
+ }
164
+ }
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-glass
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Linus Warnatz
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-12-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.10'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-tagging
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: jekyll-feed
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.17.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.17.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: jekyll-sitemap
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.4.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: kramdown-parser-gfm
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description:
98
+ email:
99
+ - linus@libewa.xyz
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - LICENSE.txt
105
+ - README.md
106
+ - _includes/custom-head.html
107
+ - _includes/footer.html
108
+ - _includes/head.html
109
+ - _includes/header.html
110
+ - _includes/navlinks.html
111
+ - _includes/sidebar.html
112
+ - _includes/social-item.html
113
+ - _includes/static-links.html
114
+ - _includes/taglist.html
115
+ - _layouts/base.html
116
+ - _layouts/home.html
117
+ - _layouts/page.html
118
+ - _layouts/post.html
119
+ - _layouts/tag.html
120
+ - _sass/_custom.scss
121
+ - assets/css/main.scss
122
+ homepage: https://github.com/libewa/jekyll-glass
123
+ licenses:
124
+ - MIT
125
+ metadata: {}
126
+ post_install_message:
127
+ rdoc_options: []
128
+ require_paths:
129
+ - lib
130
+ required_ruby_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ required_rubygems_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ requirements: []
141
+ rubygems_version: 3.5.22
142
+ signing_key:
143
+ specification_version: 4
144
+ summary: A Jekyll theme using glass blocks.
145
+ test_files: []