Create a theme out of my page
This commit is contained in:
commit
c3fd40c135
22 changed files with 452 additions and 0 deletions
11
config.toml
Normal file
11
config.toml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
base_url = "https://blog.onders.org"
|
||||||
|
title = "blog.onders.org"
|
||||||
|
description = "My humble blog."
|
||||||
|
default_language = "en"
|
||||||
|
compile_sass = true
|
||||||
|
minify_html = true
|
||||||
|
generate_feed = true
|
||||||
|
feed_filename = "rss.xml"
|
||||||
|
|
||||||
|
[markdown]
|
||||||
|
external_links_target_blank = true
|
6
content/2023-something/_index.md
Normal file
6
content/2023-something/_index.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
+++
|
||||||
|
title = "Title of some section"
|
||||||
|
sort_by = "date"
|
||||||
|
+++
|
||||||
|
|
||||||
|
Content of some section.
|
10
content/2023-something/day0/index.md
Normal file
10
content/2023-something/day0/index.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
+++
|
||||||
|
title = "Day 0"
|
||||||
|
date = 2023-02-06
|
||||||
|
+++
|
||||||
|
|
||||||
|
{{ modal(path="pic.jpg") }}
|
||||||
|
|
||||||
|
Some content...
|
||||||
|
|
||||||
|
{{ gallery(images=["pic.jpg", "pic.jpg", "pic.jpg"]) }}
|
BIN
content/2023-something/day0/pic.jpg
Normal file
BIN
content/2023-something/day0/pic.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 715 KiB |
4
content/_index.md
Normal file
4
content/_index.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
+++
|
||||||
|
+++
|
||||||
|
|
||||||
|
The landing page...
|
12
content/credits.md
Normal file
12
content/credits.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
+++
|
||||||
|
title = "Credits"
|
||||||
|
template = "credits.html"
|
||||||
|
+++
|
||||||
|
|
||||||
|
This webiste uses the
|
||||||
|
[onders.org](https://git.onders.org/finga/onders.org_zola_theme.git)
|
||||||
|
Zola theme.
|
||||||
|
|
||||||
|
### Technology
|
||||||
|
* Websitegenerator: [zola](https://www.getzola.org/)
|
||||||
|
* CSS Framework: [bulma](https://www.bulma.io/)
|
147
sass/style.scss
Normal file
147
sass/style.scss
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
@import "../vendor/bulma/bulma.sass";
|
||||||
|
|
||||||
|
html, .navbar, .footer {
|
||||||
|
background-color: $light;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
html, .navbar, .footer, p, strong, .title, li {
|
||||||
|
background-color: $dark;
|
||||||
|
color: $white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle, a:hover {
|
||||||
|
color: $light;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: hsl(217, 71%, 70%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox a.delete {
|
||||||
|
color: $light;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox {
|
||||||
|
opacity: 0;
|
||||||
|
z-index: 900;
|
||||||
|
position: fixed;
|
||||||
|
transition: opacity 0.2s linear;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background-color: rgba($black, 0.5);
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
|
||||||
|
-webkit-backdrop-filter: blur(5px);
|
||||||
|
backdrop-filter: blur(5px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox span.spacer {
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox img {
|
||||||
|
display: inline-block;
|
||||||
|
box-shadow: 0 0 20px $black;
|
||||||
|
max-width: 90%;
|
||||||
|
max-height: 90%;
|
||||||
|
width: auto;
|
||||||
|
vertical-align: middle;
|
||||||
|
@include touch {
|
||||||
|
margin-top: 35px;
|
||||||
|
max-height: 80%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox a {
|
||||||
|
font-size: $size-1;
|
||||||
|
color: $light;
|
||||||
|
z-index: 900;
|
||||||
|
@include touch {
|
||||||
|
height: 100%;
|
||||||
|
width: 50%;
|
||||||
|
font-size: $size-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox a.lightbox-nav-previous {
|
||||||
|
z-index: 900;
|
||||||
|
@include touch {
|
||||||
|
position: absolute;
|
||||||
|
left: 0%;
|
||||||
|
font-size: $size-3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox a.lightbox-nav-next {
|
||||||
|
z-index: 900;
|
||||||
|
@include touch {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox a.close {
|
||||||
|
display: block;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox a.delete {
|
||||||
|
z-index: 999;
|
||||||
|
position: fixed;
|
||||||
|
top: 1%;
|
||||||
|
right: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox:target {
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox-previous {
|
||||||
|
position: absolute;
|
||||||
|
height: 100%;
|
||||||
|
width: 50%;
|
||||||
|
top: 0%;
|
||||||
|
left: 0%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox-next {
|
||||||
|
position: absolute;
|
||||||
|
height: 100%;
|
||||||
|
width: 50%;
|
||||||
|
top: 0%;
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery {
|
||||||
|
gap: $gap / 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail {
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
vertical-align: middle;
|
||||||
|
transition: transform .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thumbnail:hover {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.isso-postbox .form-wrapper .textarea-wrapper .textarea {
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
11
templates/404.html
Normal file
11
templates/404.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<navbar class="navbar level">
|
||||||
|
<div class="level-left">
|
||||||
|
<a href="{{ config.base_url }}">home</a>
|
||||||
|
</div>
|
||||||
|
</navbar>
|
||||||
|
<h1 class="title">404</h1>
|
||||||
|
<h2 class="subtitle">Diese URL führt zu nichts!</h2>
|
||||||
|
{% endblock content %}
|
24
templates/base.html
Normal file
24
templates/base.html
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="description" content="{{ config.description }}">
|
||||||
|
<title>{{ config.title }}</title>
|
||||||
|
<link href="{{ config.base_url | safe}}/style.css" rel="stylesheet">
|
||||||
|
<link rel="icon" href="/favicon.png" type="image/png" sizes="16x16">
|
||||||
|
{% if config.generate_feed %}
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="rss" href="/rss.xml">
|
||||||
|
{% endif %}
|
||||||
|
{% block js %}
|
||||||
|
{% endblock js %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container">
|
||||||
|
{% block content %} {% endblock content %}
|
||||||
|
</div>
|
||||||
|
{% include "footer.html" %}
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
5
templates/comments.html
Normal file
5
templates/comments.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% block js %}
|
||||||
|
<script data-isso-lang="de" data-isso-require-author="true" src="{{ config.base_url }}/comments/js/embed.min.js"></script>
|
||||||
|
{% endblock js %}
|
||||||
|
|
||||||
|
<section id="isso-thread"></section>
|
5
templates/comments.html
Normal file
5
templates/comments.html
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{% block js %}
|
||||||
|
<script data-isso-lang="de" data-isso-require-author="true" src="//away.onders.org/comments/js/embed.min.js"></script>
|
||||||
|
{% endblock js %}
|
||||||
|
|
||||||
|
<section id="isso-thread"></section>
|
21
templates/credits.html
Normal file
21
templates/credits.html
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1 class="title">{{ config.title }}</h1>
|
||||||
|
<h2 class="subtitle">{{ page.title }}</h2>
|
||||||
|
<navbar class="navbar level">
|
||||||
|
<div class="level-left">
|
||||||
|
<a href="{{ config.base_url }}">home</a>
|
||||||
|
</div>
|
||||||
|
</navbar>
|
||||||
|
<div class="content">
|
||||||
|
<div class="block">
|
||||||
|
{{ page.content | safe }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<navbar class="navbar level">
|
||||||
|
<div class="level-left">
|
||||||
|
<a href="{{ config.base_url }}">home</a>
|
||||||
|
</div>
|
||||||
|
</navbar>
|
||||||
|
{% endblock content %}
|
10
templates/footer.html
Normal file
10
templates/footer.html
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<footer class="footer has-text-centered is-size-7">
|
||||||
|
<ul class="has-text-centered">
|
||||||
|
<li>
|
||||||
|
<a href="/credits">credits</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/rss.xml">RSS feed</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</footer>
|
12
templates/header.html
Normal file
12
templates/header.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<header class="header">
|
||||||
|
<h1 class="title">{{ config.title }}</h1>
|
||||||
|
{% if section.title %}
|
||||||
|
<h2 class="subtitle">{{ section.title }}</h2>
|
||||||
|
{% endif %}
|
||||||
|
{% if page.title %}
|
||||||
|
<h3 class="subtitle">{{ page.title }}</h3>
|
||||||
|
{% endif %}
|
||||||
|
<navbar class="navbar">
|
||||||
|
<a href="{{ config.base_url }}">home</a>
|
||||||
|
</navbar>
|
||||||
|
</header>
|
18
templates/index.html
Normal file
18
templates/index.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1 class="title">{{ config.title }}</h1>
|
||||||
|
<div class="content">
|
||||||
|
<div class="block">
|
||||||
|
{{ section.content | safe }}
|
||||||
|
</div>
|
||||||
|
<div class="block">
|
||||||
|
<ul>
|
||||||
|
{% for subsection in section.subsections | reverse %}
|
||||||
|
{% set subsection = get_section(path=subsection) %}
|
||||||
|
<li><a href="{{ subsection.path | safe }}">{{ subsection.title | safe }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
19
templates/navbar.html
Normal file
19
templates/navbar.html
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{% set section = get_section(path=page.ancestors | last) %}
|
||||||
|
<navbar class="navbar level">
|
||||||
|
<div class="level-left">
|
||||||
|
<ul>
|
||||||
|
<li><a href="{{ config.base_url }}">home</a></li>
|
||||||
|
{% if page.higher %}
|
||||||
|
<li><a href="{{ page.higher.path }}">{{ page.higher.title }}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="level-right has-text-right">
|
||||||
|
<ul>
|
||||||
|
<a href="{{ section.path }}">Reiseindex</a>
|
||||||
|
{% if page.lower %}
|
||||||
|
<li><a href="{{ page.lower.path }}">{{ page.lower.title }}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</navbar>
|
18
templates/page.html
Normal file
18
templates/page.html
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% set section = get_section(path=page.ancestors | last) %}
|
||||||
|
<h1 class="title">{{ config.title }}</h1>
|
||||||
|
<h2 class="subtitle">{{ section.title }}</h2>
|
||||||
|
{% include "navbar.html" %}
|
||||||
|
<h3 class="subtitle">{{ page.title }} ({{ page.date }})</h3>
|
||||||
|
<div class="content">
|
||||||
|
<div class="block">
|
||||||
|
{{ page.content | safe }}
|
||||||
|
</div>
|
||||||
|
<div class="block">
|
||||||
|
{% include "comments.html" %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% include "navbar.html" %}
|
||||||
|
{% endblock content %}
|
28
templates/section.html
Normal file
28
templates/section.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1 class="title">{{ config.title }}</h1>
|
||||||
|
<h2 class="subtitle">{{ section.title }}</h2>
|
||||||
|
<navbar class="navbar level">
|
||||||
|
<div class="level-left">
|
||||||
|
<a href="{{ config.base_url }}">home</a>
|
||||||
|
</div>
|
||||||
|
</navbar>
|
||||||
|
<div class="content">
|
||||||
|
<div class="block">
|
||||||
|
{{ section.content | safe }}
|
||||||
|
</div>
|
||||||
|
<div class="block">
|
||||||
|
<ul>
|
||||||
|
{% for page in section.pages | reverse %}
|
||||||
|
<li><a href="{{ page.permalink | safe }}">{{ page.date | safe }} - {{ page.title | safe }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<navbar class="navbar level">
|
||||||
|
<div class="level-left">
|
||||||
|
<a href="{{ config.base_url }}">home</a>
|
||||||
|
</div>
|
||||||
|
</navbar>
|
||||||
|
{% endblock content %}
|
67
templates/shortcodes/gallery.html
Normal file
67
templates/shortcodes/gallery.html
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
<div class="gallery is-flex is-flex-wrap-wrap">
|
||||||
|
{% for path in images %}
|
||||||
|
{% if section %}
|
||||||
|
{% set full_path = section.path ~ path %}
|
||||||
|
{% endif %}
|
||||||
|
{% if page %}
|
||||||
|
{% set full_path = page.path ~ path %}
|
||||||
|
{% endif %}
|
||||||
|
{% set thumb = resize_image(path=full_path, width=120, height=120) %}
|
||||||
|
|
||||||
|
<div class="gallery-item">
|
||||||
|
<a href="#{{ path }}">
|
||||||
|
<img src="{{ thumb.url }}" class="thumbnail" />
|
||||||
|
</a>
|
||||||
|
<div class="lightbox has-text-centered" id="{{ path }}">
|
||||||
|
{% if images | length > 1 %}
|
||||||
|
<span class="spacer"></span>
|
||||||
|
{% if loop.first %}
|
||||||
|
<a href="#{{ images | nth(n=images | length - 1) }}" class="lightbox-nav-previous">
|
||||||
|
⟳
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="#{{ images | nth(n=loop.index0 - 1) }}" class="lightbox-nav-previous">
|
||||||
|
<
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
<img src="{{ path }}" />
|
||||||
|
<a class="delete is-large" href="#"></a>
|
||||||
|
{% if loop.last %}
|
||||||
|
<a href="#{{ images | nth(n=0) }}" class="lightbox-nav-next">
|
||||||
|
⟲
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="#{{ images | nth(n=loop.index) }}" class="lightbox-nav-next">
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<a href="#" class="close">
|
||||||
|
<span class="spacer"></span>
|
||||||
|
<img src="{{ path }}" />
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if images | length > 1 %}
|
||||||
|
{% if loop.first %}
|
||||||
|
<a href="#{{ images | nth(n=images | length - 1) }}" class="is-desktop">
|
||||||
|
<span class="lightbox-previous"></span>
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="#{{ images | nth(n=loop.index0 - 1) }}" class="is-desktop">
|
||||||
|
<span class="lightbox-previous"></span>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if loop.last %}
|
||||||
|
<a href="#{{ images | nth(n=0) }}" class="is-desktop">
|
||||||
|
<span class="lightbox-next"></span>
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="#{{ images | nth(n=loop.index) }}" class="is-desktop">
|
||||||
|
<span class="lightbox-next"></span>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
19
templates/shortcodes/modal.html
Normal file
19
templates/shortcodes/modal.html
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{% if section %}
|
||||||
|
{% set full_path = section.path ~ path %}
|
||||||
|
{% endif %}
|
||||||
|
{% if page %}
|
||||||
|
{% set full_path = page.path ~ path %}
|
||||||
|
{% endif %}
|
||||||
|
{% set thumb = resize_image(path=full_path, width=400, height=400, op="fit") %}
|
||||||
|
|
||||||
|
<div class="item">
|
||||||
|
<a href="#{{ path }}">
|
||||||
|
<img src="{{ thumb.url }}"/>
|
||||||
|
</a>
|
||||||
|
<div class="lightbox image has-text-centered" id="{{ path }}">
|
||||||
|
<a href="#" class="close">
|
||||||
|
<span class="spacer"></span>
|
||||||
|
<img src="{{ path }}" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
4
templates/shortcodes/video.html
Normal file
4
templates/shortcodes/video.html
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<video width="512" height="288" controls>
|
||||||
|
<source src="{{ path }}" type="video/webm">
|
||||||
|
Your browser does not support the video tag.
|
||||||
|
</video>
|
1
templates/shortcodes/youtube.html
Normal file
1
templates/shortcodes/youtube.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<iframe src="{{ url }}" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
Loading…
Reference in a new issue