Initial version

This commit is contained in:
Fabian Hauser 2024-09-14 18:18:15 +03:00
commit 594b935570
29 changed files with 1992 additions and 0 deletions

8
.gitattributes vendored Normal file
View file

@ -0,0 +1,8 @@
*.webp filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mpv filter=lfs diff=lfs merge=lfs -text
*.ogv filter=lfs diff=lfs merge=lfs -text

42
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,42 @@
name: CI
on:
push:
pull_request:
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Run `nix build`
run: nix build .
- uses: actions/upload-pages-artifact@v3
with:
path: result/
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
with:
preview: true

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
/result*
/src/public/
/src/static/processed_images/
/src/themes/tabi

33
cache.nix Normal file
View file

@ -0,0 +1,33 @@
{ pkgs, ... }:
pkgs.writeShellApplication {
name = "cache";
meta.description = "Access the website's attic cache.";
runtimeInputs = [
pkgs.attic-client
pkgs.findutils
pkgs.gnugrep
];
text = ''
SERVER="https://attic.qo.is/"
CACHE_NAME="qois"
CACHE_REPO="$CACHE_NAME:qois-infrastructure"
if [ -z "$ATTIC_AUTH_TOKEN" ]; then
echo "Please set the \$ATTIC_AUTH_TOKEN environment variable to access the cache."
exit 3
fi
attic login "$CACHE_NAME" "$SERVER" "$ATTIC_AUTH_TOKEN"
case "$1" in
use)
attic use "$CACHE_REPO"
;;
push)
RESULT_PATH="./result"
# Add build dependencies as well
nix-store -qR --include-outputs "$(nix-store -qd $RESULT_PATH)" | grep -v '\.drv$' \
| xargs attic push "$CACHE_REPO" "$RESULT_PATH"
;;
esac
'';
}

131
flake.lock generated Normal file
View file

@ -0,0 +1,131 @@
{
"nodes": {
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"utils": "utils"
},
"locked": {
"lastModified": 1718194053,
"narHash": "sha256-FaGrf7qwZ99ehPJCAwgvNY5sLCqQ3GDiE/6uLhxxwSY=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "3867348fa92bc892eba5d9ddb2d7a97b9e127a8a",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1702272962,
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1725983898,
"narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"deploy-rs": "deploy-rs",
"nixpkgs-unstable": "nixpkgs-unstable",
"tabi": "tabi"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tabi": {
"flake": false,
"locked": {
"lastModified": 1725900558,
"narHash": "sha256-/H++gzEe+bvw57aUIEvPe5hNjZOIqo7FEaGezCTau9w=",
"owner": "welpo",
"repo": "tabi",
"rev": "1b11f4b321d0ae52179d88cc3ecd1b72ef2b37ae",
"type": "github"
},
"original": {
"owner": "welpo",
"ref": "main",
"repo": "tabi",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

95
flake.nix Normal file
View file

@ -0,0 +1,95 @@
{
inputs = {
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
deploy-rs.url = "github:serokell/deploy-rs";
tabi = {
url = "github:welpo/tabi/main";
flake = false;
};
};
outputs =
{
self,
nixpkgs-unstable,
deploy-rs,
tabi,
...
}@inputs:
let
system = "x86_64-linux";
domain = "fabianhauser.ch";
version = "2022";
pkgs = import nixpkgs-unstable { inherit system; };
deployPkgs = import nixpkgs-unstable {
inherit system;
overlays = [
deploy-rs.overlay
(self: super: {
deploy-rs = {
inherit (pkgs) deploy-rs;
lib = super.deploy-rs.lib;
};
})
];
};
preparePhase = ''
rm -rf themes/tabi
ln -s ${tabi} themes/tabi
'';
in
{
formatter.${system} = pkgs.nixfmt-rfc-style;
checks.${system}.default = pkgs.stdenv.mkDerivation {
inherit version;
name = "${domain}-${version}";
buildInputs = [ pkgs.zola ];
src = ./src;
installPhase = ''
set -euo pipefail
${preparePhase}
zola --root . check
mkdir $out
'';
};
packages.${system}.default = pkgs.stdenv.mkDerivation {
inherit version;
name = "${domain}-${version}";
buildInputs = [ pkgs.zola ];
src = ./src;
installPhase = ''
${preparePhase}
zola --root . build --output-dir $out
'';
};
deploy.nodes.lindberg-webapps = {
hostname = "lindberg-webapps.backplane.net.qo.is";
profiles.${domain} = {
sshUser = "nginx-${domain}";
path = deployPkgs.deploy-rs.lib.activate.noop self.packages.${system}.default;
profilePath = "/var/lib/nginx-${domain}/root";
};
};
apps.${system} = {
default =
let
zola = pkgs.writeShellScriptBin "zola" ''
cd src
${preparePhase}
${pkgs.zola}/bin/zola --root . ''${@}
'';
in
{
type = "app";
program = "${zola}/bin/zola";
};
deploy = {
type = "app";
program = "${pkgs.deploy-rs}/bin/deploy";
};
};
};
}

46
src/config.toml Normal file
View file

@ -0,0 +1,46 @@
title = "FabianHauser.ch"
base_url = "https://fabianhauser.ch"
# Build options
compile_sass = false
minify_html = false
ignored_content = [".gitignore", ".gitkeep"]
# Theme
theme = "tabi"
#quick_navigation_buttons = true
# Search
build_search_index = true
# Feed
generate_feeds = true
feed_limit = 40
# Taxanomy
taxonomies = [
{name = "tags", feed = true}, # each tag will have its own feed
{name = "tags"}, # you can have taxonomies with the same name in multiple languages
{name = "categories", paginate_by = 5}, # 5 items per page for a term
]
[link_checker]
external_level = "warn"
[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
[slugify]
paths = "safe"
taxonomies = "safe"
anchors = "on"
[extra]
author = "Fabian Hauser"
menu = [
{ name = "about", url = "", trailing_slash = true },
{ name = "projects", url = "projects", trailing_slash = true },
]

24
src/content/_index.md Normal file
View file

@ -0,0 +1,24 @@
+++
#path = "/"
title = "About"
template = "home.html"
[extra]
header = {title = "Hi! I'm Fabian.", img = "img/profile.webp" }
+++
Im a passionate traveller, mountaineer, [photographer](https://portfolio.pixelfed.social/fabianhauser) and lifelong learner.
Currently, I'm taking a sabbatical to travel eastern Asia 🌏
Professionally, I've been active in computer science and teaching with a focus on software engineering, distributed systems and [open source software](./projects).
Before, I was bringing secure and privacy first communication to the general public at [Threema](https://threema.ch/)
and giving lectures on Software Engineering at [OST Fachhochschule Ostschweiz](https://www.ost.ch/).
 
[📬 fabian@fh2.ch](mailto:fabian@fh2.ch)
[📷 Pixelfed Portfolio](https://portfolio.pixelfed.social/fabianhauser)
[⚙️ github.com/fabianhauser](https://github.com/fabianhauser)
🔒 **GPG-Key**: [`0x8a52a140bebf7d2c`](https://keys.openpgp.org/search?q=fabian%40fh2.ch)
     Fingerprint: `50B7 11F4 3DFD 2018 DCE6 E8D0 8A52 A140 BEBF 7D2C`

View file

@ -0,0 +1,7 @@
+++
title = "Projects"
sort_by = "weight"
template = "cards.html"
+++

View file

@ -0,0 +1,9 @@
+++
title = "NixOS"
description = "Contributor and package maintainer"
weight = 1
[extra]
local_image = "img/projects/nixos.svg"
link_to = "https://github.com/NixOS"
+++

View file

@ -0,0 +1,9 @@
+++
title = "open\\HSR"
description = "Association to advance the open source community and usage of alternative operation systems (particularly Linux) at HSR University of Applied Sciences (now OST)."
weight = 1
[extra]
local_image = "img/projects/open-hsr-logo-transparent.svg"
link_to = "https://github.com/openhsr"
+++

View file

@ -0,0 +1,9 @@
+++
title = "Redbackup"
description = "Prototype of a distributed backups software written in Rust.\nJoint study project with Raphael Zimmermann."
weight = 1
[extra]
local_image = "img/projects/redbackup.png"
link_to = "https://redbackup.github.io/"
+++

View file

@ -0,0 +1,9 @@
+++
title = "XMPP-Grid Broker"
description = "Feasibility study and implementation prototype of [RFC8600](https://tools.ietf.org/html/rfc8600) as contribution to the (then ongoing) standardization process.\nJoint bachelor thesis with Raphael Zimmermann."
weight = 1
[extra]
local_image = "img/projects/xmpp-grid-broker.svg"
link_to = "https://xmpp-grid-broker.github.io/"
+++

88
src/content/projects.md Normal file
View file

@ -0,0 +1,88 @@
+++
title = "Projects"
weight = 5
[extra]
show_reading_time = false
+++
A selection of projects and associations I am (or was) involved with.
## Computer Science & Open Source
{% references() %}
[**NixOS**](https://nixos.org/)
Package Maintainer and active community member.
[**Redbackup**](https://github.com/redbackup)
Prototype of a distributed backups software written in
[Rust](https://www.rust-lang.org/).
Joint study project with [Raphael Zimmermann](https://www.raphael.li).
[**XMPP-Grid Broker**](https://xmpp-grid-broker.github.io)
Feasibility study and implementation prototype of
[RFC8600](https://tools.ietf.org/html/rfc8600) as contribution to
the (then ongoing) standardization process.
Joint bachelor thesis with [Raphael Zimmermann](https://www.raphael.li).
**[open\\HSR](https://openhsr.ch/)**: **Co-founder and former board
member**
Association to advance the open source community and usage of
alternative operation systems (particularly Linux) at HSR University
of Applied Sciences (now OST).
**open\\HSR Git/GitHub Workshop** 2019
**open\\HSR Linux Workshop** 2020
**open\\HSR Connect**
Prototype of a lecture slide, documents and notes managing tool for
students.
[**Swiss Python Summit**](https://python-summit.ch) helper (2017,
2018)
[**ZuriHac**](https://www.zurihac.info) attendee/helper (2019)
[**Dafny programming language**](https://github.com/dafny-lang) and,
in particular, the [VSCode IDE Dafny integration](https://github.com/dafnyvscode) with a
[LSP](https://microsoft.github.io/language-server-protocol/)
integration
[**Das Studentenportal**](https://studentenportal.ch/)
Platform for students to exchange learning aids, announcing events
(mostly parties) and sharing funny anecdotes.
**Various small side projects** -- take a look at my [GitHub profile](https://github.com/fabianhauser/)
{% end %}
## Various
{% references() %}
[**Coredump**](https://www.coredump.ch) Hacker- and Makerspace
Rapperswil-Jona
[**Various lecture
summaries**](https://github.com/michiwieland/hsr-zusammenfassungen)
together with [Michael Wieland](https://michiwieland.dev/)
[**Little House on the
Prairie**](https://littlehouseontheprairie.ch) (website)
[**Emmentaler Filmtage**](https://emmentaler-filmtage.ch) a short
film festival in the rural area of Emmental (Switzerland, 2009-2014)
[**Klettergarten Ilanz/Schnaus**](https://www.klettern-gr.ch/)
realization of a climbing area near Ilanz and Schnaus and former
website
[**Spielgruppe Ilanz**](https://spielgruppe-ilanz.ch/) former
website and technology support
{% end %}

0
src/static/.gitkeep Normal file
View file

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4152867c1b4123ee6e3c9de5dc8f0de3cbcb9324f6cc8acc40523e889d3fe6a8
size 46022

View file

@ -0,0 +1,459 @@
<?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://creativecommons.org/ns#"
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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="435.58978mm"
height="136.68491mm"
viewBox="0 0 1543.4284 484.31659"
id="svg2"
version="1.1"
inkscape:version="0.92.0 r15299"
sodipodi:docname="nixos-hex.svg">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient5562">
<stop
style="stop-color:#699ad7;stop-opacity:1"
offset="0"
id="stop5564" />
<stop
id="stop5566"
offset="0.24345198"
style="stop-color:#7eb1dd;stop-opacity:1" />
<stop
style="stop-color:#7ebae4;stop-opacity:1"
offset="1"
id="stop5568" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5053">
<stop
style="stop-color:#415e9a;stop-opacity:1"
offset="0"
id="stop5055" />
<stop
id="stop5057"
offset="0.23168644"
style="stop-color:#4a6baf;stop-opacity:1" />
<stop
style="stop-color:#5277c3;stop-opacity:1"
offset="1"
id="stop5059" />
</linearGradient>
<linearGradient
id="linearGradient5960"
inkscape:collect="always">
<stop
id="stop5962"
offset="0"
style="stop-color:#637ddf;stop-opacity:1" />
<stop
style="stop-color:#649afa;stop-opacity:1"
offset="0.23168644"
id="stop5964" />
<stop
id="stop5966"
offset="1"
style="stop-color:#719efa;stop-opacity:1" />
</linearGradient>
<linearGradient
y2="515.97058"
x2="282.26105"
y1="338.62445"
x1="213.95642"
gradientTransform="translate(983.36076,601.38885)"
gradientUnits="userSpaceOnUse"
id="linearGradient5855"
xlink:href="#linearGradient5960"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5562"
id="linearGradient5384"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(70.650339,-1055.1511)"
x1="200.59668"
y1="351.41116"
x2="290.08701"
y2="506.18814" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5053"
id="linearGradient5386"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(864.69589,-1491.3405)"
x1="-584.19934"
y1="782.33563"
x2="-496.29703"
y2="937.71399" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.34760742"
inkscape:cx="803.54996"
inkscape:cy="186.45699"
inkscape:document-units="px"
inkscape:current-layer="g5329"
showgrid="false"
inkscape:window-width="1366"
inkscape:window-height="706"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:snap-global="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer7"
inkscape:label="bg"
style="display:none">
<rect
transform="translate(-132.5822,958.04022)"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect5389"
width="1543.4283"
height="483.7439"
x="132.5822"
y="-957.77832" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="guide"
style="display:none;opacity:0.51599995"
transform="translate(-132.5822,958.04022)">
<rect
y="-957.77832"
x="132.5822"
height="483.7439"
width="1543.4283"
id="rect5350"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d4d4d4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#9b9b9b;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect5346"
width="1496.443"
height="435.68069"
x="155.77646"
y="-933.38721"
inkscape:export-xdpi="17.971878"
inkscape:export-ydpi="17.971878" />
<rect
y="-851.65918"
x="159.02695"
height="272.58423"
width="1492.5731"
id="rect5348"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#848484;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
</g>
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="logo-guide"
style="display:none"
transform="translate(-132.5822,958.04022)">
<rect
y="-958.02759"
x="132.65129"
height="484.30399"
width="550.41602"
id="rect5379"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5c201e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nix-wiki.png"
inkscape:export-xdpi="22.07"
inkscape:export-ydpi="22.07" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c24a46;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect5372"
width="501.94415"
height="434.30405"
x="156.12303"
y="-933.02759"
inkscape:export-filename="/home/tim/dev/nix/homepage/logo/nixos-logo-only-hires-print.png"
inkscape:export-xdpi="212.2"
inkscape:export-ydpi="212.2" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#d98d8a;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect5381"
width="24.939611"
height="24.939611"
x="658.02826"
y="-958.04022" />
</g>
<g
inkscape:label="print-logo"
inkscape:groupmode="layer"
id="layer1"
style="display:inline"
sodipodi:insensitive="true"
transform="translate(-132.5822,958.04022)">
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
id="path4861"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
id="use4863"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
id="use4865"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#7ebae4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
id="use4867"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="path4873"
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="use4875"
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="use4877"
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#5277c3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
<g
id="layer2"
inkscape:label="guides"
style="display:none"
transform="translate(72.039038,-1799.4476)">
<path
d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z"
inkscape:randomized="0"
inkscape:rounded="0"
inkscape:flatsided="true"
sodipodi:arg2="1.5707963"
sodipodi:arg1="1.0471976"
sodipodi:r2="217.25499"
sodipodi:r1="250.86446"
sodipodi:cy="377.47382"
sodipodi:cx="335.17407"
sodipodi:sides="6"
id="path6032"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.23600003;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
sodipodi:type="star" />
<path
transform="translate(0,-308.26772)"
sodipodi:type="star"
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#4e4d52;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="path5875"
sodipodi:sides="6"
sodipodi:cx="335.17407"
sodipodi:cy="685.74158"
sodipodi:r1="100.83495"
sodipodi:r2="87.32563"
sodipodi:arg1="1.0471976"
sodipodi:arg2="1.5707963"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 385.59154,773.06721 -100.83495,0 -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" />
<path
transform="translate(0,-308.26772)"
sodipodi:nodetypes="ccccccccc"
inkscape:connector-curvature="0"
id="path5851"
d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z"
style="fill:url(#linearGradient5855);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.41499999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#c53a3a;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect5884"
width="48.834862"
height="226.22897"
x="-34.74221"
y="446.17056"
transform="matrix(0.8660254,-0.5,0.5,0.8660254,0,0)" />
<path
transform="translate(0,-308.26772)"
sodipodi:type="star"
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.50899999;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="path3428"
sodipodi:sides="6"
sodipodi:cx="223.93674"
sodipodi:cy="878.63831"
sodipodi:r1="28.048939"
sodipodi:r2="24.291094"
sodipodi:arg1="0"
sodipodi:arg2="0.52359878"
inkscape:flatsided="true"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" />
<use
x="0"
y="0"
xlink:href="#rect5884"
id="use4252"
transform="matrix(0.5,0.8660254,-0.8660254,0.5,558.02636,12.372992)"
width="100%"
height="100%" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:0.6507937;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect4254"
width="5.3947482"
height="115.12564"
x="545.71014"
y="467.07007"
transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,-308.26772)" />
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="gradient-logo"
style="display:inline;opacity:1"
sodipodi:insensitive="true"
transform="translate(-132.5822,958.04022)">
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="path3336-6"
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
style="opacity:1;fill:url(#linearGradient5384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<use
height="100%"
width="100%"
transform="rotate(60,407.11155,-715.78724)"
id="use3439-6"
inkscape:transform-center-y="151.59082"
inkscape:transform-center-x="124.43045"
xlink:href="#path3336-6"
y="0"
x="0" />
<use
height="100%"
width="100%"
transform="rotate(-60,407.31177,-715.70016)"
id="use3445-0"
inkscape:transform-center-y="75.573958"
inkscape:transform-center-x="-168.20651"
xlink:href="#path3336-6"
y="0"
x="0" />
<use
height="100%"
width="100%"
transform="rotate(180,407.41868,-715.7565)"
id="use3449-5"
inkscape:transform-center-y="-139.94592"
inkscape:transform-center-x="59.669705"
xlink:href="#path3336-6"
y="0"
x="0" />
<path
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5386);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
id="path4260-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<use
height="100%"
width="100%"
transform="rotate(120,407.33916,-716.08356)"
id="use4354-5"
xlink:href="#path4260-0"
y="0"
x="0"
style="display:inline" />
<use
height="100%"
width="100%"
transform="rotate(-120,407.28823,-715.86995)"
id="use4362-2"
xlink:href="#path4260-0"
y="0"
x="0"
style="display:inline" />
</g>
<g
style="display:inline"
inkscape:label="text-vegur"
id="g5329"
inkscape:groupmode="layer"
transform="translate(-132.5822,958.04022)">
<g
aria-label="Nix"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:395.09683228px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text5407">
<path
d="m 969.15319,-847.11833 h -30.81755 v 139.86428 c 0,19.75484 0.79019,50.96749 1.97548,85.73601 h -1.18529 c -15.40877,-28.84207 -32.79303,-56.49884 -45.04104,-75.46349 l -96.79872,-150.1368 h -42.27536 v 267.87565 h 30.81755 v -139.86427 c 0,-19.75485 -0.79019,-56.89395 -1.97548,-91.26737 h 1.18529 c 22.91561,39.90478 36.34891,62.0302 48.99201,80.99485 l 96.79872,150.13679 h 38.32439 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur"
id="path4683" />
<path
d="m 1027.8251,-579.24268 h 33.1881 v -191.22686 h -33.1881 z m 16.594,-219.27874 c 11.4578,0 20.5451,-9.08722 20.5451,-20.54503 0,-11.45781 -9.0873,-20.54504 -20.5451,-20.54504 -11.4578,0 -20.545,9.08723 -20.545,20.54504 0,11.45781 9.0872,20.54503 20.545,20.54503 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur"
id="path4685" />
<path
d="m 1267.7785,-770.46954 h -37.9293 l -46.6214,70.32723 h -1.1853 l -45.0411,-70.32723 h -41.09 l 68.3517,93.24285 v 1.18529 l -70.7223,96.79872 h 37.9293 l 49.7822,-75.85859 h 1.1853 l 49.7822,75.85859 h 41.09 l -72.3027,-98.37911 v -1.18529 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur"
id="path4687" />
</g>
<g
aria-label="O"
transform="scale(0.95067318,1.0518862)"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:367.48727417px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text5356">
<path
d="m 1468.5915,-800.79725 c -66.1477,0 -120.5358,48.14083 -120.5358,128.25306 0,80.11223 54.3881,128.25306 120.5358,128.25306 66.1477,0 120.5359,-48.14083 120.5359,-128.25306 0,-80.11223 -54.3882,-128.25306 -120.5359,-128.25306 z m 0,24.98914 c 49.2433,0 86.727,36.74872 86.727,103.26392 0,66.5152 -37.4837,103.26392 -86.727,103.26392 -49.2433,0 -86.727,-36.74872 -86.727,-103.26392 0,-66.5152 37.4837,-103.26392 86.727,-103.26392 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur"
id="path4680" />
</g>
<g
aria-label="S"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:386.55480957px;line-height:125%;font-family:Carlito;-inkscape-font-specification:Carlito;letter-spacing:0px;word-spacing:0px;display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text5364">
<path
d="m 1523.761,-773.88643 c 0,37.10927 19.3277,57.21012 64.1681,75.37819 34.4034,13.91598 48.3193,26.28573 48.3193,51.79835 0,30.92438 -25.126,46.38657 -58.3697,46.38657 -17.395,0 -37.1093,-2.70588 -58.7564,-10.05042 l -3.479,26.67228 c 18.9412,6.95799 39.8152,9.66387 60.6891,9.66387 51.7984,0 95.0925,-26.28573 95.0925,-79.24374 0,-36.7227 -22.4202,-54.50422 -67.6471,-72.6723 -30.1512,-11.9832 -44.8403,-24.73951 -44.8403,-51.41179 0,-25.89917 22.4202,-40.2017 50.6387,-40.2017 16.6218,0 34.7899,4.2521 47.5462,9.27732 l 3.479,-26.28573 c -14.6891,-6.18488 -32.8572,-9.27732 -52.958,-9.27732 -47.5463,0 -83.8824,27.4454 -83.8824,69.96642 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Vegur;-inkscape-font-specification:Vegur"
id="path4677" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -0,0 +1,169 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
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"
viewBox="0 0 512 337.84"
version="1.1"
id="svg3855"
sodipodi:docname="open-hsr-logo.svg"
inkscape:version="0.92.2 2405546, 2018-03-11">
<metadata
id="metadata3859">
<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>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1440"
id="namedview3857"
showgrid="false"
inkscape:zoom="2.1132812"
inkscape:cx="192.8281"
inkscape:cy="168.92"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg3855" />
<defs
id="defs3815">
<style
id="style3806">.cls-1{stroke:#ababab;stroke-miterlimit:2.61;stroke-width:0.22px;fill:url(#GradientFill_1);}.cls-2{fill:#1a5075;}.cls-3{fill:#c61e1e;}.cls-4{fill:#c61d1d;}.cls-4,.cls-5,.cls-6,.cls-7,.cls-8,.cls-9{fill-rule:evenodd;}.cls-5{fill:#d7d7d7;}.cls-6{fill:#e6361f;}.cls-7{fill:#8b8c8c;}.cls-8{fill:#0083bc;}.cls-9{fill:#1a4f74;}.cls-10{fill:none;}</style>
<radialGradient
id="GradientFill_1"
cx="256"
cy="169"
r="259.51"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#fff"
id="stop3808" />
<stop
offset="0.31"
stop-color="#fff"
id="stop3810" />
<stop
offset="1"
stop-color="#f6f6f6"
id="stop3812" />
</radialGradient>
</defs>
<title
id="title3817">open-hsr-logo</title>
<g
id="open_HSR"
data-name="open\HSR">
<path
class="cls-2"
d="M231,466.55c0,8.05-5.71,11.75-11.61,11.75-6.44,0-11.38-4.23-11.38-11.34s4.68-11.65,11.74-11.65C226.49,455.3,231,459.93,231,466.55Zm-15.93.23c0,3.78,1.57,6.61,4.5,6.61,2.66,0,4.36-2.65,4.36-6.61,0-3.29-1.26-6.62-4.36-6.62C216.28,460.16,215.06,463.53,215.06,466.77Z"
transform="translate(-50.5 -227.5)"
id="path3822" />
<path
class="cls-2"
d="M235.22,463.17c0-2.88-.09-5.36-.18-7.38H241l.31,3.06h.09a8.44,8.44,0,0,1,7.33-3.55c4.81,0,9.13,4.18,9.13,11.2,0,8-5.08,11.79-10,11.79a6.83,6.83,0,0,1-5.71-2.52h-.09v10.93h-6.84Zm6.84,5.17a6.79,6.79,0,0,0,.14,1.44,4.14,4.14,0,0,0,4,3.24c3,0,4.72-2.48,4.72-6.21,0-3.51-1.57-6.17-4.63-6.17a4.3,4.3,0,0,0-4.09,3.46,5.28,5.28,0,0,0-.14,1.21Z"
transform="translate(-50.5 -227.5)"
id="path3824" />
<path
class="cls-2"
d="M267.53,469c.23,2.83,3,4.18,6.21,4.18a19.38,19.38,0,0,0,6.07-.9l.9,4.63a21.71,21.71,0,0,1-8,1.35c-7.47,0-11.74-4.32-11.74-11.21,0-5.58,3.46-11.74,11.11-11.74,7.11,0,9.81,5.54,9.81,11a16.27,16.27,0,0,1-.23,2.7Zm8.05-4.68c0-1.67-.72-4.46-3.87-4.46-2.88,0-4,2.61-4.23,4.46Z"
transform="translate(-50.5 -227.5)"
id="path3826" />
<path
class="cls-2"
d="M286,462.81c0-2.75-.09-5.08-.18-7h5.94l.31,3h.13A8.06,8.06,0,0,1,299,455.3c4.5,0,7.87,3,7.87,9.45v13h-6.84V465.6c0-2.83-1-4.77-3.46-4.77a3.65,3.65,0,0,0-3.46,2.56,4.71,4.71,0,0,0-.27,1.71V477.8H286Z"
transform="translate(-50.5 -227.5)"
id="path3828" />
<path
class="cls-3"
d="M319.28,479.6,310.19,447h4.54l9,32.62Z"
transform="translate(-50.5 -227.5)"
id="path3830" />
<path
class="cls-3"
d="M334.36,447.47v11.66h11.29V447.47h6.84V477.8h-6.84V465.11H334.36V477.8h-6.88V447.47Z"
transform="translate(-50.5 -227.5)"
id="path3832" />
<path
class="cls-3"
d="M358.7,470.73a17.51,17.51,0,0,0,7.6,1.89c3.15,0,4.81-1.3,4.81-3.29s-1.44-3-5.08-4.27c-5-1.75-8.32-4.54-8.32-9,0-5.17,4.32-9.13,11.47-9.13a18.58,18.58,0,0,1,7.74,1.53L375.4,454a14.42,14.42,0,0,0-6.34-1.44c-3,0-4.41,1.35-4.41,2.92,0,1.94,1.71,2.79,5.63,4.28,5.35,2,7.87,4.77,7.87,9,0,5.08-3.91,9.41-12.24,9.41a19.86,19.86,0,0,1-8.59-1.84Z"
transform="translate(-50.5 -227.5)"
id="path3834" />
<path
class="cls-3"
d="M382.78,447.88a60.22,60.22,0,0,1,9.13-.63c4.5,0,7.65.67,9.81,2.38a7.7,7.7,0,0,1,2.79,6.34,8,8,0,0,1-5.35,7.47v.13c2.11.86,3.28,2.88,4,5.67.94,3.42,1.89,7.38,2.47,8.55h-7a38,38,0,0,1-2.12-7.06c-.81-3.78-2.12-4.82-4.9-4.86h-2.07V477.8h-6.79Zm6.79,13h2.7c3.42,0,5.44-1.71,5.44-4.37s-1.89-4.18-5-4.23a17.14,17.14,0,0,0-3.1.22Z"
transform="translate(-50.5 -227.5)"
id="path3836" />
</g>
<g
id="symbol">
<path
class="cls-4"
d="M364.46,398V377.59a13.17,13.17,0,0,1-10.63-7.72h-38l5.18,3,14.49,8.36h0L350,389.6,364.46,398Zm0-46.68V330.9L350,339.26l-14.49,8.37L321,356l-5.19,3h38a13.17,13.17,0,0,1,10.63-7.71Zm-29,29.81h0Z"
transform="translate(-50.5 -227.5)"
id="path3839" />
<path
class="cls-5"
d="M306.5,353.62V297.44l-14.15,8.18V329.1l14.15,24.52Zm-14.15,2.57v-5.61L297.2,359h0Zm0-50.58-.34.19-3.15,1.82a13.16,13.16,0,0,1-1.37,13.07l4.85,8.41V305.61Zm0,45v5.61L292,356l-14.49-8.36h0L263,339.26l-14.49-8.36L263,322.53l3.16-1.82a13.17,13.17,0,0,0,12,5.35Z"
transform="translate(-50.5 -227.5)"
id="path3841" />
<path
class="cls-6"
d="M320.66,305.61l.33.19,3.15,1.82a13.17,13.17,0,0,0,1.37,13.07l-4.86,8.41V305.61Zm0,50.57L321,356l14.49-8.36L350,339.26l14.49-8.36L350,322.54l-3.16-1.82a13.16,13.16,0,0,1-12,5.35l-14.16,24.52ZM306.5,297.43l14.16,8.18V329.1L306.5,353.63h0V330.9h0V297.43Zm14.16,53.15L315.8,359l4.86-2.8v-5.61ZM306.5,330.9h0Z"
transform="translate(-50.5 -227.5)"
id="path3843" />
<path
class="cls-7"
d="M248.54,330.9v20.37A13.17,13.17,0,0,1,259.18,359h38L292,356l-14.49-8.36h0L263,339.26l-14.49-8.36Zm0,46.55v20.37L263,389.46l14.49-8.37L292,372.73l5.19-3h-38a13.17,13.17,0,0,1-10.64,7.72Zm29-29.82h0Z"
transform="translate(-50.5 -227.5)"
id="path3845" />
<path
class="cls-8"
d="M306.5,431.28l-14.15-8.18V399.61L306.5,375.1v22.72h0v33.46Zm-14.15-53.15,4.85-8.41-4.85,2.8v5.61Zm14.15,19.68h0Zm-14.15,25.29-.33-.19-3.16-1.82A13.18,13.18,0,0,0,287.49,408l4.85-8.41v23.49Zm0-50.57-.34.19-14.49,8.36L263,389.46l-14.49,8.36L263,406.18l3.16,1.82a13.18,13.18,0,0,1,12-5.35l14.15-24.52Z"
transform="translate(-50.5 -227.5)"
id="path3847" />
<path
class="cls-9"
d="M320.66,372.53l.33.19,14.49,8.36L350,389.46l14.49,8.36L350,406.19,346.81,408a13.16,13.16,0,0,0-12-5.35l-14.15-24.51v-5.61Zm0,50.57.33-.19,3.15-1.82A13.17,13.17,0,0,1,325.51,408l-4.86-8.41Zm-4.86-53.38,4.86,2.8v5.61l-4.86-8.41Zm4.86,29.89L306.5,375.1v22.72h0v33.46l14.16-8.18Z"
transform="translate(-50.5 -227.5)"
id="path3849" />
<rect
id="_Slice_"
data-name="&lt;Slice&gt;"
class="cls-10"
width="512"
height="337" />
<rect
id="_Slice_2"
data-name="&lt;Slice&gt;"
class="cls-10"
x="196"
y="70"
width="119"
height="134" />
<rect
id="_Slice_3"
data-name="&lt;Slice&gt;"
class="cls-10"
width="512"
height="297" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:83666c41198a71b31da0dae44b6a0d8fa246d27cc908b84ffae8503e1369749a
size 46667

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1,277 @@
<?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://creativecommons.org/ns#"
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:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="128px"
height="128px"
viewBox="0 0 128 128"
version="1.1"
id="SVGRoot"
inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
sodipodi:docname="drawing3.svg">
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="15.320312"
inkscape:cx="64"
inkscape:cy="107.99397"
inkscape:document-units="px"
inkscape:current-layer="g970"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1382"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="0"
inkscape:grid-bbox="true" />
<defs
id="defs5055">
<linearGradient
inkscape:collect="always"
id="linearGradient927">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop923" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop925" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient901">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop897" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop899" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient893">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop889" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop891" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient885">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop881" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop883" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient877">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop873" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop875" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient877"
id="radialGradient879"
cx="33.549805"
cy="64"
fx="33.549805"
fy="64"
r="16.793787"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(4.1659372,3.1813544,-3.1014181,4.0612621,111.66837,-329.6819)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient885"
id="radialGradient887"
cx="34.418316"
cy="70.478714"
fx="34.418316"
fy="70.478714"
r="21.276386"
gradientTransform="matrix(0.94636053,-0.15290965,-0.13840337,1.1021964,39.513037,-22.054198)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient893"
id="radialGradient895"
cx="92.089401"
cy="45.352531"
fx="92.089401"
fy="45.352531"
r="19.989233"
gradientTransform="matrix(0.97674659,0.25000585,-0.37849802,1.0777978,22.045582,-53.776865)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient901"
id="radialGradient903"
cx="97.890762"
cy="-11.697897"
fx="97.890762"
fy="-11.697897"
r="15.467961"
gradientTransform="matrix(0.72385363,0.00952214,-0.01822716,1.3855915,8.4162376,-16.72378)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient901"
id="linearGradient913"
x1="46.845825"
y1="95.29631"
x2="56.568542"
y2="111.91332"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(13.471024,-23.861547)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient893"
id="linearGradient921"
x1="80.610176"
y1="84.689713"
x2="100.58594"
y2="70.370796"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(13.471024,-23.861547)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient927"
id="linearGradient931"
x1="82.554718"
y1="20.519768"
x2="112.07642"
y2="35.369011"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(20.790589,-17.095772)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient927"
id="linearGradient942"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(14.622521,-18.20057)"
x1="82.554718"
y1="20.519768"
x2="112.07642"
y2="35.369011" />
</defs>
<metadata
id="metadata5058">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="background">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:1.06224072"
id="path5614"
cx="64"
cy="64"
r="64" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="globes">
<g
id="g940"
transform="translate(3.393026,-2.2374303)">
<g
id="g970"
transform="translate(-2.6584697,1.2680845)">
<circle
style="fill:url(#linearGradient942);fill-opacity:1;stroke-width:1.66666663"
id="path5617-3"
cx="101.24695"
cy="9.6406107"
r="13.258253"
transform="rotate(18.455919)" />
<circle
style="fill:url(#linearGradient921);fill-opacity:1;stroke-width:1.19999993"
id="path5617-3-6"
cx="103.83937"
cy="62.161877"
r="9.5459423"
transform="rotate(18.455919)" />
<circle
style="fill:url(#linearGradient913);fill-opacity:1"
id="path5617-3-6-7"
cx="60.119175"
cy="79.080032"
r="7.9549522"
transform="rotate(18.455919)" />
<rect
style="fill:url(#radialGradient895);fill-opacity:1;stroke-width:1.28369522"
id="rect5664-5"
width="39.978466"
height="6.5370798"
x="74.838509"
y="14.858341"
ry="0"
transform="matrix(0.75059318,0.66076461,-0.67130663,0.74117974,0,0)" />
<rect
style="fill:url(#radialGradient903);fill-opacity:1"
id="rect5664-5-3"
width="30.935923"
height="5.126524"
x="64.020081"
y="-34.563419"
ry="0"
transform="rotate(90.093125)" />
<circle
style="fill:url(#radialGradient879);fill-opacity:1;stroke-width:1.08559716"
id="path5617"
r="18.231287"
cy="36.972713"
cx="52.944012"
transform="rotate(18.455919)" />
<rect
style="fill:url(#radialGradient887);fill-opacity:1;stroke-width:1.28537655"
id="rect5664-5-36"
width="40.270264"
height="6.5067225"
x="42.195553"
y="47.110924"
ry="0"
transform="matrix(0.98377379,-0.17941331,0.14162146,0.98992089,0,0)" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

0
src/templates/.gitkeep Normal file
View file

19
src/templates/home.html Normal file
View file

@ -0,0 +1,19 @@
{% extends "base.html" %}
{% block main_content %}
<main>
{% if section.extra.section_path -%}
{% set extra_section = get_section(path=section.extra.section_path) %}
{% endif -%}
{%- if section.extra.header %}
{%- include "partials/home_banner.html" -%}
{% endif -%}
</main>
{% if paginator %}
{%- include "partials/paginate.html" -%}
{% endif %}
{% endblock main_content %}

View file

@ -0,0 +1,27 @@
{% extends "base.html" %}
{% block main_content %}
{% if section.extra.section_path -%}
{% set section = get_section(path=section.extra.section_path) %}
{% endif -%}
{{ macros_page_header::page_header(title=section.title) }}
<main>
{% if section.content -%}
<div id="page-content">{{ section.content | safe }}</div>
{% endif %}
{%- if paginator %}
{%- set show_pages = paginator.pages -%}
{% else %}
{%- set show_pages = section.pages -%}
{% endif -%}
{%- include "partials/journey_pages.html" -%}
</main>
{% if paginator %}
{%- include "partials/paginate.html" -%}
{% endif %}
{% endblock main_content %}

View file

@ -0,0 +1,42 @@
{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}
<div class="cards">
{%- for page in show_pages %}
<div class="card">
{# Determine which URL to use, default is page.permalink #}
{%- if page.extra.link_to and config.markdown.external_links_target_blank -%}
{%- set blank_target = "target=_blank" -%}
{%- else -%}
{%- set blank_target = "" -%}
{%- endif -%}
{% set target_url = page.extra.link_to | default(value=page.permalink) %}
<a rel="{{ rel_attributes }}" {{ blank_target }} href="{{ target_url }}">
{% if page.extra.local_image %}
{% set meta = get_image_metadata(path=page.extra.local_image, allow_missing=true) %}
<img class="card-image" alt="{{ page.extra.local_image }}" src="{{ get_url(path=page.extra.local_image) }}" {% if meta.width %}width="{{ meta.width }}" {% endif %} {% if meta.height %}height="{{ meta.height }}" {% endif %}>
{% elif page.extra.remote_image %}
<img class="card-image" alt="{{ page.extra.remote_image }}" src="{{ page.extra.remote_image }}">
{% else %}
<div class="card-image-placeholder"></div>
{% endif %}
</a>
<div class="card-info">
<h2 class="card-title">
<a rel="{{ rel_attributes }}" {{ blank_target }} href="{{ target_url }}">{{ page.title }}</a>
</h2>
{% if journey.description %}
<p>{{ journey.description }}</p>
{% endif %}
<div class="card-description">
{% if page.description %}
{{ page.description }}
{% endif %}
</div>
</div>
</div>
{% endfor -%}
</div>

View file

@ -0,0 +1,54 @@
{# Set locale for date #}
{% set date_locale = macros_translate::translate(key="date_locale", default="en_GB", language_strings=language_strings) %}
<div class="archive">
<ul class="list-with-title">
{# Collect all pages and subsections #}
{% set_global journeys = [] %}
{% for journey_path in show_journeys %}
{% set_global journeys = journeys | concat(with=get_section(path=journey_path)) %}
{% endfor %}
{% for journey_page in show_pages %}
{% set_global journeys = journeys | concat(with=journey_page) %}
{% endfor %}
{% for year, yearly_journeys in journeys | group_by(attribute="extra.year") %}
<li>
<h2 class="listing-title">{{ year }}</h2>
<ul class="listing">
{% for journey in yearly_journeys | sort(attribute="extra.date") | reverse %}
<li class="listing-item">
<div class="post-time">
<span class="date">
{% if journey.extra.date %}
{# This is probably a section #}
{% set date_format = "%b" %}
{% else %}
{% set date_format = "%b %d" %}
{% endif %}
<h3>{{ journey.date | default(value=journey.extra.date) | date(format=date_format, locale=date_locale) }}</h3>
</span>
</div>
<div>
<h3><a href="{{ journey.permalink }}" title="{{ journey.title }}">{{ journey.title }}</a></h3>
{% if journey.description %}
<p>{{ journey.description }}</p>
{% endif %}
{% if journey.extra.local_image %}
{% set processed_image = resize_image(path=journey.extra.local_image, width=2000, op="fit_width", format="webp", quality=95) %}
<a href="{{ journey.permalink }}" title="{{ journey.title }}" style="margin-top: var(--paragraph-spacing);" class="no-hover-padding">
<img alt="{{ journey.title }}" src="{{ processed_image.url }}" style="max-width: 5rem;">
</a>
{% endif %}
</div>
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</div>

View file

@ -0,0 +1,160 @@
{% extends "base.html" %}
{% block main_content %}
{%- set separator = config.extra.separator | default(value="•") -%}
{%- set rel_attributes = macros_rel_attributes::rel_attributes() | trim -%}
{%- if config.markdown.external_links_target_blank -%}
{%- set blank_target = "target=_blank" -%}
{%- else -%}
{%- set blank_target = "" -%}
{%- endif -%}
{# Debugging #}
{# {% set last_ancestor = page.ancestors | slice(start=-1) %}
{% set current_section = get_section(path=last_ancestor.0) %}
{% set settings_to_test = [
"footnote_backlinks",
"katex",
"quick_navigation_buttons",
"show_reading_time",
"show_remote_changes",
"toc",
] %}
<table>
<thead>
<tr>
<th>setting</th>
<th>page</th>
<th>section</th>
<th>config</th>
<th>macro output</th>
</tr>
</thead>
<tbody>
{% for setting in settings_to_test %}
<tr>
<td><code>{{ setting }}</code></td>
<td>{{ page.extra[setting] | default(value="⬛") }}</td>
<td>{{ current_section.extra[setting] | default(value="⬛") }}</td>
<td>{{ config.extra[setting] | default(value="⬛") }}</td>
<td>{{ macros_settings::evaluate_setting_priority(setting=setting, page=page) }}</td>
</tr>
{% endfor %}
</tbody>
</table> #}
{# {{ __tera_context }} #}
{# End debugging #}
<main>
<article>
{% if page.ancestors | length > 2 %}
<nav id="journey-links" class="navbar">
<div class="nav-navs">
{% set last_ancestor = page.ancestors | slice(start=-2, end=-1) %}
{% set current_section = get_section(path=page.ancestors.2) %}
<ul>
<li>{{ current_section.title }}:</li>
{%- for journey_page in current_section.pages | sort(attribute="date") %}
{% set target_url = journey_page.extra.link_to | default(value=journey_page.permalink) %}
<li><a class="nav-links no-hover-padding" href="{{ target_url }}">
{{journey_page.title}}
</a></li>
{% endfor -%}
</ul>
</div>
</nav>
{% endif %}
<h1 class="article-title">
{{ page.title }}
</h1>
<ul class="meta">
{% if page.draft %}
<li class="draft-label">{{ macros_translate::translate(key="draft", default="DRAFT", language_strings=language_strings) }}</li>
{% endif %}
{% if page.date %}
<li>{{ macros_format_date::format_date(date=page.date, short=true, language_strings=language_strings) }}</li>
{% endif %}
{# page settings override config settings #}
{% if macros_settings::evaluate_setting_priority(setting="show_reading_time", page=page, default_global_value=true) == "true" %}
{{ separator }} <li title="{{ page.word_count }} {{ macros_translate::translate(key="words", default="words", language_strings=language_strings) }}">{{ page.reading_time }}&nbsp;{{ macros_translate::translate(key="min_read", default="min read", language_strings=language_strings) }}</li>
{% endif %}
{%- if page.taxonomies and page.taxonomies.tags -%}
{{ separator }}&nbsp;<li>{{- macros_translate::translate(key="tags", default="tags", language_strings=language_strings) | capitalize -}}:&nbsp;</li>
{%- for tag in page.taxonomies.tags -%}
<li><a href={{ get_taxonomy_url(kind='tags', name=tag, lang=lang) | safe }}>{{ tag }}</a>
{%- if not loop.last -%}
,&nbsp;
{%- endif -%}
</li>
{%- endfor -%}
{%- endif -%}
{% if page.updated %}
</ul><ul class="meta last-updated"><li>{{ macros_translate::translate(key="last_updated_on", default="Last updated on", language_strings=language_strings) }} {{ macros_format_date::format_date(date=page.updated, short=true, language_strings=language_strings) }}</li>
{# Show link to remote changes if enabled #}
{% if config.extra.remote_repository_url and macros_settings::evaluate_setting_priority(setting="show_remote_changes", page=page, default_global_value=true) == "true" %}
{{ separator }}
<li><a href="{% include "partials/history_url.html" %}" {{ blank_target }} rel="{{ rel_attributes }}">{{ macros_translate::translate(key="see_changes", default="See changes", language_strings=language_strings) }}<small></small></a></li>
{% endif %}
{% endif %}
</ul>
{% if page.extra.tldr %}
<div class="tldr">
<h3>TL;DR:</h3>
<p>{{ page.extra.tldr }}</p>
</div>
{% endif %}
{# Optional table of contents below the header #}
{% if page.toc and macros_settings::evaluate_setting_priority(setting="toc", page=page, default_global_value=false) == "true" %}
{{ macros_toc::toc(page=page, header=true, language_strings=language_strings) }}
{% endif %}
<section class="body">
{# The replace pattern is used to enable arbitrary locations for the Table of Contents #}
{# This is Philipp Oppermann's workaround: https://github.com/getzola/zola/issues/584#issuecomment-474329637 #}
{{ page.content | replace(from="<!-- toc -->", to=macros_toc::toc(page=page, header=false, language_strings=language_strings)) | safe }}
</section>
{# Check if comments are enabled, checking that they are not disabled on the specific page #}
{% set systems = ["giscus", "utterances", "hyvortalk", "isso"] %}
{% set enabled_systems = 0 %}
{% set comment_system = "" %}
{% for system in systems %}
{% set global_enabled = config.extra[system].enabled_for_all_posts | default(value=false) %}
{% set page_enabled = page.extra[system] | default(value=global_enabled) %}
{% set is_enabled = global_enabled and page_enabled != false or page_enabled == true %}
{% if is_enabled %}
{% set_global comment_system = system %}
{% set_global enabled_systems = enabled_systems + 1 %}
{% endif %}
{% endfor %}
{# Ensure only one comment system is enabled #}
{% if enabled_systems > 1 %}
{{ throw(message="ERROR: Multiple comment systems have been enabled for the same page. Check your config.toml and individual page settings to ensure only one comment system is activated at a time.") }}
{% endif %}
{% if comment_system %}
{% include "partials/comments.html" %}
{% endif %}
</article>
</main>
{%- include "partials/extra_features.html" -%}
{% endblock main_content %}

29
src/templates/travel.html Normal file
View file

@ -0,0 +1,29 @@
{% extends "base.html" %}
{% block main_content %}
{% if section.extra.section_path -%}
{% set section = get_section(path=section.extra.section_path) %}
{% endif -%}
{{ macros_page_header::page_header(title=section.title) }}
<main>
{% if section.content -%}
<div id="page-content">{{ section.content | safe }}</div>
{% endif %}
{%- if paginator %}
{%- set show_journeys = paginator.subsections -%}
{%- set show_pages = paginator.pages -%}
{% else %}
{%- set show_journeys = section.subsections -%}
{%- set show_pages = section.pages -%}
{% endif -%}
{%- include "partials/travel_listing.html" -%}
</main>
{% if paginator %}
{%- include "partials/paginate.html" -%}
{% endif %}
{% endblock main_content %}

0
src/themes/.gitkeep Normal file
View file