kaschber 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: 4035146d578470fc8fd8cfd7c4be2412178be2841bc2952cc298429895a66ed3
4
+ data.tar.gz: 15a28564cb6997bd7b0f2dc5c8f80424b28e97e1e8f2d524403d1f5937fab0d8
5
+ SHA512:
6
+ metadata.gz: e2e516cf2e93b8229686bc7ebeb6cca663eba6af72bf012a83238a6df786014a5fb35187b431067447fd97adf8fbe93f95ba8c32318760b34c58a96514d28df4
7
+ data.tar.gz: 39b6df85462a506819ae9b866da748793885d5c40d1b60d7c10c691b6a0c6b7a14a63b7336b75e45613d01051187bc9af70fb3a2aca73be368682af4f6a6b7a6
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Agraphie
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,102 @@
1
+ # Kaschber
2
+
3
+ Kaschber is a Jekyll port for Ghost's default theme Casper [https://github.com/TryGhost/Casper](https://github.com/TryGhost/Casper). It's unopinionated and tries to stick as closely as possible to the Casper stylings and layout. It only comes with three pre-defined plugins: jekyll-feed, jekyll-paginate-v2 and jekyll-seo.
4
+
5
+ The overall goal is to be a simple default theme like minima, looking closely to Casper and trying to be as lean and flexible as possible.
6
+
7
+ For a demo of Ghost see [https://demo.ghost.io/](https://demo.ghost.io/).
8
+
9
+ # Features
10
+ - (Auto) dark mode
11
+ - Full author pages & information via Jekyll collections
12
+ - Auto generated tag pages plus custimisation via Jekyll collections
13
+ - Pagination via jekyll-paginate-v2
14
+ - Atom Feeds by [Jekyll-feed](https://github.com/jekyll/jekyll-feed)
15
+
16
+ # Installation
17
+ Add this line to your Jekyll site's Gemfile:
18
+ ```
19
+ gem "kaschber"
20
+ ```
21
+
22
+ And then execute:
23
+ ```bash
24
+ $ bundle
25
+ ```
26
+
27
+ # Usage
28
+ Change the theme in your config file to Kaschber
29
+ ```
30
+ theme: kaschber
31
+ ```
32
+
33
+ Then change your index.html or index.md to look like this
34
+ ```
35
+ ---
36
+ layout: home
37
+ current: home
38
+ class: 'home-template'
39
+ ---
40
+ ```
41
+
42
+ If you have a custom index.html, you will have to copy the index.html from the Git repository and add your changes manually.
43
+
44
+ ## Customisation
45
+ You can specifiy these customisation options in your `_config.yml`
46
+
47
+ | Config | Default | Options |
48
+ |-------------------------|-------------------|-----------------------------------|
49
+ | title_font | Modern sans-serif | Modern sans-serif, Elegant serif |
50
+ | body_font | Modern sans-serif | Modern sans-serif, Elegant serif |
51
+ | header_style | Center aligned | Center aligned, Left, aligned, Hidden |
52
+ | show_logo_in_navigation | false | True, False |
53
+ | feed_layout | Classic | Classic, Grid, List |
54
+ | color_scheme | Auto | Light, Dark, Auto |
55
+ | post_image_style | Wide | Wide, Full, Small, Hidden |
56
+
57
+ Kaschber also features several points to inject your custom code into the template. You can create
58
+ - `_includes/custom-head.html` to include custom css or any other tags which get rendered in the head section
59
+ - `_includes/custom-js.html` to include any additional Javascript at the bottom of your page
60
+ - `_includes/custom-post-content.html` to include any custom post-specific content which gets inserted in every post. E.g. a table of content tag
61
+
62
+ ## Authors
63
+ To include author information, just create a folder called `_authors` and create your author information via markdown or html files. E.g.
64
+ ```
65
+ ---
66
+ username: Ghost
67
+ name: Casper Ghost
68
+ website: https://github.com/TryGhost/Casper/
69
+ bio: The professional publishing platform
70
+ picture: assets/images/ghost.png
71
+ facebook_url: ghost
72
+ twitter_url: tryghost
73
+ cover: False
74
+ ---
75
+ ```
76
+
77
+ ## Tags
78
+ To create tags specifically, create a folder `_tags` and insert your tags there as markdown or html file. E.g.
79
+ ```
80
+ name: speeches
81
+ description: Some of the greatest words ever spoken.
82
+ cover: assets/images/speeches.jpg
83
+ ```
84
+
85
+ # Contribute
86
+ If you would like to contribute, please keep the files as closely as possible to the original Ghost handlebar files. This will make maintenance easier. This is also the reason why the files haven't been really broken down into smaller parts.
87
+
88
+ ## Build
89
+ To build the files locally, you have to have npm and gulp installed.
90
+ ```
91
+ $ gulp build
92
+ ```
93
+
94
+ To test your changes locally execute
95
+ ```bash
96
+ $ gem build
97
+ $ gem install kaschber-<current-version-in-gemspec>
98
+ ```
99
+
100
+
101
+ # Acknowledgements
102
+ This theme was heavily inspired by [Jasper2](https://github.com/jekyllt/jasper2).
data/_config.yml ADDED
@@ -0,0 +1,44 @@
1
+ feed_layout: "Classic"
2
+ color_scheme: "Auto"
3
+ language: 'en-uk'
4
+
5
+ # gems and other configs
6
+ plugins:
7
+ - jekyll-feed
8
+ - jekyll-seo-tag
9
+ - jekyll-paginate-v2
10
+
11
+ feed:
12
+ path: feed.xml
13
+
14
+ collections:
15
+ authors:
16
+ output: true
17
+ tags:
18
+ output: true
19
+
20
+
21
+ defaults:
22
+ - scope:
23
+ path: ""
24
+ type: "authors"
25
+ values:
26
+ layout: author
27
+ current: author
28
+ cover: false
29
+ class: 'author-template'
30
+ label: Author
31
+ - scope:
32
+ path: ""
33
+ type: "tags"
34
+ values:
35
+ layout: tag
36
+ current: tag
37
+ cover: false
38
+ class: 'tag-template'
39
+ label: Tag
40
+
41
+ tag_page_layout: tag
42
+ tag_page_dir: tags
43
+ tag_page_data:
44
+ class: 'tag-template'
@@ -0,0 +1,6 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons:
3
+
4
+ 1. Head over to https://realfavicongenerator.net/ to add your own favicons.
5
+ 2. Customize default _includes/custom-head.html in your source directory and insert the given code snippet.
6
+ {% endcomment %}
@@ -0,0 +1,3 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom javascript which gets loaded, in principle.
3
+ {% endcomment %}
@@ -0,0 +1,3 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom post content which gets rendered beofre the actual content of a post.
3
+ {% endcomment %}
@@ -0,0 +1,16 @@
1
+ <!-- dynamically fixing the title for tag/author pages -->
2
+ {% if page.url %}
3
+ {% if page.url contains "tags/" %}
4
+ {% assign title = page.url | remove: 'tag' | remove: '/' | url_decode | replace: '-', ' ' %}
5
+ {% elsif page.url contains "authors/" %}
6
+ {% assign username = page.url | remove: 'author' | remove: '/' | replace: '-', ' ' | remove: ' ' %}
7
+ {% for author in site.authors %}
8
+ {% if author.username == username %}
9
+ {% assign title = author.name %}
10
+ {% endif %}
11
+ {% endfor %}
12
+ {% endif %}
13
+ {% endif %}
14
+ {% if title %}
15
+ {% assign title = title | append: ' - ' | append: site.title %}
16
+ {% endif %}
@@ -0,0 +1,4 @@
1
+ {% comment %}
2
+ Placeholder to allow defining custom footer navigation. For example, you could put your social links here.
3
+
4
+ {% endcomment %}
@@ -0,0 +1,12 @@
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
+
7
+ {%- feed_meta -%}
8
+
9
+
10
+ {%- include custom-head.html -%}
11
+
12
+ </head>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M3.513 18.998C4.749 15.504 8.082 13 12 13s7.251 2.504 8.487 5.998C18.47 21.442 15.417 23 12 23s-6.47-1.558-8.487-4.002zM12 12c2.21 0 4-2.79 4-5s-1.79-4-4-4-4 1.79-4 4 1.79 5 4 5z" fill="#FFF"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z"/></svg>
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="17" viewBox="0 0 16 17" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M4.49365 4.58752C3.53115 6.03752 2.74365 7.70002 2.74365 9.25002C2.74365 10.6424 3.29678 11.9778 4.28134 12.9623C5.26591 13.9469 6.60127 14.5 7.99365 14.5C9.38604 14.5 10.7214 13.9469 11.706 12.9623C12.6905 11.9778 13.2437 10.6424 13.2437 9.25002C13.2437 6.00002 10.9937 3.50002 9.16865 1.68127L6.99365 6.25002L4.49365 4.58752Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg viewBox="0 0 16 16" version="1.1" class="icon" fill="currentColor">
2
+ <path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
3
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
2
+ y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve">
3
+ <path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946
4
+ s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634
5
+ c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" />
6
+ <path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0
7
+ C22.32,8.481,24.301,9.057,26.013,10.047z">
8
+ <animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20"
9
+ dur="0.5s" repeatCount="indefinite" />
10
+ </path>
11
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M16.25 6.875H3.75C3.40482 6.875 3.125 7.15482 3.125 7.5V16.25C3.125 16.5952 3.40482 16.875 3.75 16.875H16.25C16.5952 16.875 16.875 16.5952 16.875 16.25V7.5C16.875 7.15482 16.5952 6.875 16.25 6.875Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ <path d="M7.1875 6.875V4.0625C7.1875 3.31658 7.48382 2.60121 8.01126 2.07376C8.53871 1.54632 9.25408 1.25 10 1.25C10.7459 1.25 11.4613 1.54632 11.9887 2.07376C12.5162 2.60121 12.8125 3.31658 12.8125 4.0625V6.875" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
4
+ <path d="M10 13.125C10.6904 13.125 11.25 12.5654 11.25 11.875C11.25 11.1846 10.6904 10.625 10 10.625C9.30964 10.625 8.75 11.1846 8.75 11.875C8.75 12.5654 9.30964 13.125 10 13.125Z" fill="currentColor"></path>
5
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="icon"><circle cx="6.18" cy="17.82" r="2.18" fill="currentColor"/><path fill="currentColor" d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z"/></svg>
@@ -0,0 +1,58 @@
1
+ {% assign words_per_minute = site.words_per_minute | default: 200 %}
2
+ {% assign post = include.post %}
3
+
4
+ <article class="post-card {{post_class}}{% if site.feed_layout == "Classic" %} {% if page.current == "home" %}
5
+ {% if site.posts.first == post %} post-card-large{% elsif site.posts[1] == post or site.posts[2] == post %} dynamic{% endif %}{% endif %}{% endif %}
6
+ {% if site.feed_layout == "Grid" %} keep-ratio{% endif %}{% if site.feed_layout == "List" %}{% if post.current == "home, paged" %} post-card-large{% endif %}{% endif %}">
7
+
8
+ {% if post.cover %}
9
+ <a class="post-card-image-link" href="{{ site.baseurl }}{{ post.url | remove_first: '/' }}">
10
+
11
+ <img class="post-card-image"
12
+ src="{{ site.baseurl }}{{ post.cover }}"
13
+ alt="{% if post.cover_alt %}{{post.cover_alt}}{% else %}{{post.title}}{% endif %}"
14
+ loading="lazy"
15
+ />
16
+ </a>
17
+ {% endif %}
18
+
19
+ <div class="post-card-content">
20
+
21
+ <a class="post-card-content-link" href="{{ site.baseurl }}{{ post.url | remove_first: '/' }}">
22
+
23
+ <header class="post-card-header">
24
+ <div class="post-card-tags">
25
+ {% if post.tags.size > 0 %}
26
+ <span class="post-card-primary-tag">{{ post.tags | first | capitalize }}</span>
27
+ {% endif %}
28
+ {% if post.featured %}
29
+ <span class="post-card-featured">{% include icons/fire.html %} Featured</span>
30
+ {% endif %}
31
+ </div>
32
+ <h2 class="post-card-title">
33
+ {{post.title}}
34
+ </h2>
35
+ </header>
36
+ {% if post.custom_excerpt %}
37
+ <div class="post-card-excerpt">{{post.custom_excerpt}}</div>
38
+ {% else %}
39
+ <div class="post-card-excerpt">{{ post.excerpt | strip_html }}</div>
40
+ {% endif %}
41
+ </a>
42
+
43
+ <footer class="post-card-meta">
44
+ <time class="post-card-meta-date" datetime="{{ post.date | date:'%e %B %Y' }}">{{ post.date | date:'%e %B %Y' }}</time>
45
+ {% if post.reading_time %}
46
+ <span class="post-card-meta-length">{{post.reading_time}}</span>
47
+ {% endif %}
48
+ {% assign words = post.content | strip_html | number_of_words %}
49
+ {% if words <= words_per_minute %}
50
+ <span class="post-card-meta-length">1 min read</span>
51
+ {% else %}
52
+ <span class="post-card-meta-length">{{ words | divided_by:words_per_minute }} min read</span>
53
+ {% endif %}
54
+ </footer>
55
+
56
+ </div>
57
+
58
+ </article>
@@ -0,0 +1,65 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <main id="site-main" class="site-main outer">
6
+ <div class="post-feed inner">
7
+
8
+ <section class="post-card post-card-large">
9
+ {%if page.feature_image %}
10
+ <div class="post-card-image-link">
11
+ <img class="post-card-image"
12
+ src="{{ site.baseurl }}{{ page.feature_image }}" alt="{{ page.name }}"
13
+ />
14
+ </div>
15
+ {% endif %}
16
+
17
+ <div class="post-card-content">
18
+ <div class="post-card-content-link">
19
+
20
+ {%if page.picture %}
21
+ <img class="author-profile-pic" src="{{ site.baseurl }}{{ page.picture }}" alt="{{page.name}}" />
22
+ {% endif %}
23
+
24
+ <header class="post-card-header">
25
+ <h2 class="post-card-title">{{page.name}}</h2>
26
+ </header>
27
+
28
+ {%if page.bio %}
29
+ <div class="post-card-excerpt">{{page.bio}}</div>
30
+ {% endif %}
31
+
32
+ <footer class="author-profile-footer">
33
+ {%if page.location %}
34
+ <div class="author-profile-location">{{page.location}}</div>
35
+ {% endif %}
36
+ <div class="author-profile-meta">
37
+ {%if page.website %}
38
+ <a class="author-profile-social-link" href="{{page.website}}" target="_blank" rel="noopener">{{page.website}}</a>
39
+ {% endif %}
40
+ {%if page.twitter_url %}
41
+ <a class="author-profile-social-link" href="{{page.twitter_url}}" target="_blank" rel="noopener">{% include icons/twitter.html %}</a>
42
+ {% endif %}
43
+ {%if page.facebook_url %}
44
+ <a class="author-profile-social-link" href="{{page.facebook_url}}" target="_blank" rel="noopener">{% include icons/facebook.html %}</a>
45
+ {% endif %}
46
+
47
+ {% if page.location %}
48
+ <div class="author-location">{{ page.location }} <span class="bull">&bull;</span></div>
49
+ {% endif %}
50
+ </div>
51
+ </footer>
52
+
53
+ </div>
54
+ </div>
55
+
56
+ </section>
57
+
58
+ {% assign filtered_posts = site.posts | where: 'author', page.username %}
59
+ {% for post in filtered_posts %}
60
+ {% include post-card.html post=post %}
61
+ {% endfor %}
62
+
63
+ </div>
64
+ </main>
65
+
@@ -0,0 +1,118 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ site.locale }}"{% if site.color_scheme == "Dark" %} class="dark-mode"{% elsif site.color_scheme == "Auto" %} class="auto-color"{% endif %}>
3
+ <head>
4
+
5
+ {% include dynamic_title.html %}
6
+ <title>{% if title %}{{ title }}{% elsif page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
7
+
8
+ <meta charset="utf-8" />
9
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
10
+ <meta name="HandheldFriendly" content="True" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12
+
13
+ <link rel="stylesheet" type="text/css" href="{{ "/assets/built/global.css" | relative_url }}">
14
+ <link rel="stylesheet" type="text/css" href="{{ "/assets/built/screen.css" | relative_url }}">
15
+
16
+ {% include head.html %}
17
+
18
+ </head>
19
+ <body class="{% if paginator.page > 1 %}paged archive-template{% elsif page.class %}{{ page.class }}{% else %}home-template{% endif %}
20
+ {% if site.title_font == "Elegant serif" %} has-serif-title{% endif %}{% if site.body_font == "Modern sans-serif" %} has-sans-body{% endif %}
21
+ {% if site.cover or page.cover %} has-cover {% endif %}{% if page.current == "home" %}{% unless site.show_logo_in_navigation %} no-logo{% endunless %}{% endif %}">
22
+ <div class="viewport">
23
+ <header id="gh-head" class="gh-head outer">
24
+ <nav class="gh-head-inner inner">
25
+ <div class="gh-head-brand">
26
+ <a class="gh-head-logo{% unless site.logo %} no-image{% endunless %}" href="{{ site.url }}{{ site.baseurl }}">
27
+ {% if site.logo %}
28
+ <img src="{{ site.baseurl }}{{ site.logo }}" alt="{{ site.title }}" />
29
+ {% else %}
30
+ {{ site.title }}
31
+ {% endif %}
32
+ </a>
33
+ <div class="gh-head-brand-wrapper">
34
+ <a class="gh-burger" role="button">
35
+ <div class="gh-burger-box">
36
+ <div class="gh-burger-inner"></div>
37
+ </div>
38
+ </a>
39
+ </div>
40
+ </div>
41
+ <div class="gh-head-menu">
42
+ <ul class="nav" role="menu">
43
+ <li class="nav-home" role="menuitem"><a href="{{site.baseurl}}">Home</a></li>
44
+ <li class="nav-about" role="menuitem"><a href="{{site.baseurl}}about/">About</a></li>
45
+ <li class="nav-try-ghost" role="menuitem"><a href="{{site.baseurl}}impressum/">Impressum/Datenschutz</a></li>
46
+ </ul>
47
+ </div>
48
+ <div class="gh-head-actions">
49
+ <div class="gh-social">
50
+ {% if site.facebook %}<a href="https://facebook.com/{{ site.facebook }}" target="_blank" rel="noopener" class="gh-social-link gh-social-facebook">Facebook</a>{% endif %}
51
+ {% if site.twitter %}<a href="https://twitter.com/{{ site.twitter }}" target="_blank" rel="noopener" class="gh-social-link gh-social-twitter">Twitter</a>{% endif %}
52
+ {% if site.github %}<a href="https://github.com/{{ site.github }}" target="_blank" rel="noopener" class="gh-social-link gh-social-github">{% include icons/github.html %}</a>{% endif %}
53
+ {% if site.rss %}<a href="{{ site.baseurl }}{% if site.feed.path %}{{site.feed.path}}{% else %}feed.xml{% endif %}" target="_blank" rel="noopener" class="gh-social-link gh-social-rss">{% include icons/rss.html %}</a>{% endif %}
54
+ </div>
55
+ <!-- The big email subscribe modal content -->
56
+ {% if site.subscribers %}
57
+ <div id="subscribe" class="subscribe-overlay">
58
+ <a class="subscribe-overlay-close gh-head-button" href="#"></a>
59
+ <div class="subscribe-overlay-content">
60
+ {% if site.logo %}
61
+ <img class="subscribe-overlay-logo" src="{{ site.baseurl }}{{ site.logo }}" alt="{{ site.title }}" />
62
+ {% endif %}
63
+ <h1 class="subscribe-overlay-title">Subscribe to {{ site.title }}</h1>
64
+ <p class="subscribe-overlay-description">Stay up to date! Get all the latest &amp; greatest posts delivered straight to your inbox</p>
65
+ {% include subscribe-form.html placeholder="youremail@example.com" %}
66
+ </div>
67
+ </div>
68
+ {% endif %}
69
+ </div>
70
+ </nav>
71
+ </header>
72
+
73
+
74
+ <div class="site-content">
75
+ {{ content }}
76
+ <!-- Previous/next page links - displayed on every page -->
77
+
78
+ </div>
79
+
80
+
81
+ <footer class="site-footer outer">
82
+ <div class="inner">
83
+ <section class="copyright"><a href="{{ site.url }}">{{ site.title }}</a> &copy; {{ site.time | date: '%Y' }}</section>
84
+ <nav class="site-footer-nav">
85
+ {% include footer-nav.html %}
86
+ </nav>
87
+ <div><a href="https://ghost.org/" target="_blank" rel="noopener">Powered by Jekyll & Kaschber</a></div>
88
+ </div>
89
+ </footer>
90
+ </div>
91
+ </body>
92
+
93
+
94
+
95
+ <script
96
+ src="https://code.jquery.com/jquery-3.5.1.min.js"
97
+ integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
98
+ crossorigin="anonymous">
99
+ </script>
100
+
101
+ <script src="{{ "assets/built/kaschber.js" | relative_url }}"></script>
102
+
103
+
104
+ <script>
105
+ $(document).ready(function () {
106
+ // Mobile Menu Trigger
107
+ $('.gh-burger').click(function () {
108
+ $('body').toggleClass('gh-head-open');
109
+ });
110
+ // FitVids - Makes video embeds responsive
111
+ $(".gh-content").fitVids();
112
+ });
113
+ </script>
114
+
115
+ {% include custom-js.html %}
116
+
117
+ </body>
118
+ </html>
@@ -0,0 +1,45 @@
1
+ ---
2
+ layout: default
3
+ current: home
4
+ class: 'home-template'
5
+ ---
6
+
7
+ <div class="site-header-content outer{% if site.header_style == "Left aligned" %} left-aligned{% endif %}{% unless site.cover %}{% if site.header_style == "Hidden" %} no-content{% endif %}{% endunless %}">
8
+
9
+ {% if site.cover or page.cover %}
10
+ <img class="site-header-cover"
11
+ src="{{ site.baseurl }}{% if page.cover %}{{ page.cover }}{% elsif site.cover %}{{ site.cover }}{% endif %}"
12
+ style="{% unless page.cover or site.cover %} no-cover {% endunless %}"
13
+ alt="{{ site.title }}"
14
+ />
15
+ {% endif %}
16
+
17
+ {% if site.header_style != "Hidden" %}
18
+ <div class="site-header-inner inner">
19
+ {% unless site.show_logo_in_navigation %}
20
+ {% if site.logo %}
21
+ <img class="site-logo" src="{{ site.logo }}" alt="{{ site.title }}">
22
+ {% else %}
23
+ <h1 class="site-title">{{ site.title }}</h1>
24
+ {% endif %}
25
+ {% endunless %}
26
+ {% if site.description %}
27
+ <p class="site-description">{{ site.description }}</p>
28
+ {% endif %}
29
+ </div>
30
+ {% endif %}
31
+
32
+ </div>
33
+
34
+ <main id="site-main" class="site-main outer">
35
+ <div class="inner posts">
36
+
37
+ <div class="post-feed">
38
+ {% assign posts = paginator.posts | default: site.posts %}
39
+ {% for post in posts %}
40
+ {% include post-card.html post=post%}
41
+ {% endfor %}
42
+ </div>
43
+
44
+ </div>
45
+ </main>
@@ -0,0 +1,35 @@
1
+ ---
2
+ layout: default
3
+ current: page
4
+ class: page-template
5
+ disqus: false
6
+ ---
7
+
8
+ <main id="site-main" class="site-main">
9
+ <article class="article {{post_class}}">
10
+
11
+ <header class="article-header gh-canvas">
12
+
13
+ <h1 class="article-title">{{page.title}}</h1>
14
+
15
+ {% if page.cover %}
16
+ <figure class="article-image">
17
+ <img
18
+ src="{{ site.baseurl }}{{ page.cover }}"
19
+ alt="{% if page.cover_alt %}{{page.cover_alt}}{% else %}{{page.title}}{% endif %}"
20
+ />
21
+ {% if page.cover_caption %}
22
+ <figcaption>{{page.cover_caption}}</figcaption>
23
+ {% endif %}
24
+ </figure>
25
+ {% endif %}
26
+
27
+ </header>
28
+
29
+ <section class="gh-content gh-canvas">
30
+ {{content}}
31
+ </section>
32
+
33
+ </article>
34
+ </main>
35
+