jekyll-theme-bluegreen 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: 325ae45b2893b506e7018225405542c352291ed0e5ce1256d2fefc4b8469aed0
4
+ data.tar.gz: 92b5729b4720f7904e6a76567c6d297faad0299fcc295498846dd4aa2f67eab7
5
+ SHA512:
6
+ metadata.gz: ae135c532e0d8e812e6fc1c412660283c3ed63cc461996c31bfb8709d935c54da1187750a3dc1e3766a4ce99e83b442df009aacc5dea625b058440b7b534b175
7
+ data.tar.gz: d829ec45a8a182bee8e5da3a7a6126cc0d09bc3588692b58f2d9af44ab4a16898b8f678d27ba114cc8e742ac80e5be9930fa0e7d2b2f1240ac19915f6c41fbec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Björn Kawecki
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 all
13
+ 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 THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Jekyll Theme Blue/Green
2
+
3
+ ## Summary
4
+
5
+ Starting from Jekyll's minima theme, I created a simple design according to my taste with pages for a blog, about me and projects.
6
+
7
+ ## Features
8
+
9
+ - Tailwind v3
10
+ - Simple layout
11
+ - Light/dark theme toggle
12
+ - Blog page with pagination
13
+ - Projects page with pagination
14
+ - Other pages: about, 404
15
+ - Several layouts
16
+
17
+ ## Install
18
+
19
+ 1. Install `package.json` with your preferred node package manager
20
+ 2. Make sure that you installed ruby and bundler
21
+ 3. Use the scripts in `package.json` to build start and watch your development application
22
+
23
+ ## Customize
24
+
25
+ - Paste your preffered woff2 font file in `/assets/fonts/` and change the refernce in `/_includes/head.html`
26
+ - Edit your Tailwind color palettes in `tailwind.config.js`
27
+ - Personalize the values for name, email, description, etc. in `_config.yml`
28
+
29
+ ## Preview
30
+
31
+ Live-Preview: [bjoernkawecki.de](https://bjoernkawecki.de/)
32
+
33
+ ![preview-blog-blue](/assets/preview/blue.png)
34
+ ![preview-blog-green](/assets/preview/green.png)
data/_config.yml ADDED
@@ -0,0 +1,81 @@
1
+ # Welcome to Jekyll!
2
+ #
3
+ # This config file is meant for settings that affect your whole blog, values
4
+ # which you are expected to set up once and rarely edit after that. If you find
5
+ # yourself editing this file very often, consider using Jekyll's data files
6
+ # feature for the data you need to update frequently.
7
+ #
8
+ # For technical reasons, this file is *NOT* reloaded automatically when you use
9
+ # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
+ #
11
+ # If you need help with YAML syntax, here are some quick references for you:
12
+ # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13
+ # https://learnxinyminutes.com/docs/yaml/
14
+ #
15
+ # Site settings
16
+ # These are used to personalize your new site. If you look in the HTML files,
17
+ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
18
+ # You can create any custom variable you would like, and they will be accessible
19
+ # in the templates via {{ site.myvariable }}.
20
+
21
+ theme_name: bluegreen
22
+ author: Björn Kawecki
23
+
24
+ title: Tilly Bleen | Blog & Projects
25
+ subtitle: Full Stack Cat
26
+ name: Tilly Bleen
27
+
28
+ email: tbleen@catmail.org
29
+ description: Blog, Projects, About me
30
+ url: "https://example.com" # the base hostname & protocol for your site, e.g. http://example.com
31
+ baseurl: "" # the subpath of your site, e.g. /blog
32
+ twitter_username:
33
+ github_username: tbleen
34
+ linkedin_username: tbleen
35
+
36
+ plugins:
37
+ - jekyll-feed
38
+ - jekyll-postcss
39
+ - jekyll-paginate
40
+
41
+ postcss:
42
+ cache: false
43
+
44
+ paginate: 5
45
+ paginate_path: "/page:num/"
46
+
47
+ collections:
48
+ projects:
49
+ output: true # Falls du möchtest, dass jedes Projekt eine eigene Seite hat
50
+ permalink: /projects/:path/
51
+
52
+ sass:
53
+ load_paths:
54
+ - _sass
55
+ - node_modules
56
+
57
+ include:
58
+ - node_modules/tailwindcss
59
+ - _pages
60
+
61
+ kramdown:
62
+ smart_quotes: sbquo,rsquo,bdquo,rdquo
63
+ # Exclude from processing.
64
+ # The following items will not be processed, by default.
65
+ # Any item listed under the `exclude:` key here will be automatically added to
66
+ # the internal "default list".
67
+ #
68
+ # Excluded items can be processed by explicitly listing the directories or
69
+ # their entries' file path in the `include:` list.
70
+ #
71
+ # exclude:
72
+ # - .sass-cache/
73
+ # - .jekyll-cache/
74
+ # - gemfiles/
75
+ # - Gemfile
76
+ # - Gemfile.lock
77
+ # - node_modules/
78
+ # - vendor/bundle/
79
+ # - vendor/cache/
80
+ # - vendor/gems/
81
+ # - vendor/ruby/
@@ -0,0 +1,20 @@
1
+ <aside class="flex-col items-center mb-3 md:mb-0 h-fit md:top-10 md:sticky">
2
+ <div class="flex justify-center mb-5">
3
+ <img src="/assets/img/your-profil-picture.webp" class="object-cover h-48 rounded-full md:h-72">
4
+ </div>
5
+ <div class="flex flex-col items-center mb-2 space-y-0.5">
6
+ <div class="px-6 text-2xl font-medium md:px-0">
7
+ <a href="/">{{ site.name }}</a>
8
+ </div>
9
+ <div>{{ site.subtitle}}</div>
10
+ </div>
11
+ <div class="flex justify-center mb-6 space-x-2">
12
+ <a href="/"
13
+ class="{% if page.url == '/' or page.url contains '/page' %}font-bold {% endif %}text-blue2-600 dark:text-emerald-500 hover:underline">Weblog</a><span>&middot;</span>
14
+ <a href="/projects/"
15
+ class="{% if page.url == '/projects/' %}font-bold {% endif %}text-blue2-600 hover:underline dark:text-emerald-500">Projects</a>
16
+ <span>&middot;</span>
17
+ <a href="/about/" class="{% if page.url == '/about/' %}font-bold {% endif %}text-blue2-600 hover:underline dark:text-emerald-500">About me</a>
18
+ </div>
19
+ {% include footer.html %}
20
+ </aside>
@@ -0,0 +1,33 @@
1
+ <footer class="flex flex-col items-center my-10 space-y-3 md:mb-20">
2
+ <div class="flex justify-center space-x-3 w-1/2">
3
+ <a target="_blank" rel="noopener noreferrer" href="#">
4
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
5
+ class="w-7 h-7 fill-gray-700 hover:fill-gray-500 dark:fill-gray-200 dark:hover:fill-gray-50">
6
+ <title>github</title>
7
+ <path
8
+ d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z" />
9
+ </svg>
10
+ </a>
11
+ <a href="#" target="_blank" rel="noopener noreferrer">
12
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
13
+ class="w-7 h-7 fill-gray-700 hover:fill-gray-500 dark:fill-gray-200 dark:hover:fill-gray-50">
14
+ <title>linkedin</title>
15
+ <path
16
+ d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z" />
17
+ </svg>
18
+ </a>
19
+ <a href="mailto:{{ site.email }}">
20
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
21
+ class="w-7 h-7 fill-gray-700 hover:fill-gray-500 dark:fill-gray-200 dark:hover:fill-gray-50">
22
+ <title>email-outline</title>
23
+ <path
24
+ d="M22 6C22 4.9 21.1 4 20 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6M20 6L12 11L4 6H20M20 18H4V8L12 13L20 8V18Z" />
25
+ </svg>
26
+ </a>
27
+ </div>
28
+ <div class="text-sm dark:text-gray-300">Powered by Jekyll &amp; GitHub Pages</div>
29
+ <div id="toggle-color-mode" class="cursor-pointer">
30
+
31
+ </div>
32
+ </footer>
33
+ <script src="/assets/js/index.js"></script>
@@ -0,0 +1,44 @@
1
+ <head>
2
+ <link rel="stylesheet" href="/assets/css/main.css">
3
+ <meta charset="utf-8">
4
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <!-- Begin Jekyll SEO tag v2.8.0 -->
7
+ <title>{% if page.title %}{{ page.title }} – {{ site.title }}
8
+ {% else %}{{ site.title }}{% endif %}</title>
9
+ <meta name="generator" content="Jekyll v4.3.3" />
10
+ <meta property="og:title" content="{{ site.title }}" />
11
+ <meta property="og:locale" content="de_DE" />
12
+ <meta name="description" content="{{ site.description }}" />
13
+ <meta property="og:description" content="{{ site.description }}" />
14
+ <link rel="canonical" href="{{ site.url }}" />
15
+ <meta property="og:url" content="{{ site.url }}" />
16
+ <meta property="og:site_name" content="{{ site.title }}" />
17
+ <meta property="og:type" content="website" />
18
+ <meta name="twitter:card" content="summary" />
19
+ <meta property="twitter:title" content="{{ site.title }}" />
20
+
21
+ <script type="application/ld+json">
22
+ {"@context":"https://schema.org","@type":"WebSite","description":"{{ site.description }}","headline":"{{ site.title }}","name":"{{ site.title }}","url":"{{ site.uri }}"}</script>
23
+ <!-- End Jekyll SEO tag -->
24
+ <link rel="preload" href="/assets/fonts/inter-v18-latin-regular.woff2" as="font" type="font/woff" crossorigin>
25
+
26
+ <link rel="shortcut icon" href="/assets/img/favicon.ico">
27
+ <link rel="icon" href="/assets/img/favicon.ico" sizes="48x48">
28
+ <link rel="android-chrome-192x192.png" sizes="180x180" href="/assets/img/android-chrome-192x192.png">
29
+ <link rel="icon" type="image/png" sizes="32x32" href="/assets/img/favicon-32x32.png">
30
+ <link rel="icon" type="image/png" sizes="16x16" href="/assets/img/favicon-16x16.png">
31
+ <link rel="manifest" href="/assets/img/site.webmanifest">
32
+ <script type="text/javascript">
33
+ let root = document.getElementsByTagName('html')[0];
34
+ if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
35
+ root.classList.add("dark");
36
+ localStorage.theme = 'dark';
37
+ } else {
38
+ root.classList.remove("dark");
39
+ localStorage.theme = 'light';
40
+ }
41
+ </script>
42
+ <link type="application/atom+xml" rel="alternate" href="{{ site.url }}feed.xml"
43
+ title="{{ site.title }}" />
44
+ </head>
@@ -0,0 +1,3 @@
1
+ <div class="flex justify-between mb-5">
2
+ <a href="{{ include.link }}">Zur Übersicht</a>
3
+ </div>
@@ -0,0 +1,27 @@
1
+ <div class="flex justify-center items-center mt-10 md:justify-normal">
2
+ {% if paginator.previous_page %}
3
+ <div class="flex items-center">
4
+ <a href="{{ paginator.previous_page_path }}"
5
+ class="text-sm font-medium text-white rounded bg-blue2-600 dark:bg-emerald-500 focus:ring-2 focus:ring-blue2-500 dark:focus:ring-emerald-600 focus:outline-none hover:bg-blue2-700 dark:hover:bg-emerald-400">
6
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-6 h-6 fill-white hover:fill-white dark:fill-zinc-900 dark:hover:fill-zinc-900">
7
+ <title>Vorherige Seite</title>
8
+ <path d="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z" />
9
+ </svg>
10
+ </a>
11
+ </div>
12
+ {% endif %}
13
+ <div class="px-3">
14
+ Seite {{ paginator.page }} von {{ paginator.total_pages }}
15
+ </div>
16
+ {% if paginator.next_page %}
17
+ <div class="flex items-center">
18
+ <a href="{{ paginator.next_page_path }}"
19
+ class="text-sm font-medium text-white rounded bg-blue2-600 dark:bg-emerald-500 focus:ring-2 focus:ring-blue2-500 dark:focus:ring-emerald-600 focus:outline-none hover:bg-blue2-700 dark:hover:bg-emerald-400">
20
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-6 h-6 fill-white hover:fill-white dark:fill-zinc-900 dark:hover:fill-zinc-900">
21
+ <title>Nächste Seite</title>
22
+ <path d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" />
23
+ </svg>
24
+ </a>
25
+ </div>
26
+ {% endif %}
27
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="flex justify-between mt-10">
2
+ {% if page.previous.url %}
3
+ <a class="basis-1/2" href="{{page.previous.url}}">Vorheriger Eintrag</a>
4
+ {% else %}
5
+ <div class="basis-1/2"></div>
6
+ {% endif %}
7
+ {% if page.next.url %}
8
+ <a class="basis-1/2 text-right" href="{{page.next.url}}">Nächster Eintrag</a>
9
+ {% else %}
10
+ <div class="basis-1/2"></div>
11
+ {% endif %}
12
+ </div>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ {% include head.html %}
4
+
5
+ <body class="text-gray-700 bg-gray-50 dark:bg-zinc-900 dark:text-gray-200">
6
+ <main class="px-5 mx-auto mb-10 w-full md:px-0" aria-label="Content">
7
+ <div class="flex flex-col justify-center mt-10 space-x-0 md:flex-row md:space-x-28">
8
+ {% include aside.html %}
9
+ <div class="md:w-1/3" >
10
+ <div
11
+ class="w-full prose prose-p:my-0 prose-sm md:prose dark:prose-p:text-gray-200 prose-h2:text-blue2-600 dark:prose-h2:text-emerald-500 prose-a:no-underline prose-headings:text-gray-700 prose-h2:mt-0 prose-h2:mb-0 dark:prose-headings:text-gray-200 ">
12
+ {{ content }}
13
+ </div>
14
+ {% include pagination.html %}
15
+ </div>
16
+ </div>
17
+ </main>
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ {% include head.html %}
4
+
5
+ <body class="text-gray-700 bg-gray-50 dark:bg-zinc-900 dark:text-gray-200">
6
+ <main class="px-5 mx-auto mb-10 w-full md:px-0" aria-label="Content">
7
+ <div class="flex flex-col justify-center mt-10 space-x-0 md:flex-row md:space-x-28">
8
+ {% include aside.html %}
9
+ <div class="md:w-1/3">
10
+ <div
11
+ class="prose dark:prose-strong:text-gray-200 prose-sm md:prose prose-a:text-blue2-600 dark:prose-a:dark:text-emerald-500 prose-a:no-underline hover:prose-a:underline prose-headings:text-gray-700 prose-h4:font-medium prose-a:font-semibold dark:prose-headings:text-gray-200 dark:prose-ul:text-gray-200 dark:prose-p:text-gray-200 dark:prose-td:text-gray-200">
12
+ {{ content }}
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </main>
17
+ </body>
18
+
19
+ </html>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ {% include head.html %}
4
+
5
+ <body class="text-gray-700 bg-gray-50 dark:bg-zinc-900 dark:text-gray-200">
6
+ <main class="px-5 mx-auto w-fit md:px-0" aria-label="Content">
7
+ <div class="flex flex-col justify-center mt-10 space-x-0 md:space-x-10">
8
+ <div
9
+ class="prose-a:text-blue2-600 dark:prose-a:dark:text-emerald-500 prose-a:font-semibold prose-a:underline prose-h1:mt-3 prose-headings:text-gray-700 prose-headings:font-bold prose-h4:font-medium prose-p:text-lg prose-sm md:prose prose-a:text-base prose-li:text-lg dark:prose-headings:text-gray-200 dark:prose-ul:text-gray-200 dark:prose-ol:text-gray-200 dark:prose-p:text-gray-200">
10
+ {% include header.html link="/" %}
11
+ <h4>{{ page.date | date: "%d.%m.%Y" }} | {{ page.category }}</h4>
12
+ <h1>{{ page.title }}</h1>
13
+ {{ content }}
14
+ {% include post_pagination.html %}
15
+ {% include footer.html %}
16
+ </div>
17
+ </div>
18
+ </main>
19
+ </body>
20
+ </html>
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ {% include head.html %}
4
+
5
+ <body class="text-gray-700 bg-gray-50 dark:bg-zinc-900 dark:text-gray-200">
6
+ <main class="px-5 mx-auto w-fit md:px-0" aria-label="Content">
7
+ <div class="flex flex-col justify-center mt-10 space-x-0 md:space-x-10">
8
+ <div
9
+ class="prose-a:text-blue2-600 dark:prose-strong:text-gray-200 dark:prose-a:dark:text-emerald-500 prose-h1:mt-3 prose-a:font-semibold prose-a:underline prose-headings:text-gray-700 prose-headings:font-bold prose-h4:font-medium prose-p:text-lg prose-sm md:prose prose-a:text-base prose-li:text-lg dark:prose-headings:text-gray-200 dark:prose-ul:text-gray-200 dark:prose-ol:text-gray-200 dark:prose-p:text-gray-200 dark:prose-table:text-gray-200">
10
+ {% include header.html link="/projects/" %}
11
+ <h4>Start: {{ page.started }} | Status: {{ page.status }}</h4>
12
+ <h1>{{ page.title }}</h1>
13
+ {{ content }}
14
+ {% include footer.html %}
15
+ </div>
16
+ </div>
17
+ </main>
18
+ </body>
19
+ </html>
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ {% include head.html %}
4
+
5
+ <body class="text-gray-700 bg-gray-50 dark:bg-zinc-900 dark:text-gray-200">
6
+ <main class="px-5 mx-auto mb-10 w-full md:px-0" aria-label="Content">
7
+ <div class="flex flex-col justify-center mt-10 space-x-0 md:flex-row md:space-x-28">
8
+ {% include aside.html %}
9
+ <div class="md:w-1/3" >
10
+ <div
11
+ class="w-full prose prose-p:my-0 prose-sm md:prose dark:prose-p:text-gray-200 prose-h2:text-blue2-600 dark:prose-h2:text-emerald-500 prose-a:no-underline prose-headings:text-gray-700 prose-h2:mt-0 prose-h2:mb-2 dark:prose-headings:text-gray-200 ">
12
+ {{ content }}
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </main>
17
+ </body>
18
+
19
+ </html>