jekyll-theme-superb 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c72135f444f043807d0731bf16585c01c39f7095085dc7d9e3f49d382fc87f47
4
+ data.tar.gz: 4bfc980ac998e2c37648a742c4879b05266e1a38776dfe0489639781a88e42f0
5
+ SHA512:
6
+ metadata.gz: 04ccace13d1691ee940516c7d54c95e1ac8ab6ddab52a61160b891d0c7b6b7ac7576a7ca0e5280e760eec0687f2a874e4e1f20145490c382c013a838386bc310
7
+ data.tar.gz: ba2ed680d8fed84d0f1f550d81ec798a7a5360541889e60b79fbc44b575d24523b0471f80185393ac86ef4317efb03cebf38b118f3a1d7f4bb0b29a5575d2cce
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 Ivanka Todorova
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,61 @@
1
+ # jekyll-theme-superb
2
+
3
+ This is a simple Jekyll theme that uses [tailwindCSS's-based ui-kit](https://github.com/simplysuperb-dev/ui-kit) of simply**superb**. My blog uses it currently, so you can see it live at: https://blog.simplysuperb.app/. Additionally, here's a screenshot*:
4
+
5
+ ![screenshot of the theme](./screenshot.png)
6
+
7
+ _\* Article titles were copied from [dev.to](dev.to)'s homepage at the time of designing of this template._
8
+ ## Installation
9
+
10
+ Add this line to your Jekyll site's `Gemfile`:
11
+
12
+ ```ruby
13
+ gem "jekyll-theme-superb"
14
+ ```
15
+
16
+ And add this line to your Jekyll site's `_config.yml`:
17
+
18
+ ```yaml
19
+ theme: jekyll-theme-superb
20
+ ```
21
+
22
+ And then execute:
23
+
24
+ $ bundle
25
+
26
+ Or install it yourself as:
27
+
28
+ $ gem install jekyll-theme-superb
29
+
30
+ ## Usage
31
+
32
+ Theme has a `post` layout used for displaying a single post, an `index` layout used for displaying all posts and a page layout that differs slightly from the `post` layout.
33
+
34
+ ## Configuration
35
+
36
+ @TODO: Document all available config options
37
+
38
+ ## Contributing
39
+
40
+ Bug reports and pull requests are welcome on GitHub at https://github.com/simplysuperb-dev/jekyll-theme-superb. 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.
41
+
42
+ ## Development
43
+
44
+ To set up your environment to develop this theme, run `bundle install`.
45
+
46
+ Your theme is setup just like a normal Jekyll site! To test your theme, run `npm run jekyll:dev` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
47
+
48
+ Additionally, the theme is based on tailwindCSS, so postcss is required to modify existing styles:
49
+
50
+ $ npm install
51
+ $ npm run css:dev
52
+
53
+
54
+
55
+ When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
56
+ To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-superb.gemspec` accordingly.
57
+
58
+ ## License
59
+
60
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
61
+
data/_config.yml ADDED
@@ -0,0 +1,9 @@
1
+ title: ssb. # title of the blog used in <title> & as a logo
2
+ subtitle: /blog # subtitle of the blog used in <title> & next to name
3
+ sass:
4
+ sass_dir: _sass
5
+ style: compact
6
+ plugins:
7
+ - jekyll-postcss
8
+ - jekyll-feed
9
+ - jekyll-seo-tag
@@ -0,0 +1,3 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons, meta tags, etc.
3
+ {% endcomment %}
@@ -0,0 +1,14 @@
1
+ <div class="border-t border-porcelain py-4 text-caption">
2
+ <div class="text-center desktop:flex desktop:justify-between space-y-2">
3
+ <p>
4
+ {{ site.time | date: '%Y' }} (C) All rights reserved.
5
+ </p>
6
+ <p>
7
+ <a href="https://github.com/simplysuperb-dev/jekyll-theme-superb" target="_blank"
8
+ class="inline-block text-green font-bold">superb.</a> theme
9
+ made with ❤️ by
10
+ <a href="https://itodorova.dev/" target="_blank"
11
+ class="py-1 px-2 bg-yellow inline-block text-white">itodorova.dev</a>
12
+ </p>
13
+ </div>
14
+ </div>
@@ -0,0 +1,9 @@
1
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
2
+ <script>
3
+ window['ga-disable-{{ site.google_analytics }}'] = window.doNotTrack === "1" || navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1";
4
+ window.dataLayer = window.dataLayer || [];
5
+ function gtag(){window.dataLayer.push(arguments);}
6
+ gtag('js', new Date());
7
+
8
+ gtag('config', '{{ site.google_analytics }}');
9
+ </script>
@@ -0,0 +1,14 @@
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
+ {%- seo -%}
6
+ <link rel="stylesheet" href="{{ "/assets/css/style.css" | relative_url }}">
7
+ {%- feed_meta -%}
8
+ {%- if jekyll.environment == 'production' and site.google_analytics -%}
9
+ {%- include google-analytics.html -%}
10
+ {%- endif -%}
11
+
12
+ {%- include custom-head.html -%}
13
+ <script src="{{'/assets/js/main.js'}}"></script>
14
+ </head>
@@ -0,0 +1,67 @@
1
+ <header class="bg-white border-b border-porcelain desktop:border-none">
2
+ <nav>
3
+ <div class="flex justify-between px-4 desktop:px-0">
4
+ <div>
5
+ <a href="{{ '/' | relative_url }}" class="flex items-center py-2 desktop:py-4 text-h4 desktop:text-h3">
6
+ {% assign restOfTitleLen = site.title.size | minus: 3 %}
7
+ <span class="text-graphite">{{ site.title | escape | slice: 0, restOfTitleLen }}</span>
8
+ <span class="text-green">{{ site.title | escape | slice: -3, 2 }}</span>
9
+ <span class="text-graphite">{{ site.title | escape | slice: -1, 1 }}</span>
10
+ {% if site.subtitle %}
11
+ <span class="text-grey/50 hidden desktop:inline text-h5 ml-4">
12
+ {{ site.subtitle }}
13
+ </span>
14
+ {% endif %}
15
+ </a>
16
+ </div>
17
+ <div class="hidden desktop:flex items-center space-x-5">
18
+ <a href="{{ '/' | relative_url }}" {% if page.url=='/' %}
19
+ class="text-green border-green border-b-2 transition duration-300" {% else %}
20
+ class="text-graphite border-b-2 border-white hover:border-graphite hover:border-b-2 transition duration-300"
21
+ {% endif %}>posts</a>
22
+ {% for my_page in site.pages %}
23
+ {% if my_page.title %}
24
+ <a href="{{ my_page.url | relative_url }}" {% if my_page.url==page.url %}
25
+ class="text-green border-green border-b-2 transition duration-300" {% else %}
26
+ class="text-graphite border-b-2 border-white hover:border-graphite hover:border-b-2 transition duration-300"
27
+ {% endif %}>
28
+ {{ my_page.title | escape }}
29
+ </a>
30
+ {% endif %}
31
+ {% endfor %}
32
+ </div>
33
+ <div class="desktop:hidden flex items-center">
34
+ <button class="outline-none mobile-menu-button">
35
+ <svg class="w-6 h-6 text-graphite hover:text-green" x-show="!showMenu" fill="none"
36
+ stroke-linecap="round" stroke-linejoin="round" stroke-width="2" viewBox="0 0 24 24"
37
+ stroke="currentColor">
38
+ <path d="M4 6h16M4 12h16M4 18h16"></path>
39
+ </svg>
40
+ </button>
41
+ </div>
42
+ </div>
43
+ <!-- mobile menu -->
44
+ <div class="hidden mobile-menu border-porcelain border-t">
45
+ <ul class="max-w-max flex space-x-5 bg-white p-4">
46
+ <li>
47
+ <a href="{{ '/' | relative_url }}" {% if page.url=='/' %}
48
+ class="text-green border-green border-b-2 transition duration-300" {% else %}
49
+ class="text-graphite border-b-2 border-white hover:border-graphite hover:border-b-2 transition duration-300"
50
+ {% endif %}>posts</a>
51
+ </li>
52
+ {% for my_page in site.pages %}
53
+ {% if my_page.title %}
54
+ <li>
55
+ <a href="{{ my_page.url | relative_url }}" {% if my_page.url==page.url %}
56
+ class="text-green border-green border-b-2 transition duration-300" {% else %}
57
+ class="text-graphite border-b-2 border-white hover:border-graphite hover:border-b-2 transition duration-300"
58
+ {% endif %}>
59
+ {{ my_page.title | escape }}
60
+ </a>
61
+ </li>
62
+ {% endif %}
63
+ {% endfor %}
64
+ </ul>
65
+ </div>
66
+ </nav>
67
+ </header>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ page.lang | default: site.lang | default: 'en' }}">
3
+
4
+ {%- include head.html -%}
5
+
6
+ <body class="font-merriweather">
7
+ <div class="container mx-auto">
8
+
9
+ {%- include header.html -%}
10
+
11
+ {{content}}
12
+
13
+ {%- include footer.html -%}
14
+ </div>
15
+ </body>
16
+
17
+ </html>
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% assign posts = site.posts %}
6
+
7
+ {%- if posts.size > 0 -%}
8
+ <ul class="mb-5 px-2 desktop:px-0">
9
+ {%- for post in posts -%}
10
+ <li class="mb-10">
11
+ <div class="my-2">
12
+ <span class="text-grey/50">0644</span>
13
+ <span class="text-graphite mx-4">{{ post.author }}</span>
14
+ <span class="text-graphite">{{ post.date | date: "%-d %b '%y" }}</span>
15
+ </div>
16
+ <a class="post-link" href="{{ post.url | relative_url }}">
17
+ <span class="text-grey/50 text-subtitle">./</span>
18
+ <span class="text-graphite text-h5 underline">{{ post.title | escape }}</span>
19
+ <span class="text-grey/50 text-subtitle">.txt</span>
20
+ </a>
21
+ </li>
22
+ {%- endfor -%}
23
+ </ul>
24
+ {%- else -%}
25
+ <h3 class="text-grey text-h5 desktop:text-h3 py-10 desktop:px-0 px-4">No posts available.</h3>
26
+ {% endif %}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,13 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="prose max-w-fit py-4">
6
+ <div>
7
+ <span class="text-grey/50">0644</span>
8
+ <span class="text-graphite mx-4">{{ page.author }}</span>
9
+ <span class="text-graphite">{{ page.date | date: "%-d %b '%y" }}</span>
10
+ </div>
11
+ <h2 class="mb-6 mt-0">{{page.title}}</h2>
12
+ {{ content }}
13
+ </div>
data/_sass/theme.scss ADDED
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
data/assets/js/main.js ADDED
@@ -0,0 +1,9 @@
1
+ window.addEventListener('load', () => {
2
+ // Mobile navigation
3
+ const btn = document.querySelector("button.mobile-menu-button");
4
+ const menu = document.querySelector(".mobile-menu");
5
+
6
+ btn.addEventListener("click", () => {
7
+ menu.classList.toggle("hidden");
8
+ });
9
+ });
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-theme-superb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Ivanka Todorova
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-01-04 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: '4.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: jekyll-feed
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
41
+ - !ruby/object:Gem::Dependency
42
+ name: jekyll-seo-tag
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.1'
55
+ description:
56
+ email:
57
+ - fakeheal@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - LICENSE.txt
63
+ - README.md
64
+ - _config.yml
65
+ - _includes/custom-head.html
66
+ - _includes/footer.html
67
+ - _includes/google-analytics.html
68
+ - _includes/head.html
69
+ - _includes/header.html
70
+ - _layouts/default.html
71
+ - _layouts/home.html
72
+ - _layouts/page.html
73
+ - _layouts/post.html
74
+ - _sass/theme.scss
75
+ - assets/js/main.js
76
+ homepage: https://github.com/simplysuperb-dev/jekyll-theme-superb
77
+ licenses:
78
+ - MIT
79
+ metadata: {}
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubygems_version: 3.0.3.1
96
+ signing_key:
97
+ specification_version: 4
98
+ summary: Simple type driven theme suitable for developers.
99
+ test_files: []