Initial version
This commit is contained in:
commit
594b935570
29 changed files with 1992 additions and 0 deletions
8
.gitattributes
vendored
Normal file
8
.gitattributes
vendored
Normal 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
42
.github/workflows/ci.yml
vendored
Normal 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
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
/result*
|
||||
/src/public/
|
||||
/src/static/processed_images/
|
||||
/src/themes/tabi
|
33
cache.nix
Normal file
33
cache.nix
Normal 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
131
flake.lock
generated
Normal 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
95
flake.nix
Normal 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
46
src/config.toml
Normal 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
24
src/content/_index.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
+++
|
||||
#path = "/"
|
||||
title = "About"
|
||||
template = "home.html"
|
||||
|
||||
[extra]
|
||||
header = {title = "Hi! I'm Fabian.", img = "img/profile.webp" }
|
||||
+++
|
||||
|
||||
I’m 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`
|
7
src/content/_projects/_index.md
Normal file
7
src/content/_projects/_index.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
+++
|
||||
title = "Projects"
|
||||
sort_by = "weight"
|
||||
template = "cards.html"
|
||||
+++
|
||||
|
||||
|
9
src/content/_projects/nixos.md
Normal file
9
src/content/_projects/nixos.md
Normal 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"
|
||||
+++
|
9
src/content/_projects/openhsr.md
Normal file
9
src/content/_projects/openhsr.md
Normal 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"
|
||||
+++
|
9
src/content/_projects/redbackup.md
Normal file
9
src/content/_projects/redbackup.md
Normal 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/"
|
||||
+++
|
9
src/content/_projects/xmpp-grid-broker.md
Normal file
9
src/content/_projects/xmpp-grid-broker.md
Normal 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
88
src/content/projects.md
Normal 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
0
src/static/.gitkeep
Normal file
3
src/static/img/profile.webp
Normal file
3
src/static/img/profile.webp
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4152867c1b4123ee6e3c9de5dc8f0de3cbcb9324f6cc8acc40523e889d3fe6a8
|
||||
size 46022
|
459
src/static/img/projects/nixos.svg
Normal file
459
src/static/img/projects/nixos.svg
Normal 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 |
169
src/static/img/projects/open-hsr-logo-transparent.svg
Normal file
169
src/static/img/projects/open-hsr-logo-transparent.svg
Normal 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="<Slice>"
|
||||
class="cls-10"
|
||||
width="512"
|
||||
height="337" />
|
||||
<rect
|
||||
id="_Slice_2"
|
||||
data-name="<Slice>"
|
||||
class="cls-10"
|
||||
x="196"
|
||||
y="70"
|
||||
width="119"
|
||||
height="134" />
|
||||
<rect
|
||||
id="_Slice_3"
|
||||
data-name="<Slice>"
|
||||
class="cls-10"
|
||||
width="512"
|
||||
height="297" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.5 KiB |
3
src/static/img/projects/redbackup.png
Normal file
3
src/static/img/projects/redbackup.png
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:83666c41198a71b31da0dae44b6a0d8fa246d27cc908b84ffae8503e1369749a
|
||||
size 46667
|
236
src/static/img/projects/redbackup.svg
Normal file
236
src/static/img/projects/redbackup.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 15 KiB |
277
src/static/img/projects/xmpp-grid-broker.svg
Normal file
277
src/static/img/projects/xmpp-grid-broker.svg
Normal 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
0
src/templates/.gitkeep
Normal file
19
src/templates/home.html
Normal file
19
src/templates/home.html
Normal 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 %}
|
27
src/templates/journey.html
Normal file
27
src/templates/journey.html
Normal 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 %}
|
42
src/templates/partials/journey_pages.html
Normal file
42
src/templates/partials/journey_pages.html
Normal 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>
|
54
src/templates/partials/travel_listing.html
Normal file
54
src/templates/partials/travel_listing.html
Normal 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>
|
160
src/templates/travel-stop.html
Normal file
160
src/templates/travel-stop.html
Normal 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 }} {{ macros_translate::translate(key="min_read", default="min read", language_strings=language_strings) }}</li>
|
||||
{% endif %}
|
||||
|
||||
{%- if page.taxonomies and page.taxonomies.tags -%}
|
||||
{{ separator }} <li>{{- macros_translate::translate(key="tags", default="tags", language_strings=language_strings) | capitalize -}}: </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 -%}
|
||||
,
|
||||
{%- 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
29
src/templates/travel.html
Normal 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
0
src/themes/.gitkeep
Normal file
Loading…
Add table
Reference in a new issue