Compare commits
No commits in common. "master" and "about-page" have entirely different histories.
master
...
about-page
21 changed files with 310 additions and 9584 deletions
|
@ -6,7 +6,7 @@ pages:
|
||||||
interruptible: true
|
interruptible: true
|
||||||
timeout: 5m
|
timeout: 5m
|
||||||
rules:
|
rules:
|
||||||
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH"
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
|
||||||
when: always
|
when: always
|
||||||
before_script:
|
before_script:
|
||||||
- pacman --needed --noconfirm --sync --refresh --sysupgrade zola
|
- pacman --needed --noconfirm --sync --refresh --sysupgrade zola
|
||||||
|
|
10
config.toml
10
config.toml
|
@ -1,14 +1,12 @@
|
||||||
base_url = "https://www.jotoho.de/"
|
base_url = "https://www.jotoho.de/"
|
||||||
default_language = "en"
|
default_language = "en"
|
||||||
minify_html = true
|
minify_html = true
|
||||||
generate_feeds = true
|
generate_feed = true
|
||||||
feed_filenames = ["atom.xml", "rss.xml"]
|
|
||||||
author = "Jonas Tobias Hopusch"
|
|
||||||
|
|
||||||
[markdown]
|
[markdown]
|
||||||
highlight_code = true
|
highlight_code = true
|
||||||
render_emoji = true
|
render_emoji = true
|
||||||
external_links_no_referrer = true
|
external_links_no_referrer = true
|
||||||
smart_punctuation = true
|
|
||||||
lazy_async_image = true
|
[extra]
|
||||||
bottom_footnotes = true
|
# Put all your custom variables here
|
||||||
|
|
|
@ -1,44 +1,19 @@
|
||||||
+++
|
+++
|
||||||
title = "About me"
|
title = "About me / Über mich"
|
||||||
description = "Here's where I introduce myself."
|
description = "Here's where I introduce myself. Hier stelle ich mich selbst vor."
|
||||||
date = "2022-02-06 00:00:00+01:00"
|
date = "2022-02-06 00:00:00+01:00"
|
||||||
updated = "2023-03-01T23:10:47+01:00"
|
|
||||||
draft = true
|
draft = true
|
||||||
+++
|
+++
|
||||||
|
|
||||||
Hello visitor,
|
### Über mich
|
||||||
|
|
||||||
I am Jonas (Tobias) Hopusch, usually known online as by my username "jotoho".
|
Hallo,
|
||||||
|
|
||||||
I am male, German, currently <span id="age-display">_javascript failed_</span> years old
|
mein Name ist Jonas Hopusch, im Internet normalerweise bekannt als "jotoho".
|
||||||
and a student of computer science at the [South Westphalia University of Applied
|
Ich bin <span class="age-display">x</span> Jahre alt.
|
||||||
Sciences](https://fh-swf.de) working towards earning a Bachelor degree.
|
|
||||||
|
|
||||||
### Why I chose to work with computers
|
-----
|
||||||
|
|
||||||
### My Hobbies
|
### About me
|
||||||
|
|
||||||
In my free time I usually watch videos on the Internet,
|
<script style="display: none;" src="/scripts/calcage.js" async></script>
|
||||||
read fiction stories online or on my eReader,
|
|
||||||
play some videogames or
|
|
||||||
learn about topics that interest me.
|
|
||||||
|
|
||||||
When I don't need my ears for something else, I usually
|
|
||||||
have music playing or listen to something else.
|
|
||||||
|
|
||||||
I like to listen to multiple kinds of music
|
|
||||||
that are very different to each other, so I have
|
|
||||||
trouble concretely defining the genres I listen to.
|
|
||||||
|
|
||||||
### My Desktop-PC
|
|
||||||
|
|
||||||
| PC Part | Installed Component |
|
|
||||||
| :------------ | :--------------------------------------------------------------------------------------------------------------------------------: |
|
|
||||||
| CPU | [AMD Ryzen 7 5800X (8 cores, 16 threads)](https://www.amd.com/en/products/cpu/amd-ryzen-7-5800x) |
|
|
||||||
| Motherboard | [ASRock X570M Pro4](https://www.asrock.com/MB/AMD/X570M%20Pro4/) |
|
|
||||||
| Graphics Card | [ASUS Dual Radeon RX 6750XT 12GB OC Edition](https://www.asus.com/motherboards-components/graphics-cards/dual/dual-rx6750xt-o12g/) |
|
|
||||||
| Memory | 20GiB (2\*8G+4G) DDR4 2133MHz |
|
|
||||||
| Monitors | 2 1920x1080 32" 60Hz screens |
|
|
||||||
| Storage | 1TB SATA-SSD + 1TB SATA-HDD |
|
|
||||||
|
|
||||||
<script style="display: none;" src="/scripts/calcage.js" defer></script>
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
title = "My online profiles and different communication channels"
|
title = "My online profiles and different communication channels"
|
||||||
description = "On this page I list a selection of different online accounts owned by me and communication services that can be used to talk with me."
|
description = "On this page I list a selection of different online accounts owned by me and communication services that can be used to talk with me."
|
||||||
date = "2021-08-17 10:21:34+02:00"
|
date = "2021-08-17 10:21:34+02:00"
|
||||||
updated = "2024-07-14T10:34:11+02:00"
|
updated = "2021-11-02 19:00:03+01:00"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
I have recently heard of the practice of listing available communication channels and online profiles on the internet to
|
I have recently heard of the practice of listing available communication channels and online profiles on the internet to
|
||||||
|
@ -13,11 +13,8 @@ but hopefully even a list with only the less sensitive profiles and contact info
|
||||||
The following list is probably not complete and will change over time.
|
The following list is probably not complete and will change over time.
|
||||||
|
|
||||||
| Service/Protocol | Hyperlink | Notes |
|
| Service/Protocol | Hyperlink | Notes |
|
||||||
| ------------------ | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|-|-|-|
|
||||||
| E-Mail | [contact@jotoho.de](mailto:contact@jotoho.de) | [OpenPGP keys here](https://downloads.jotoho.de/openpgp/) and [via WKD](https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-service/) |
|
| E-Mail | [contact@jotoho.de](mailto:contact@jotoho.de) | OpenPGP keys [here](https://downloads.jotoho.de/openpgp/) and [via WKD](https://datatracker.ietf.org/doc/draft-koch-openpgp-webkey-service/) |
|
||||||
| Mastodon/Fediverse | [@jotoho@ruhr.social](https://ruhr.social/@jotoho) | |
|
| Mastodon/Fediverse | [@jotoho@ruhr.social](https://ruhr.social/@jotoho) | |
|
||||||
| GitLab | [@jotoho](https://gitlab.com/jotoho) | Preferred Git hosting platform |
|
| GitLab | [@jotoho](https://gitlab.com/jotoho) | Preferred Git hosting platform |
|
||||||
| GitHub | [@jotoho](https://github.com/jotoho) | |
|
| GitHub | [@jotoho](https://github.com/jotoho) | |
|
||||||
| Threema | [8WEESJ8K](https://threema.id/8WEESJ8K) | <details><summary>QR-Code containing Threema-ID</summary><img src="threema-scanid-8weesj8k.svg" alt="Scannable QR-Code" width="1000px" height="1000px" loading="lazy" class="black-white-svg" /></details> |
|
|
||||||
| Matrix | [@jotoho:jotoho.de](matrix:u/jotoho:jotoho.de?action=chat) | |
|
|
||||||
| Signal | [jotoho.68](https://signal.me/#eu/u_D8b5Ha39JGdbEJ5d4ULShg4VOx80uMc7q2-2ST0Pnx9UDsASZAqaJWL6DRFu59) | |
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 171 KiB |
|
@ -2,44 +2,45 @@
|
||||||
title = "Services hosted on jotoho.de"
|
title = "Services hosted on jotoho.de"
|
||||||
description = "This page lists the various servers running under the jotoho.de domain name and by who and how they may be accessed."
|
description = "This page lists the various servers running under the jotoho.de domain name and by who and how they may be accessed."
|
||||||
date = "2021-06-29 22:14:11+02:00"
|
date = "2021-06-29 22:14:11+02:00"
|
||||||
updated = "2023-03-02T16:57:24+01:00"
|
updated = "2022-01-06 21:52:00+01:00"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
Besides this website, my domain also has a number of other services/servers running that are set up for learning purposes or for personal use by myself, family and acquaintances. The list only contains services available from the public internet.
|
Besides this website, my domain also has a number of other services/servers running that are set up for learning purposes or for personal use by myself, family and acquaintances. The list only contains services available from the public internet.
|
||||||
|
|
||||||
---
|
-----
|
||||||
|
|
||||||
### Publicly accessible services
|
### Publicly accessible services
|
||||||
|
|
||||||
- [**This website**](https://www.jotoho.de): www.jotoho.de is currently being self-hosted using
|
* [**Personal Nextcloud**](https://nextcloud.jotoho.de): This Nextcloud instance is set up for use by myself and those I have invited to store, conveniently access and exchange files and other information.
|
||||||
[a customized Caddy docker image](https://gitea.jotoho.de/jotoho/site-deployer)
|
* [**Gitea**](https://gitea.jotoho.de): I'm currently experimenting with the Git Server software Gitea as a lightweight alternative or addon to GitLab.
|
||||||
- [**Personal Nextcloud**](https://nextcloud.jotoho.de): This Nextcloud instance is set up for use by myself and those I have invited to store, conveniently access and exchange files and other information.
|
Account Registration is limited to whitelisted email domains and accounts need to manually be confirmed by me before becoming active.
|
||||||
- [**Forgejo**](https://gitea.jotoho.de): This git server was migrated from Gitea to Forgejo on 2023-01-17 as an emergency measure due to the potentially hostile takeover
|
* [**Vaultwarden**](https://bitwarden.jotoho.de): Bitwarden Fork for storing and synchronizing my access credentials and other secrets on my own infrastructure.
|
||||||
of the Gitea project.
|
* [**Caddy Fileserver**](https://downloads.jotoho.de): For holding and serving public files directly without needing to go through Nextcloud.
|
||||||
Account Registration is limited to whitelisted email domains and accounts need to manually be confirmed by me before becoming active.
|
Has increased compatibility for use-cases like embedding images or media on this website.
|
||||||
- [**Caddy public fileserver**](https://downloads.jotoho.de): For holding and serving public files directly via HTTPS without needing to go through Nextcloud.
|
* [**This website**](https://www.jotoho.de): www.jotoho.de is currently being self-hosted using
|
||||||
Has increased compatibility for use-cases like embedding images or media on this website.
|
[a customized Caddy docker image](https://gitea.jotoho.de/jotoho/site-deployer)
|
||||||
- [**Vikunja Task Management**](https://tasks.jotoho.de): Online To-Do list and Tasks management. Family and Friends can request accounts to be created for them
|
|
||||||
in order to be able to share to-do lists.
|
|
||||||
It supports CalDAV synchronization with client devices.
|
|
||||||
|
|
||||||
---
|
-----
|
||||||
|
### Restricted/Internal Services
|
||||||
|
|
||||||
|
These services/servers are only available from whilelisted IP addresses and are exclusively meant for use by myself or family.
|
||||||
|
|
||||||
|
* [Pi-Hole](https://pihole.jotoho.de) (including Webinterface)
|
||||||
|
* PHPMyAdmin
|
||||||
|
|
||||||
|
-----
|
||||||
### Special Purpose Subdomains
|
### Special Purpose Subdomains
|
||||||
|
|
||||||
- **lab.jotoho.de**: Delegated to DigitalOcean Nameservers for quick configuration of droplets and other testing projects hosted there.
|
* **lab.jotoho.de**: Delegated to DigitalOcean Nameservers for quick configuration of droplets and other testing projects hosted there.
|
||||||
Do not expect anything hosted under this subdomain or one of it's subdomains to live for more than a few hours or days.
|
Do not expect anything hosted under this subdomain or one of it's subdomains to live for more than a few hours or days.
|
||||||
Security issues, Anomalies or detected abuse of this subdomain [should be immediately reported to me via email](mailto:security@jotoho.de),
|
Security issues, Anomalies or detected abuse of this subdomain [should be immediately reported to me via email](mailto:security@jotoho.de), so I can investigate and implement corrective measures, if necessary.
|
||||||
so I can investigate and implement corrective measures, if necessary.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
-----
|
||||||
### Potential future additions or experiments
|
### Potential future additions or experiments
|
||||||
|
|
||||||
When I bought this domain, it became clear to me how very versatile and useful it can be to have a publicly listed internet namespace so I am always trying to find and learn new ways to put the domain to good use and try out new technologies & server-side software that I view as interesting or useful.
|
When I bought this domain, it became clear to me how very versatile and useful it can be to have a publicly listed internet namespace so I am always trying to find and learn new ways to put the domain to good use and try out new technologies & server-side software that I view as interesting or useful.
|
||||||
|
|
||||||
Things I may set up and play with in the future:
|
Things I may set up and play with in the future:
|
||||||
|
|
||||||
- personal mastodon or activitypub-compatible server
|
* personal mastodon or activitypub-compatible server
|
||||||
- outgoing SMTP server for service notifications
|
* outgoing SMTP server for service notifications
|
||||||
- Apache Guacamole for remote control of devices
|
* Apache Guacamole for remote control of devices
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"m.homeserver": {
|
|
||||||
"base_url": "https://matrix.jotoho.de:8448"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
"m.server": "matrix.jotoho.de:8448"
|
"m.server": "dendrite2.jotoho.de:8448"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,5 @@
|
||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
|
||||||
Hash: SHA512
|
|
||||||
|
|
||||||
Contact: mailto:security@jotoho.de
|
Contact: mailto:security@jotoho.de
|
||||||
Expires: 2025-09-17T00:00:00.000Z
|
Expires: Sat, 27 Jan 2024 00:00 +0100
|
||||||
Encryption: https://keys.openpgp.org/vks/v1/by-fingerprint/1F42EF02BE3E6FE8F624C8BC612F3350DB59D359
|
Encryption: https://keys.openpgp.org/vks/v1/by-fingerprint/1F42EF02BE3E6FE8F624C8BC612F3350DB59D359
|
||||||
Encryption: https://downloads.jotoho.de/openpgp/1F42EF02BE3E6FE8F624C8BC612F3350DB59D359.asc
|
|
||||||
Preferred-Languages: de, en
|
Preferred-Languages: de, en
|
||||||
Canonical: https://www.jotoho.de/.well-known/security.txt
|
Canonical: https://jotoho.de/.well-known/security.txt
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQI5BAEBCgAjFiEETvwvjG0vxDxbX2QpFQE63pZQIWQFAmMlz+YFgxLMAwAACgkQ
|
|
||||||
FQE63pZQIWTKxRAAvS2CLpKosuwzuklXI5/gjulSgqy4KMM3QX3lmgzogV6nK0L2
|
|
||||||
YpEvH4e89kldGyDjVKNHWBFRca3eI8OXNlWGTgX5BZ7t7tz7qFccxhsiZBpUiRq3
|
|
||||||
EVRJEwdLj2QLHqIAd8RIA/JGsb7AaEeoTcY/BNmTUWwOYZ6uYzq+XhHKnIOjrQDv
|
|
||||||
iWr+LYa+Pc/w8s5C6No1rmAEWOA1ZbTNduu6eZiwPjytjn/APs1/1WKn6Mee18oY
|
|
||||||
YHdOdfeSJSaIxvMzSCpdFvQdF0HWdJ5yCsE83Un8WA3yI3sRB+YMdVgFDXhEDQaD
|
|
||||||
F9b6VtaQzA805XpbwEaLYPBJjE7jVfKVPXokMMHF0+k9003T34aw9JTLw4YZztIH
|
|
||||||
JwMBUmOkfBiWCXC2cX1d00WMmJd8MVRwcU5SVh6ENjbAOxkpUitS+cFs67YkrtcX
|
|
||||||
AOGDYRnMIAVuV9/SmooJUd+lV/XPjztxmMS9yBmZffwO/DmOvkMEinjhrIV/0tNh
|
|
||||||
Wqjs6GSXbkDdQ33FInPr6bb1AXG2u8IJK8vwi4jTl/ojS8G6zAIoUzCqm1QuGbuA
|
|
||||||
+2YpmZdnHlMFsTUp4zfUDVuGzS6udqcFFsrUsSgit1XkTVjyq44CZbJVXJFp1+w6
|
|
||||||
QjbFVi7KCp89TU0dQ+n7QUZn3USeINGBB4yxglGwajZusxif6pIF5VRuB0g=
|
|
||||||
=lQ4n
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
{"subject":"acct:jotoho@ruhr.social","aliases":["https://ruhr.social/@jotoho","https://ruhr.social/users/jotoho"],"links":[{"rel":"http://webfinger.net/rel/profile-page","type":"text/html","href":"https://ruhr.social/@jotoho"},{"rel":"self","type":"application/activity+json","href":"https://ruhr.social/users/jotoho"},{"rel":"http://ostatus.org/schema/1.0/subscribe","template":"https://ruhr.social/authorize_interaction?uri={uri}"}]}
|
|
|
@ -3,92 +3,55 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border: none;
|
border: none;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
box-sizing: border-box !important;
|
box-sizing: border-box;
|
||||||
overflow-wrap: anywhere;
|
|
||||||
object-fit: scale-down;
|
|
||||||
scroll-behavior: smooth;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
body {
|
||||||
max-width: inherit;
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
html:not(:root),
|
|
||||||
body:not(:root) {
|
|
||||||
max-width: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
#root {
|
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
display: flex;
|
max-width: 100vw;
|
||||||
flex-direction: column;
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
min-height: 100vh;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#root > * {
|
header, footer {
|
||||||
flex-grow: 0;
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
header,
|
|
||||||
footer {
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#header-title {
|
header {
|
||||||
display: block;
|
padding-bottom: 1rem;
|
||||||
padding-top: 0.5rem;
|
|
||||||
padding-bottom: 0.5rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
padding-top: 0.5rem;
|
padding-top: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
#header-delimiter {
|
.globalnav{
|
||||||
padding-top: 0;
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#footer-delimiter {
|
|
||||||
padding-bottom: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.globalnav {
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
gap: 2px;
|
gap: max(1px, 0.1rem);
|
||||||
height: max-content;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.globalnav-element {
|
.globalnav-element {
|
||||||
display: block;
|
display: block;
|
||||||
background-color: rgb(90% 90% 90%);
|
background-color: #ddd;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
flex-basis: 0;
|
flex-basis: 0;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
min-width: fit-content;
|
min-width: fit-content;
|
||||||
padding-top: 0.5rem;
|
min-height: fit-content;
|
||||||
padding-bottom: 0.5rem;
|
padding: 0.5rem 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Code Blocks */
|
/* Code Blocks */
|
||||||
pre {
|
pre {
|
||||||
display: block;
|
|
||||||
padding: 0.75rem;
|
padding: 0.75rem;
|
||||||
margin-top: 1.5rem;
|
margin-top: 1.5rem;
|
||||||
margin-bottom: 1.5rem;
|
margin-bottom: 1.5rem;
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
width: fit-content;
|
width: 100%;
|
||||||
max-width: 100%;
|
max-width: max-content;
|
||||||
overflow-x: auto;
|
overflow-y: auto;
|
||||||
line-break: strict;
|
line-break: strict;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,8 +63,11 @@ code {
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
margin-top: 0.5rem;
|
padding: 0.5rem;
|
||||||
margin-bottom: 0.5rem;
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
|
@ -110,106 +76,37 @@ h2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
#mainarticle {
|
#mainarticle {
|
||||||
width: fit-content;
|
width: max-content;
|
||||||
max-width: min(100%, 72rem);
|
max-width: min(80rem, 100%);
|
||||||
margin-left: auto;
|
margin: 0 auto;
|
||||||
margin-right: auto;
|
|
||||||
flex-grow: 1;
|
|
||||||
text-align: justify;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#mainarticle h3 {
|
li, ul, ol {
|
||||||
margin-top: 1rem;
|
margin: 1rem;
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul > li,
|
|
||||||
ol > li {
|
|
||||||
margin-top: 0.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
li::marker {
|
|
||||||
width: 1rem;
|
|
||||||
max-width: 100%;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
margin-inline-start: 1rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
border-style: inset;
|
border-style: inset;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
margin-top: 0.5rem;
|
margin: 0.5rem 0;
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
table {
|
table {
|
||||||
display: block;
|
display: block;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
margin: 1rem auto;
|
margin: 1rem auto;
|
||||||
width: fit-content;
|
width: max-content;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
overflow-x: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr {
|
td, th {
|
||||||
width: fit-content;
|
|
||||||
}
|
|
||||||
|
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-color: black;
|
border-color: black;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
|
||||||
display: block;
|
|
||||||
min-height: unset;
|
|
||||||
min-width: unset;
|
|
||||||
height: auto;
|
|
||||||
width: auto;
|
|
||||||
max-width: 100%;
|
|
||||||
max-height: unset;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
object-fit: scale-down;
|
|
||||||
object-position: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
details {
|
|
||||||
backdrop-filter: invert(100%);
|
|
||||||
padding: max(1mm, 1px);
|
|
||||||
width: min-content;
|
|
||||||
max-width: fit-content;
|
|
||||||
min-width: unset;
|
|
||||||
display: block;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
details > summary {
|
|
||||||
max-width: fit-content;
|
|
||||||
width: max-content;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
details:not([open]) > summary::after {
|
|
||||||
content: "Click to expand";
|
|
||||||
display: block;
|
|
||||||
max-width: fit-content;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
details[open] > summary {
|
|
||||||
margin-bottom: max(1mm, 1px);
|
|
||||||
}
|
|
||||||
|
|
||||||
#licenseimg {
|
#licenseimg {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
height: inherit;
|
height: inherit;
|
||||||
|
@ -221,32 +118,20 @@ details[open] > summary {
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.visible-article-metadata {
|
@media (max-width: 20rem), (max-width: 300px) {
|
||||||
display: contents;
|
* {
|
||||||
font-size: small;
|
word-wrap: break-word;
|
||||||
font-style: italic;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.article-metadata-label {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.article-missinglicense {
|
|
||||||
font-size: xx-small;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
* {
|
|
||||||
scrollbar-color: white black;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
background-color: black;
|
background-color: #111;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.globalnav-element {
|
.globalnav-element {
|
||||||
background-color: rgb(10% 10% 10%);
|
background-color: #222;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
|
@ -257,15 +142,9 @@ details[open] > summary {
|
||||||
color: lightskyblue;
|
color: lightskyblue;
|
||||||
}
|
}
|
||||||
|
|
||||||
table,
|
table, td, th {
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border-color: white;
|
border-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
details {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
@media (prefers-color-scheme: light) {
|
||||||
|
@ -275,20 +154,14 @@ details[open] > summary {
|
||||||
}
|
}
|
||||||
|
|
||||||
.globalnav-element {
|
.globalnav-element {
|
||||||
background-color: rgb(90% 90% 90%);
|
background-color: #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
table,
|
table, td, th {
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border-color: black;
|
border-color: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
details {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,121 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://web.resource.org/cc/"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="80"
|
|
||||||
height="15"
|
|
||||||
id="svg2279"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.45+devel"
|
|
||||||
version="1.0"
|
|
||||||
sodipodi:docname="by-nc-nd.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
|
||||||
<defs
|
|
||||||
id="defs2281">
|
|
||||||
<clipPath
|
|
||||||
clipPathUnits="userSpaceOnUse"
|
|
||||||
id="clipPath3442">
|
|
||||||
<rect
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
id="rect3444"
|
|
||||||
width="20.614058"
|
|
||||||
height="12.483703"
|
|
||||||
x="171.99832"
|
|
||||||
y="239.1203" />
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#999999"
|
|
||||||
borderopacity="1"
|
|
||||||
gridtolerance="10000"
|
|
||||||
guidetolerance="10"
|
|
||||||
objecttolerance="10"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="10.5125"
|
|
||||||
inkscape:cx="40"
|
|
||||||
inkscape:cy="7.5"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
width="80px"
|
|
||||||
height="15px"
|
|
||||||
showborder="true"
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
inkscape:window-width="935"
|
|
||||||
inkscape:window-height="624"
|
|
||||||
inkscape:window-x="50"
|
|
||||||
inkscape:window-y="160" />
|
|
||||||
<metadata
|
|
||||||
id="metadata2284">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1">
|
|
||||||
<g
|
|
||||||
id="BY-NC-ND"
|
|
||||||
transform="matrix(0.9875019,0,0,0.9333518,-323.90064,-411.87964)">
|
|
||||||
<g
|
|
||||||
id="g3783"
|
|
||||||
transform="translate(158,204)">
|
|
||||||
<rect
|
|
||||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.04161763;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
id="rect3785"
|
|
||||||
width="80"
|
|
||||||
height="15"
|
|
||||||
x="170.5"
|
|
||||||
y="237.86218" />
|
|
||||||
<rect
|
|
||||||
y="239.36218"
|
|
||||||
x="172"
|
|
||||||
height="12"
|
|
||||||
width="77"
|
|
||||||
id="rect3787"
|
|
||||||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.92243534;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
style="fill:#abb1aa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.46913578"
|
|
||||||
d="M 171.99996,239.37505 L 171.99996,251.37505 L 192.33474,251.37505 C 193.64339,249.62474 194.52652,247.59057 194.52652,245.37505 C 194.52652,243.17431 193.65859,241.1179 192.36599,239.37505 L 171.99996,239.37505 z"
|
|
||||||
id="path3789"
|
|
||||||
sodipodi:nodetypes="cccscc" />
|
|
||||||
<g
|
|
||||||
id="g3791"
|
|
||||||
transform="matrix(0.9612533,0,0,0.9612533,6.8341566,9.5069994)"
|
|
||||||
clip-path="url(#clipPath3442)">
|
|
||||||
<path
|
|
||||||
id="path3793"
|
|
||||||
cx="296.35416"
|
|
||||||
ry="22.939548"
|
|
||||||
cy="264.3577"
|
|
||||||
type="arc"
|
|
||||||
rx="22.939548"
|
|
||||||
d="M 190.06417,245.36206 C 190.06667,249.25405 186.91326,252.41072 183.02153,252.41323 C 179.12979,252.41572 175.97262,249.26256 175.97036,245.3706 C 175.97036,245.36783 175.97036,245.36507 175.97036,245.36206 C 175.9681,241.47007 179.12126,238.3134 183.013,238.31113 C 186.90524,238.30864 190.06191,241.46181 190.06417,245.3538 C 190.06417,245.35628 190.06417,245.35929 190.06417,245.36206 z"
|
|
||||||
style="opacity:1;fill:#ffffff" />
|
|
||||||
<path
|
|
||||||
d="M 188.74576,239.62226 C 190.30843,241.18492 191.08988,243.09869 191.08988,245.36206 C 191.08988,247.62592 190.32197,249.51913 188.78615,251.04165 C 187.15627,252.64521 185.22995,253.44672 183.00722,253.44672 C 180.81132,253.44672 178.91837,252.65172 177.32887,251.06174 C 175.73912,249.47198 174.94436,247.57226 174.94436,245.36206 C 174.94436,243.15235 175.73912,241.23908 177.32887,239.62226 C 178.87799,238.0591 180.77094,237.27764 183.00722,237.27764 C 185.2706,237.27764 187.18312,238.05909 188.74576,239.62226 z M 178.38093,240.67355 C 177.05978,242.008 176.39945,243.57116 176.39945,245.36429 C 176.39945,247.15694 177.05326,248.70682 178.36062,250.01393 C 179.66822,251.32153 181.22487,251.97509 183.03105,251.97509 C 184.83724,251.97509 186.40716,251.31502 187.74161,249.99412 C 189.0086,248.76725 189.64234,247.22467 189.64234,245.36429 C 189.64234,243.51799 188.99831,241.95084 187.71101,240.66354 C 186.42396,239.37649 184.86406,238.7327 183.03105,238.7327 C 181.19804,238.73271 179.64767,239.37975 178.38093,240.67355 z M 181.85761,244.57559 C 181.65573,244.13545 181.35354,243.91525 180.95051,243.91525 C 180.23802,243.91525 179.8819,244.39501 179.8819,245.35404 C 179.8819,246.31328 180.23802,246.79255 180.95051,246.79255 C 181.421,246.79255 181.75705,246.55908 181.95869,246.09111 L 182.94629,246.61701 C 182.47555,247.45339 181.76934,247.87168 180.82763,247.87168 C 180.10136,247.87168 179.51953,247.64899 179.08265,247.20409 C 178.64502,246.7587 178.42684,246.14477 178.42684,245.36206 C 178.42684,244.59313 178.65204,243.98271 179.10271,243.53056 C 179.55338,243.07838 180.11463,242.8524 180.7875,242.8524 C 181.78288,242.8524 182.49561,243.24465 182.92647,244.02835 L 181.85761,244.57559 z M 186.50398,244.57559 C 186.30184,244.13545 186.00567,243.91525 185.61517,243.91525 C 184.88839,243.91525 184.52474,244.39501 184.52474,245.35404 C 184.52474,246.31328 184.88839,246.79255 185.61517,246.79255 C 186.08642,246.79255 186.41644,246.55908 186.6048,246.09111 L 187.61447,246.61701 C 187.14448,247.45339 186.43926,247.87168 185.49931,247.87168 C 184.77403,247.87168 184.19346,247.64899 183.75683,247.20409 C 183.32096,246.7587 183.10254,246.14477 183.10254,245.36206 C 183.10254,244.59313 183.32422,243.98271 183.76737,243.53056 C 184.21026,243.07838 184.77404,242.8524 185.4592,242.8524 C 186.45282,242.8524 187.16455,243.24465 187.5939,244.02835 L 186.50398,244.57559 z"
|
|
||||||
id="path3795"
|
|
||||||
style="opacity:1" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<path
|
|
||||||
id="text3797"
|
|
||||||
d="M 357.4197,448.68503 C 357.66518,448.68504 357.85131,448.63146 357.9781,448.52428 C 358.10488,448.41712 358.16827,448.25905 358.16828,448.05008 C 358.16827,447.84378 358.10488,447.68705 357.9781,447.57988 C 357.85131,447.47004 357.66518,447.41512 357.4197,447.41511 L 356.55784,447.41511 L 356.55784,448.68503 L 357.4197,448.68503 M 357.4723,451.30929 C 357.78522,451.30929 358.0199,451.24364 358.17637,451.11236 C 358.33552,450.98109 358.4151,450.78283 358.4151,450.51759 C 358.4151,450.25771 358.33686,450.06347 358.18041,449.93488 C 358.02396,449.80359 357.78792,449.73796 357.4723,449.73795 L 356.55784,449.73795 L 356.55784,451.30929 L 357.4723,451.30929 M 358.92089,449.15122 C 359.25538,449.24767 359.51434,449.42583 359.69779,449.68571 C 359.88121,449.94559 359.97293,450.26441 359.97294,450.64217 C 359.97293,451.22087 359.776,451.65222 359.38217,451.93621 C 358.98833,452.2202 358.38947,452.36219 357.5856,452.36219 L 355.00001,452.36219 L 355.00001,446.3622 L 357.33878,446.3622 C 358.17771,446.36221 358.78466,446.48813 359.15962,446.73996 C 359.53727,446.99181 359.7261,447.39502 359.7261,447.9496 C 359.7261,448.24164 359.65732,448.4908 359.51975,448.69709 C 359.38217,448.90072 359.18255,449.05209 358.92089,449.15122 M 359.83746,446.3622 L 361.54096,446.3622 L 362.91671,448.50018 L 364.29245,446.3622 L 366,446.3622 L 363.69764,449.8344 L 363.69764,452.36219 L 362.13982,452.36219 L 362.13982,449.8344 L 359.83746,446.3622 M 365.15837,449.40842 L 367.69946,449.40842 L 367.69946,450.57787 L 365.15837,450.57787 L 365.15837,449.40842 M 368.9174,446.3622 L 370.65732,446.3622 L 372.85447,450.47741 L 372.85447,446.3622 L 374.33138,446.3622 L 374.33138,452.36219 L 372.59146,452.36219 L 370.3943,448.24699 L 370.3943,452.36219 L 368.9174,452.36219 L 368.9174,446.3622 M 380.65173,452.03266 C 380.36579,452.18002 380.0677,452.2912 379.75749,452.36622 C 379.44727,452.44123 379.12357,452.47875 378.78638,452.47875 C 377.78019,452.47875 376.98307,452.20011 376.395,451.64284 C 375.80693,451.08289 375.5129,450.32469 375.5129,449.36823 C 375.5129,448.40909 375.80693,447.65089 376.395,447.09361 C 376.98307,446.53367 377.78019,446.2537 378.78638,446.25369 C 379.12357,446.2537 379.44727,446.29121 379.75749,446.36621 C 380.0677,446.44124 380.36579,446.55243 380.65173,446.69977 L 380.65173,447.94157 C 380.36309,447.746 380.0785,447.60266 379.79796,447.51156 C 379.5174,447.42047 379.22203,447.37493 378.91181,447.37493 C 378.35611,447.37493 377.91911,447.55175 377.6008,447.9054 C 377.28249,448.25905 377.12333,448.74666 377.12333,449.36823 C 377.12333,449.98712 377.28249,450.47339 377.6008,450.82703 C 377.91911,451.18069 378.35611,451.35751 378.91181,451.35751 C 379.22203,451.35751 379.5174,451.31197 379.79796,451.22087 C 380.0785,451.12978 380.36309,450.98644 380.65173,450.79086 L 380.65173,452.03266 M 381.82921,449.40842 L 384.3703,449.40842 L 384.3703,450.57787 L 381.82921,450.57787 L 381.82921,449.40842 M 385.58824,446.3622 L 387.32815,446.3622 L 389.52531,450.47741 L 389.52531,446.3622 L 391.00222,446.3622 L 391.00222,452.36219 L 389.26229,452.36219 L 387.06515,448.24699 L 387.06515,452.36219 L 385.58824,452.36219 L 385.58824,446.3622 M 394.08956,447.53165 L 394.08956,451.19274 L 394.64795,451.19274 C 395.28456,451.19274 395.77013,451.03602 396.10462,450.72255 C 396.44181,450.40909 396.61041,449.95363 396.61042,449.35617 C 396.61041,448.7614 396.44317,448.30862 396.10867,447.99783 C 395.77417,447.68705 395.28726,447.53166 394.64795,447.53165 L 394.08956,447.53165 M 392.53172,446.3622 L 394.17453,446.3622 C 395.09169,446.36221 395.77417,446.42784 396.22197,446.55912 C 396.67245,446.68772 397.0582,446.90742 397.37922,447.2182 C 397.66246,447.48879 397.87286,447.80092 398.01044,448.15456 C 398.14801,448.50822 398.2168,448.90875 398.21681,449.35617 C 398.2168,449.80896 398.14801,450.21351 398.01044,450.56983 C 397.87286,450.92349 397.66246,451.23561 397.37922,451.50621 C 397.05551,451.81699 396.66706,452.03802 396.21387,452.1693 C 395.76069,452.29789 395.0809,452.36219 394.17453,452.36219 L 392.53172,452.36219 L 392.53172,446.3622"
|
|
||||||
style="font-size:8.25858784px;font-style:normal;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:'Bitstream Vera Sans'" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 11 KiB |
|
@ -1,11 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>CI/CD Presentation redirect</title>
|
|
||||||
<meta name="robots" content="noindex, nofollow" />
|
|
||||||
<meta http-equiv="Refresh" content="0; url='https://docs.google.com/presentation/d/1NwD6r3W2T0cprsixUUWzM7nKkDZX1GuGmrlK32QpOmo/edit?usp=sharing'" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p>You should be automatically redirected now...</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,19 +1,9 @@
|
||||||
"use strict";
|
(() => {
|
||||||
|
"use strict";
|
||||||
{
|
let ageElements = document.getElementsByClassName("age-display")
|
||||||
// Month index must be two because counting begins at 0 (for January)
|
for (let i = 0; i < ageElements.length; i++) {
|
||||||
const myBirthDate = new Date(2001, 2, 29);
|
ageElements[i].innerText = (Math.floor(((new Date()).getTime() - (new Date(2001, 3, 29)).getTime())
|
||||||
const today = new Date();
|
/ 1000 / 60 / 60 / 24 / 365))
|
||||||
|
.toString()
|
||||||
let yearsSinceBirth = today.getFullYear() - myBirthDate.getFullYear();
|
}
|
||||||
|
})()
|
||||||
// Correct yearsSinceBirth if between New Year and my birthday
|
|
||||||
if (today.getMonth() < myBirthDate.getMonth()) yearsSinceBirth--;
|
|
||||||
else if (
|
|
||||||
today.getMonth() == myBirthDate.getMonth() &&
|
|
||||||
today.getDate() < myBirthDate.getDate()
|
|
||||||
)
|
|
||||||
yearsSinceBirth--;
|
|
||||||
|
|
||||||
document.getElementById("age-display").innerText = yearsSinceBirth.toString();
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Array.from(document.getElementsByClassName("relative-timestamp")).forEach(
|
|
||||||
function (timestamp) {
|
|
||||||
if (timestamp?.dateTime) {
|
|
||||||
timestamp.innerText = new Intl.DateTimeFormat(undefined, {
|
|
||||||
dateStyle: "long",
|
|
||||||
timeStyle: "short",
|
|
||||||
}).format(new Date(timestamp.dateTime));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
|
@ -1,15 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
{
|
|
||||||
const copyrightYearElement = document.getElementById("footer-copyrightyear");
|
|
||||||
|
|
||||||
if (copyrightYearElement) {
|
|
||||||
const currentYearAsStr = new Date().getFullYear().toString();
|
|
||||||
|
|
||||||
copyrightYearElement.innerText = currentYearAsStr;
|
|
||||||
copyrightYearElement.dateTime = currentYearAsStr;
|
|
||||||
} else
|
|
||||||
console.error(
|
|
||||||
"Could not find the footer entry for the year of the copyright notice."
|
|
||||||
);
|
|
||||||
}
|
|
|
@ -20,15 +20,17 @@
|
||||||
/>
|
/>
|
||||||
<!--Mastodon account ownership verification-->
|
<!--Mastodon account ownership verification-->
|
||||||
<link rel="me" href="https://ruhr.social/@jotoho" />
|
<link rel="me" href="https://ruhr.social/@jotoho" />
|
||||||
<script defer src="/scripts/updatecopyrightyear.js"></script>
|
|
||||||
<title>jotoho.de - A personal website</title>
|
<title>jotoho.de - A personal website</title>
|
||||||
{% block metadata %} {% endblock %}
|
{% block metadata %} {% endblock %}
|
||||||
</head>
|
</head>
|
||||||
<body id="root">
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<a id="header-title" href="{{ config.base_url }}">
|
<div>
|
||||||
<h1>jotoho.de - My personal website</h1>
|
<a href="{{ config.base_url }}"
|
||||||
</a>
|
><h1>jotoho.de - My personal website</h1></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
<nav class="globalnav">
|
<nav class="globalnav">
|
||||||
<!--<a class="globalnav-element" href="{{ get_url(path='@/blog/_index.md') }}"> Blog </a>-->
|
<!--<a class="globalnav-element" href="{{ get_url(path='@/blog/_index.md') }}"> Blog </a>-->
|
||||||
<a
|
<a
|
||||||
|
@ -44,23 +46,23 @@
|
||||||
Profiles
|
Profiles
|
||||||
</a>
|
</a>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
<hr />
|
||||||
<hr id="header-delimiter" />
|
|
||||||
|
|
||||||
<article id="mainarticle">{% block content %} {% endblock %}</article>
|
<article id="mainarticle">{% block content %} {% endblock %}</article>
|
||||||
|
|
||||||
<hr id="footer-delimiter" />
|
<hr />
|
||||||
<footer>
|
<footer>
|
||||||
<p>
|
<p>
|
||||||
<!--{% set current_year = now() | date(format="%Y",
|
<!--{% set current_year = now() | date(format="%Y",
|
||||||
timezone="Europe/Berlin") %} -->
|
timezone="Europe/Berlin") %} -->
|
||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
<time id="footer-copyrightyear" datetime="{{ current_year }}">
|
<time datetime="{{ current_year }}">{{ current_year }}</time>
|
||||||
{{ current_year }}
|
Jonas Tobias Hopusch (<a
|
||||||
</time>
|
rel="noreferer"
|
||||||
Jonas Tobias Hopusch (@jotoho)
|
href="https://gitlab.com/jotoho"
|
||||||
<!--
|
>@jotoho</a
|
||||||
|
>)
|
||||||
<br />
|
<br />
|
||||||
Licensed under
|
Licensed under
|
||||||
<a href="https://creativecommons.org/licenses/by-nc-nd/4.0/"
|
<a href="https://creativecommons.org/licenses/by-nc-nd/4.0/"
|
||||||
|
@ -68,19 +70,19 @@
|
||||||
id="licenseimg"
|
id="licenseimg"
|
||||||
alt="CC BY-NC-ND 4.0"
|
alt="CC BY-NC-ND 4.0"
|
||||||
title="CC BY-NC-ND 4.0"
|
title="CC BY-NC-ND 4.0"
|
||||||
src="/images/copyright/cc-by-nc-nd-4.0-small.svg"
|
src="https://licensebuttons.net/l/by-nc-nd/4.0/80x15.png"
|
||||||
/></a>
|
/></a>
|
||||||
(unless otherwise specified)
|
(unless otherwise specified)
|
||||||
-->
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a href="https://gitea.jotoho.de/jotoho/my-website">This page</a>
|
<a href="https://gitea.jotoho.de/jotoho/my-website"
|
||||||
|
>This page</a
|
||||||
|
>
|
||||||
is being served using
|
is being served using
|
||||||
<a rel="noreferer" href="https://caddyserver.com/">Caddy</a>
|
<a rel="noreferer" href="https://caddyserver.com/">Caddy</a>
|
||||||
and was generated using
|
and was generated using
|
||||||
<a rel="noreferer" href="https://www.getzola.org/">Zola</a>.
|
<a rel="noreferer" href="https://www.getzola.org/">Zola</a>. You
|
||||||
<br />
|
may contact me via
|
||||||
You may contact me via
|
|
||||||
<a href="mailto:webmaster@jotoho.de">email</a>
|
<a href="mailto:webmaster@jotoho.de">email</a>
|
||||||
regarding any issues with this website.
|
regarding any issues with this website.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{% extends "base.html" %} {% block metadata %}
|
{% extends "base.html" %}
|
||||||
<meta
|
|
||||||
name="description"
|
{% block metadata %}
|
||||||
content="This is the personal website of Jonas Tobias Hopusch (@jotoho)"
|
<meta name="description" content="This is the personal website of Jonas Tobias Hopusch (@jotoho)" />
|
||||||
/>
|
{% endblock metadata %}
|
||||||
{% endblock metadata %} {% block content %}
|
|
||||||
<p>This is some placeholder text because I don't know what to put here, yet.</p>
|
{% block content %}
|
||||||
|
<p>
|
||||||
|
This is some placeholder text because I don't know what to put here, yet.
|
||||||
|
</p>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
|
@ -1,47 +1,30 @@
|
||||||
{% extends "base.html" %} {% block metadata %}
|
{% extends "base.html" %} {% block metadata %}
|
||||||
|
|
||||||
<meta name="description" content="{{ page.description }}" />
|
<meta name="description" content="{{ page.description }}" />
|
||||||
<script defer src="/scripts/relativetime.js"></script>
|
|
||||||
|
|
||||||
{% endblock %} {% block content %}
|
{% endblock %} {% block content %}
|
||||||
<h2>{{ page.title }}</h2>
|
<h2>{{ page.title }}</h2>
|
||||||
<div class="visible-article-metadata">
|
{% if page.date and page.date is defined %}
|
||||||
{% if page.date and page.date is defined %}
|
<p>
|
||||||
<p>
|
<em
|
||||||
<span class="article-metadata-label">First published</span>:
|
><strong>Published on</strong>:
|
||||||
<time class="relative-timestamp" datetime="{{page.date}}"
|
<time datetime="{{page.date}}"
|
||||||
>{{ page.date | date(format="%F %R (%Z)", timezone="Europe/Berlin")
|
>{{ page.date | date(format="%A, %e %B %Y %R %Z",
|
||||||
}}</time
|
timezone="Europe/Berlin") }}</time
|
||||||
|
></em
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
{% endif %} {% if page.updated and page.updated != page.date %}
|
{% endif %} {% if page.updated and page.updated != page.date %}
|
||||||
<p>
|
<p>
|
||||||
<span class="article-metadata-label">Last updated on</span>:
|
<em
|
||||||
<time class="relative-timestamp" datetime="{{page.updated}}"
|
><strong>Last updated on</strong>:
|
||||||
>{{ page.updated | date(format="%F %R (%Z)", timezone="Europe/Berlin")
|
<time datetime="{{page.updated}}"
|
||||||
}}</time
|
>{{ page.updated | date(format="%A, %e %B %Y %R %Z",
|
||||||
|
timezone="Europe/Berlin") }}</time
|
||||||
|
></em
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
{% endif %} {% if page.extra.author and page.extra.author != "" %}
|
{% endif %}
|
||||||
<p>
|
|
||||||
<span class="article-metadata-label">Author(s)</span>: {{page.extra.author}}
|
|
||||||
</p>
|
|
||||||
{% else %}
|
|
||||||
<p>
|
|
||||||
<span class="article-metadata-label">Author</span>: Jonas Tobias Hopusch
|
|
||||||
</p>
|
|
||||||
{% endif %} {% if page.extra.license and page.extra.license != "" %}
|
|
||||||
<p id="article-license">
|
|
||||||
<span class="article-metadata-label"
|
|
||||||
>Article is provided under the following license</span
|
|
||||||
>: {{page.extra.license}}
|
|
||||||
</p>
|
|
||||||
{% else %}
|
|
||||||
<p class="article-missinglicense">
|
|
||||||
No license is granted for this article. All rights reserved.
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
<hr id="last-article-metadata" />
|
<hr id="last-article-metadata" />
|
||||||
<div>{{ page.content | safe }}</div>
|
<div>{{ page.content | safe }}</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
|
@ -5,5 +5,7 @@
|
||||||
<li><a href="{{ page.permalink | safe }}">{{ page.title }}</a></li>
|
<li><a href="{{ page.permalink | safe }}">{{ page.title }}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
<div>{{ section.content | safe }}</div>
|
<div>
|
||||||
|
{{ section.content | safe }}
|
||||||
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
Loading…
Reference in a new issue