Deployed 8d5b969
with MkDocs version: 1.6.1
202
404.html
|
@ -6,7 +6,7 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
|
||||||
<meta name="description" content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices">
|
<meta name="description" content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!">
|
||||||
|
|
||||||
|
|
||||||
<meta name="author" content="Stephan Hadan">
|
<meta name="author" content="Stephan Hadan">
|
||||||
|
@ -47,13 +47,15 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/external/fonts.googleapis.com/css.49ea35f2.css">
|
<link rel="stylesheet" href="/assets/external/fonts.googleapis.com/css.5c146275.css">
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/assets/_mkdocstrings.css">
|
<link rel="stylesheet" href="/assets/_mkdocstrings.css">
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/assets/css/custom.css">
|
||||||
|
|
||||||
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,7 +72,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
|
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="amber">
|
||||||
|
|
||||||
|
|
||||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||||||
|
@ -81,36 +83,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
|
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
|
|
||||||
<button class="md-banner__button md-icon" aria-label="Nicht mehr anzeigen">
|
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a rel="me" href="https://freiburg.social/@squidfunk">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"/></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
|
|
||||||
</aside>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
@ -150,30 +122,20 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="amber" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
|
||||||
|
|
||||||
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
|
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"/></svg>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="deep-purple" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
|
||||||
|
|
||||||
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
|
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"/></svg>
|
||||||
</label>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="black" data-md-color-accent="indigo" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_2">
|
|
||||||
|
|
||||||
<label class="md-header__button md-icon" title="Switch to system preference" for="__palette_0" hidden>
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg>
|
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
|
|
||||||
|
@ -260,16 +222,16 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a href="/." class="md-tabs__link">
|
||||||
|
|
||||||
|
|
||||||
<li class="md-tabs__item">
|
|
||||||
<a href="/." class="md-tabs__link">
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -277,6 +239,22 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a href="/about/" class="md-tabs__link">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a href="/cv/" class="md-tabs__link">
|
<a href="/cv/" class="md-tabs__link">
|
||||||
|
@ -429,25 +407,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a href="/." class="md-nav__link">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1" >
|
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
@ -461,19 +422,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -482,7 +434,7 @@
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="/." class="md-nav__link">
|
<a href="/about/" class="md-nav__link">
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
@ -507,68 +459,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/changelog/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a href="/license/" class="md-nav__link">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a href="/cv/" class="md-nav__link">
|
<a href="/cv/" class="md-nav__link">
|
||||||
|
|
||||||
|
@ -714,10 +604,10 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" >
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_8" >
|
||||||
|
|
||||||
|
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
|
|
||||||
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
@ -734,8 +624,8 @@
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -800,6 +690,8 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<article class="md-content__inner md-typeset">
|
<article class="md-content__inner md-typeset">
|
||||||
|
|
||||||
<h1>404 - Not found</h1>
|
<h1>404 - Not found</h1>
|
||||||
|
@ -971,7 +863,15 @@
|
||||||
|
|
||||||
<script src="/assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="/assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
|
|
||||||
<script src="/javascripts/tablesort.js"></script>
|
<script src="/assets/js/tablesort.js"></script>
|
||||||
|
|
||||||
|
<script src="/assets/js/mathjax.js"></script>
|
||||||
|
|
||||||
|
<script src="/assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
|
||||||
|
<script src="/assets/js/typewriter.js"></script>
|
||||||
|
|
||||||
|
<script src="/assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
497
about/index.html
Normal file
|
@ -0,0 +1,497 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="no-js" lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
|
<link href="https://stephan.hadan.de/about/" rel="canonical"/>
|
||||||
|
<link href=".." rel="prev"/>
|
||||||
|
<link href="../cv/" rel="next"/>
|
||||||
|
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
||||||
|
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
||||||
|
<link href="../images/favicon.png" rel="icon"/>
|
||||||
|
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.49+insiders-4.53.14" name="generator"/>
|
||||||
|
<title>Über mich - Stephan Hadan</title>
|
||||||
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Über mich - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/about/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/about/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Über mich - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/about/index.png" property="twitter:image"/>
|
||||||
|
</head>
|
||||||
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
<div data-md-component="skip">
|
||||||
|
<a class="md-skip" href="#uber-mich">
|
||||||
|
Zum Inhalt
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div data-md-component="announce">
|
||||||
|
</div>
|
||||||
|
<header class="md-header" data-md-component="header">
|
||||||
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
<a aria-label="Stephan Hadan" class="md-header__button md-logo" data-md-component="logo" href=".." title="Stephan Hadan">
|
||||||
|
<img alt="logo" src="../assets/logo.png"/>
|
||||||
|
</a>
|
||||||
|
<label class="md-header__button md-icon" for="__drawer">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"></path></svg>
|
||||||
|
</label>
|
||||||
|
<div class="md-header__title" data-md-component="header-title">
|
||||||
|
<div class="md-header__ellipsis">
|
||||||
|
<div class="md-header__topic">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
Stephan Hadan
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="md-header__topic" data-md-component="header-topic">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form class="md-header__option" data-md-component="palette">
|
||||||
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
|
</label>
|
||||||
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
|
</label>
|
||||||
|
</form>
|
||||||
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
<label class="md-header__button md-icon" for="__search">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg>
|
||||||
|
</label>
|
||||||
|
<div class="md-search" data-md-component="search" role="dialog">
|
||||||
|
<label class="md-search__overlay" for="__search"></label>
|
||||||
|
<div class="md-search__inner" role="search">
|
||||||
|
<form class="md-search__form" name="search">
|
||||||
|
<input aria-label="Suche" autocapitalize="off" autocomplete="off" autocorrect="off" class="md-search__input" data-md-component="search-query" name="query" placeholder="Suche" required="" spellcheck="false" type="text"/>
|
||||||
|
<label class="md-search__icon md-icon" for="__search">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"></path></svg>
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
||||||
|
</label>
|
||||||
|
<nav aria-label="Suche" class="md-search__options">
|
||||||
|
<a aria-label="Teilen" class="md-search__icon md-icon" data-clipboard="" data-clipboard-text="" data-md-component="search-share" href="javascript:void(0)" tabindex="-1" title="Teilen">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.15c-.05.21-.08.43-.08.66 0 1.61 1.31 2.91 2.92 2.91s2.92-1.3 2.92-2.91A2.92 2.92 0 0 0 18 16.08"></path></svg>
|
||||||
|
</a>
|
||||||
|
<button aria-label="Zurücksetzen" class="md-search__icon md-icon" tabindex="-1" title="Zurücksetzen" type="reset">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
||||||
|
</button>
|
||||||
|
</nav>
|
||||||
|
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
||||||
|
</form>
|
||||||
|
<div class="md-search__output">
|
||||||
|
<div class="md-search__scrollwrap" data-md-scrollfix="" tabindex="0">
|
||||||
|
<div class="md-search-result" data-md-component="search-result">
|
||||||
|
<div class="md-search-result__meta">
|
||||||
|
Suche wird initialisiert
|
||||||
|
</div>
|
||||||
|
<ol class="md-search-result__list" role="presentation"></ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="md-header__source">
|
||||||
|
<a class="md-source" data-md-component="source" href="https://github.com/stiebke/stiebke.github.io" title="Zum Repository">
|
||||||
|
<div class="md-source__icon md-icon">
|
||||||
|
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg>
|
||||||
|
</div>
|
||||||
|
<div class="md-source__repository">
|
||||||
|
stiebke/stiebke.github.io
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<div class="md-container" data-md-component="container">
|
||||||
|
<nav aria-label="Hauptnavigation" class="md-tabs" data-md-component="tabs">
|
||||||
|
<div class="md-grid">
|
||||||
|
<ul class="md-tabs__list">
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Home
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item md-tabs__item--active">
|
||||||
|
<a class="md-tabs__link" href="./">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Lebenslauf
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../projects/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Projekte
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../techstack/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tech Stack
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../contact/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Kontakt
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../imprint/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Impressum
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../blog/">
|
||||||
|
|
||||||
|
|
||||||
|
Blog
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
<main class="md-main" data-md-component="main">
|
||||||
|
<div class="md-main__inner md-grid">
|
||||||
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
|
||||||
|
<div class="md-sidebar__scrollwrap">
|
||||||
|
<div class="md-sidebar__inner">
|
||||||
|
<nav aria-label="Navigation" class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" data-md-level="0">
|
||||||
|
<label class="md-nav__title" for="__drawer">
|
||||||
|
<a aria-label="Stephan Hadan" class="md-nav__button md-logo" data-md-component="logo" href=".." title="Stephan Hadan">
|
||||||
|
<img alt="logo" src="../assets/logo.png"/>
|
||||||
|
</a>
|
||||||
|
Stephan Hadan
|
||||||
|
</label>
|
||||||
|
<div class="md-nav__source">
|
||||||
|
<a class="md-source" data-md-component="source" href="https://github.com/stiebke/stiebke.github.io" title="Zum Repository">
|
||||||
|
<div class="md-source__icon md-icon">
|
||||||
|
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"></path></svg>
|
||||||
|
</div>
|
||||||
|
<div class="md-source__repository">
|
||||||
|
stiebke/stiebke.github.io
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="..">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Home
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item md-nav__item--active">
|
||||||
|
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
||||||
|
<a class="md-nav__link md-nav__link--active" href="./">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="../cv/">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Lebenslauf
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="../projects/">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Projekte
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="../techstack/">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Tech Stack
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="../contact/">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Kontakt
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="../imprint/">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Impressum
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
Blog
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</span>
|
||||||
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
</label>
|
||||||
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
|
<label class="md-nav__title" for="__nav_8">
|
||||||
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
Blog
|
||||||
|
|
||||||
|
|
||||||
|
</label>
|
||||||
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
|
<li class="md-nav__item">
|
||||||
|
<a class="md-nav__link" href="../blog/">
|
||||||
|
<span class="md-ellipsis">
|
||||||
|
<span class="md-typeset">
|
||||||
|
Blog
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="md-content" data-md-component="content">
|
||||||
|
<article class="md-content__inner md-typeset"><a class="md-content__button md-icon" download="Über mich.pdf" href="index.pdf" title="Download as PDF"><html><body><svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m14 2 6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm4 18V9h-5V4H6v16zm-6-1-4-4h2.5v-3h3v3H16z"></path></svg></body></html></a>
|
||||||
|
|
||||||
|
<h1 id="uber-mich">Über mich</h1>
|
||||||
|
<p>Hey, willkommen auf meiner Seite! Schön, dass du hier bist. Lass mich dir ein bisschen über mich erzählen.</p>
|
||||||
|
<p>Mit über 25 Jahren Erfahrung als IT Operations Engineer kenne ich die Herausforderungen und Chancen in der IT-Welt genau. Als begeisterter Open-Source-Fan und Systemadministrator setze ich auf innovative Technologien, um Lösungen zu entwickeln, die effizient, sicher und nachhaltig sind.</p>
|
||||||
|
<p>Einer meiner Schwerpunkte liegt auf <strong>ISO 27001</strong>-Themen, also allem, was mit Informationssicherheit zu tun hat. Ob es darum geht, Risiken zu bewerten, Sicherheitsrichtlinien zu erstellen oder ein ISMS aufzubauen – ich helfe dabei, Sicherheit auf das nächste Level zu bringen.</p>
|
||||||
|
<p>Im Bereich <strong>Endpoint Management</strong> habe ich Erfahrung mit verschiedenen MDM-Lösungen wie MicroMDM, JamfNow! und Microsoft Intune. Damit sorge ich dafür, dass Geräte sicher und unkompliziert verwaltet werden können.</p>
|
||||||
|
<p>Durch meine langjährige Arbeit als Entwickler eines ERP-Systems für die Schmuckbranche verstehe ich, worauf es in der Softwareentwicklung ankommt. Diese Perspektive hilft mir, eng mit Entwicklern zusammenzuarbeiten und <strong>DevOps</strong>-Prozesse zu optimieren.</p>
|
||||||
|
<p>Als <strong>System Reliability Engineer</strong> ist es mein Ziel, Systeme so zu gestalten, dass sie stabil, skalierbar und automatisiert sind. Ich bin überzeugt, dass Open Source oft die bessere Wahl ist, und liebe es, neue Technologien auszuprobieren und kreative Lösungen zu finden.</p>
|
||||||
|
<p>Ich freue mich darauf, gemeinsam an spannenden Projekten zu arbeiten und die IT-Welt ein Stück besser zu machen!</p>
|
||||||
|
<aside class="md-source-file">
|
||||||
|
<span class="md-source-file__fact">
|
||||||
|
<span class="md-icon" title="Letztes Update">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"></path></svg>
|
||||||
|
</span>
|
||||||
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">27. Dezember 2024</span>
|
||||||
|
</span>
|
||||||
|
<span class="md-source-file__fact">
|
||||||
|
<span class="md-icon" title="Erstellt">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M14.47 15.08 11 13V7h1.5v5.25l3.08 1.83c-.41.28-.79.62-1.11 1m-1.39 4.84c-.36.05-.71.08-1.08.08-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8c0 .37-.03.72-.08 1.08.69.1 1.33.32 1.92.64.1-.56.16-1.13.16-1.72 0-5.5-4.5-10-10-10S2 6.5 2 12s4.47 10 10 10c.59 0 1.16-.06 1.72-.16-.32-.59-.54-1.23-.64-1.92M18 15v3h-3v2h3v3h2v-3h3v-2h-3v-3z"></path></svg>
|
||||||
|
</span>
|
||||||
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">4. Dezember 2024</span>
|
||||||
|
</span>
|
||||||
|
<span class="md-source-file__fact">
|
||||||
|
<span class="md-icon" title="Mitwirkende">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 2A10 10 0 0 0 2 12c0 4.42 2.87 8.17 6.84 9.5.5.08.66-.23.66-.5v-1.69c-2.77.6-3.36-1.34-3.36-1.34-.46-1.16-1.11-1.47-1.11-1.47-.91-.62.07-.6.07-.6 1 .07 1.53 1.03 1.53 1.03.87 1.52 2.34 1.07 2.91.83.09-.65.35-1.09.63-1.34-2.22-.25-4.55-1.11-4.55-4.92 0-1.11.38-2 1.03-2.71-.1-.25-.45-1.29.1-2.64 0 0 .84-.27 2.75 1.02.79-.22 1.65-.33 2.5-.33s1.71.11 2.5.33c1.91-1.29 2.75-1.02 2.75-1.02.55 1.35.2 2.39.1 2.64.65.71 1.03 1.6 1.03 2.71 0 3.82-2.34 4.66-4.57 4.91.36.31.69.92.69 1.85V21c0 .27.16.59.67.5C19.14 20.16 22 16.42 22 12A10 10 0 0 0 12 2"></path></svg>
|
||||||
|
</span>
|
||||||
|
<span>GitHub</span>
|
||||||
|
<nav>
|
||||||
|
<a class="md-author" href="https://github.com/stiebke" title="@stiebke">
|
||||||
|
<img alt="stiebke" src="../assets/external/avatars.githubusercontent.com/u/31309.fe356448.png"/>
|
||||||
|
</a>
|
||||||
|
</nav>
|
||||||
|
</span>
|
||||||
|
</aside>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||||||
|
</div>
|
||||||
|
<button class="md-top md-icon" data-md-component="top" hidden="" type="button">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"></path></svg>
|
||||||
|
Zurück zum Seitenanfang
|
||||||
|
</button>
|
||||||
|
</main>
|
||||||
|
<footer class="md-footer">
|
||||||
|
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
||||||
|
<a aria-label="Zurück: Home" class="md-footer__link md-footer__link--prev" href="..">
|
||||||
|
<div class="md-footer__button md-icon">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
||||||
|
</div>
|
||||||
|
<div class="md-footer__title">
|
||||||
|
<span class="md-footer__direction">
|
||||||
|
Zurück
|
||||||
|
</span>
|
||||||
|
<div class="md-ellipsis">
|
||||||
|
Home
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a aria-label="Weiter: Lebenslauf" class="md-footer__link md-footer__link--next" href="../cv/">
|
||||||
|
<div class="md-footer__title">
|
||||||
|
<span class="md-footer__direction">
|
||||||
|
Weiter
|
||||||
|
</span>
|
||||||
|
<div class="md-ellipsis">
|
||||||
|
Lebenslauf
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="md-footer__button md-icon">
|
||||||
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"></path></svg>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</nav>
|
||||||
|
<div class="md-footer-meta md-typeset">
|
||||||
|
<div class="md-footer-meta__inner md-grid">
|
||||||
|
<div class="md-copyright">
|
||||||
|
<div class="md-copyright__highlight">
|
||||||
|
Copyright © 2024-2025 Stephan Hadan
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
Made with
|
||||||
|
<a href="https://squidfunk.github.io/mkdocs-material/" rel="noopener" target="_blank">
|
||||||
|
Material for MkDocs Insiders
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="md-social">
|
||||||
|
<a class="md-social__link" href="https://github.com/stiebke" rel="noopener" target="_blank" title="github.com">
|
||||||
|
<svg viewbox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://de.linkedin.com/in/stiebke" rel="noopener" target="_blank" title="de.linkedin.com">
|
||||||
|
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5m282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://www.xing.com/profile/Stephan_Hadan" rel="noopener" target="_blank" title="www.xing.com">
|
||||||
|
<svg viewbox="0 0 384 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3q.3 0 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://bsky.app/profile/stiebke.bsky.social" rel="noopener" target="_blank" title="bsky.app">
|
||||||
|
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://freiburg.social/@stiebke" rel="noopener me" target="_blank" title="freiburg.social">
|
||||||
|
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://x.com/hadan72" rel="noopener" target="_blank" title="x.com">
|
||||||
|
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9zm-24.8 373.8h39.1L151.1 88h-42z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://matrix.to/#/@stiebke:gitter.im" rel="noopener" target="_blank" title="matrix.to">
|
||||||
|
<svg viewbox="0 0 384 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M66.4 322.5H16V0h50.4zM166.9 76.1h-50.4V512h50.4zm100.6 0h-50.4V512h50.4zM368 76h-50.4v247H368z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://stephan.hadan.de/contact/#signal" rel="noopener" target="_blank" title="stephan.hadan.de">
|
||||||
|
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M256 0c13.3 0 26.3 1 39.1 3l-3.7 23.7C279.9 24.9 268 24 256 24s-23.9.9-35.4 2.7L216.9 3c12.8-2 25.8-3 39.1-3m60.8 7.3-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1L389 37.2c-22.1-13.4-46.4-23.6-72.2-29.9m90.5 42.2-14.2 19.3c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5m67.5 73.6-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2m34.2 93.8-23.7 3.7c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1m-54.7 159.6c12.2-20 21.4-42 27.1-65.4l23.3 5.7c-6.3 25.8-16.5 50.1-29.9 72.2zm-11.1 16.6 19.4 14.2c-15.5 21.1-34.1 39.8-55.2 55.2l-14.2-19.4c19.1-14 36-30.9 50.1-50.1zm-66.7 61.2 12.5 20.5c-22.1 13.4-46.4 23.6-72.2 29.9l-5.7-23.3c23.4-5.7 45.4-14.9 65.4-27.1m-85.1 31 3.7 23.7c-12.7 1.9-25.8 3-39.1 3s-26.3-1-39.1-3l3.7-23.7c11.5 1.8 23.4 2.7 35.4 2.7s23.9-.9 35.4-2.7m-90.5-3.9-5.7 23.3c-19.4-4.7-37.9-11.6-55.3-20.5l-24.3 5.7-5.5-23.4 32.8-7.7 7.8 4c15.7 8 32.5 14.3 50.1 18.6zM90 471.3l5.5 23.4-41.6 9.7C26 510.8 1.2 486 7.6 458.2l9.7-41.6 23.4 5.4-9.7 41.7c-2.4 10.4 6.9 19.7 17.3 17.3zm-44.5-69.5-23.4-5.5 5.7-24.3c-8.9-17.3-15.8-35.9-20.5-55.3l23.3-5.7c4.3 17.6 10.6 34.4 18.6 50.1l4 7.8-7.7 32.8zM26.7 291.4 3 295.1c-2-12.8-3-25.8-3-39.1s1-26.3 3-39.1l23.7 3.7C24.9 232.1 24 244 24 256s.9 23.9 2.7 35.4m3.9-90.5-23.3-5.7c6.3-25.8 16.5-50.1 29.9-72.2l20.5 12.5c-12.2 20-21.4 42-27.1 65.4m38.3-82.1-19.4-14.1C65 83.6 83.6 65 104.7 49.5l14.2 19.4c-19.1 14-36 30.9-50.1 50.1zm66.7-61.2-12.5-20.4c22.1-13.4 46.4-23.6 72.2-29.9l5.7 23.3c-23.4 5.7-45.4 14.9-65.4 27.1zM464 256c0 114.9-93.1 208-208 208-36.4 0-70.7-9.4-100.5-25.8-2.9-1.6-6.2-2.1-9.4-1.4l-92.5 21.6 21.6-92.5c.7-3.2.2-6.5-1.4-9.4C57.4 326.7 48 292.4 48 256c0-114.9 93.1-208 208-208s208 93.1 208 208"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://hadanit.slack.com/team/U04BLKQF2M8" rel="noopener" target="_blank" title="hadanit.slack.com">
|
||||||
|
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1s21.16-47.06 47.06-47.06h47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"></path></svg>
|
||||||
|
</a>
|
||||||
|
<a class="md-social__link" href="https://stephan.hadan.de/feed_rss_created.xml" rel="noopener" target="_blank" title="Neueste Blogbeiträge">
|
||||||
|
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"></path></svg>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<div class="md-dialog" data-md-component="dialog">
|
||||||
|
<div class="md-dialog__inner md-typeset"></div>
|
||||||
|
</div>
|
||||||
|
<div class="md-progress" data-md-component="progress" role="progressbar"></div>
|
||||||
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
about/index.pdf
Normal file
BIN
assets/brand/Satoshi-Variable.ttf
Normal file
495
assets/css/custom.css
Normal file
|
@ -0,0 +1,495 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Satoshi';
|
||||||
|
src: url("/assets/brand/Satoshi-Variable.ttf") format("truetype");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Define brand */
|
||||||
|
:root, [data-md-color-scheme="default"] {
|
||||||
|
--md-default-bg-color: rgb(250, 250, 250);
|
||||||
|
--md-primary-fg-color: rgb(255, 255, 255);
|
||||||
|
--md-primary-fg-color--light: #5FFFD7;
|
||||||
|
--md-primary-fg-color--dark: #E549FF;
|
||||||
|
--md-primary-bg-color: rgba(0,0,0,.75);
|
||||||
|
--md-primary-bg-color--light: rgba(0,0,0,.54);
|
||||||
|
--md-accent-fg-color: #E549FF;
|
||||||
|
--pg-light-border: rgb(229, 231, 235);
|
||||||
|
--hb-hero-color: rgb(45, 45, 45);
|
||||||
|
}
|
||||||
|
:root, [data-md-color-scheme="slate"] {
|
||||||
|
--md-default-bg-color: rgb(26, 26, 27);
|
||||||
|
--md-primary-fg-color: rgb(15, 15, 15);
|
||||||
|
--md-primary-fg-color--light: #5FFFD7;
|
||||||
|
--md-primary-fg-color--dark: #FCDB17;
|
||||||
|
--md-primary-bg-color: rgba(0,0,0,.75);
|
||||||
|
--md-primary-bg-color--light: rgba(0,0,0,.54);
|
||||||
|
--md-accent-fg-color: #FCDB17;
|
||||||
|
--pg-light-border: rgb(47, 47, 47);
|
||||||
|
--hb-hero-color: #5FFFD7;
|
||||||
|
/* --md-footer-bg-color--dark: var(--md-default-bg-color); */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Better contrast link colors */
|
||||||
|
[data-md-color-scheme="default"] > * {
|
||||||
|
--md-typeset-a-color: #00B1BB;
|
||||||
|
}
|
||||||
|
[data-md-color-scheme="slate"] > * {
|
||||||
|
--md-typeset-a-color: #5FFFD7;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide shadow under navigation */
|
||||||
|
.md-header[data-md-state="shadow"],
|
||||||
|
.md-header--shadow {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* buttons */
|
||||||
|
.md-typeset .md-button {
|
||||||
|
color: var(--md-typeset-color);
|
||||||
|
background: none;
|
||||||
|
border: 1px solid var(--pg-light-border);
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||||
|
}
|
||||||
|
.md-typeset .md-button--primary {
|
||||||
|
color: var(--md-typeset-a-color);
|
||||||
|
background-color: var(--md-primary-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .grid.cards > :is(ul, ol) > li, .md-typeset .grid > .card { /* Firefox */
|
||||||
|
color: var(--md-typeset-color);
|
||||||
|
background: var(--md-primary-fg-color);
|
||||||
|
border: 1px solid var(--pg-light-border);
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .grid.cards>:-webkit-any(ul,ol)>li, .md-typeset .grid>.card { /* Webkit */
|
||||||
|
color: var(--md-typeset-color);
|
||||||
|
background: var(--md-primary-fg-color);
|
||||||
|
border: 1px solid var(--pg-light-border);
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .grid.cards > :is(ul, ol) > li:is(:focus-within, :hover), .md-typeset .grid > .card:is(:focus-within, :hover) { /* Firefox */
|
||||||
|
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||||
|
border-color: var(--md-accent-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .grid.cards>:-webkit-any(ul,ol)>li:-webkit-any(:focus-within,:hover) { /* Webkit */
|
||||||
|
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.05) 0px 1px 3px 0px, rgba(0, 0, 0, 0.05) 0px 1px 2px -1px;
|
||||||
|
border-color: var(--md-accent-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* typewriter */
|
||||||
|
|
||||||
|
#typewriter {
|
||||||
|
color: var(--md-accent-fg-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* header font */
|
||||||
|
|
||||||
|
.md-header__topic:first-child {
|
||||||
|
font-family: 'Satoshi';
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset h1 {
|
||||||
|
font-family: 'Satoshi';
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--md-typeset-a-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h3 {
|
||||||
|
font-family: 'Satoshi';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Correct page icon size */
|
||||||
|
.md-nav__link svg {
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Un-sticky sidebar without JS */
|
||||||
|
.no-js .md-sidebar {
|
||||||
|
align-self: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Make header icons smaller */
|
||||||
|
.md-header__button.md-icon svg {
|
||||||
|
height: 1rem;
|
||||||
|
width: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* override language selector */
|
||||||
|
.md-select button img.twemoji {
|
||||||
|
height: 1rem;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-select__link img.twemoji {
|
||||||
|
height: 1rem;
|
||||||
|
vertical-align: text-bottom;
|
||||||
|
margin-right: 1%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom header + nav */
|
||||||
|
.md-header >*, .md-tabs {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-md-color-scheme="slate"] .md-header >*, [data-md-color-scheme="slate"] .md-tabs {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-header__button {
|
||||||
|
color: var(--md-default-fg-color--light);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-header, .md-tabs { /* firefox fallback */
|
||||||
|
background-color: rgba(255, 255, 255, .95);
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-md-color-scheme="slate"] .md-header, [data-md-color-scheme="slate"] .md-tabs { /* firefox fallback */
|
||||||
|
background-color: rgba(9, 9, 9, 0.95);
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
|
||||||
|
.md-header, .md-tabs {
|
||||||
|
background-color: rgba(255, 255, 255, .6);
|
||||||
|
-webkit-backdrop-filter: blur(12px);
|
||||||
|
backdrop-filter: blur(12px);
|
||||||
|
}
|
||||||
|
[data-md-color-scheme="slate"] .md-header, [data-md-color-scheme="slate"] .md-tabs {
|
||||||
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
|
-webkit-backdrop-filter: blur(12px);
|
||||||
|
backdrop-filter: blur(12px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-md-color-scheme="slate"] .md-nav--primary .md-nav__title[for="__drawer"] {
|
||||||
|
color: var(--md-typeset-a-color)
|
||||||
|
}
|
||||||
|
|
||||||
|
header[class="md-header md-header--shadow"], nav[class="md-tabs"] {
|
||||||
|
border-bottom: 1px solid var(--pg-light-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 60em) {
|
||||||
|
.md-search__overlay {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-search__form {
|
||||||
|
border: 1px solid var(--pg-light-border);
|
||||||
|
background-color: var(--md-primary-fg-color) !important;
|
||||||
|
box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0.02) 0px 1px 3px 0px, rgba(0, 0, 0, 0.02) 0px 1px 2px -1px;
|
||||||
|
border-radius: 6px;
|
||||||
|
height: 1.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-md-toggle="search"]:checked ~ .md-header .md-search__form {
|
||||||
|
border-radius: 6px 6px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
[dir="ltr"] .md-search__output {
|
||||||
|
top: initial;
|
||||||
|
border-radius: 0 0 6px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-md-toggle="search"]:checked ~ .md-header .md-search__output {
|
||||||
|
box-shadow: 0 0 .6rem rgba(0,0,0,.07);
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-search__input {
|
||||||
|
font-size: .6rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-search__options {
|
||||||
|
top: .05rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-search__icon, .md-search__input::placeholder {
|
||||||
|
color: var(--md-default-fg-color--light) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-search__icon svg {
|
||||||
|
width: .75rem;
|
||||||
|
height: .75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-tabs__link--active {
|
||||||
|
background:
|
||||||
|
radial-gradient(farthest-side, var(--md-typeset-a-color) 98%,transparent 100%) bottom right/2px 2px,
|
||||||
|
radial-gradient(farthest-side, var(--md-typeset-a-color) 98%,transparent 100%) bottom left /2px 2px,
|
||||||
|
linear-gradient(var(--md-typeset-a-color),var(--md-typeset-a-color)) bottom/calc(100% - 2px) 2px;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-origin: padding-box;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-footer {
|
||||||
|
margin-top: 1rem;
|
||||||
|
border-top: 1px solid var(--pg-light-border);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wide card grids */
|
||||||
|
.md-typeset .grid.wide {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.md-typeset .grid.wide {
|
||||||
|
grid-template-columns: repeat(1, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Primary buttons */
|
||||||
|
.md-main .md-button--primary {
|
||||||
|
color: var(--md-primary-fg-color);
|
||||||
|
background-color: var(--hb-hero-color);
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset hr {
|
||||||
|
margin-top: 5rem;
|
||||||
|
margin-bottom: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Testimonial cards */
|
||||||
|
.testimonial {
|
||||||
|
padding: 40px 20px;
|
||||||
|
border: 1px solid var(--pg-light-border);
|
||||||
|
border-radius: 6px;
|
||||||
|
background-color: var(--md-primary-fg-color);
|
||||||
|
/* box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
|
||||||
|
transition: box-shadow 0.3s; */
|
||||||
|
|
||||||
|
.quote {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headshot {
|
||||||
|
width: 5rem;
|
||||||
|
height: 5rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
object-fit: cover; /* Ensures the image keeps its aspect ratio */
|
||||||
|
}
|
||||||
|
|
||||||
|
.author {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
width: 7rem; /* You can adjust this based on the size you want */
|
||||||
|
object-fit: contain; /* Ensures the logo keeps its aspect ratio */
|
||||||
|
transition: opacity 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.role {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
color: var(--md-default-fg-color--light);
|
||||||
|
/* margin-top: 0.5rem; */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Accent color */
|
||||||
|
.accent {
|
||||||
|
color: var(--md-typeset-a-color);
|
||||||
|
}
|
||||||
|
.accent a {
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Centered item */
|
||||||
|
.centered {
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: fit-content;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Announcement Bar */
|
||||||
|
.md-banner {
|
||||||
|
background-color: var(--md-typeset-a-color);
|
||||||
|
color: var(--md-default-bg-color);
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Logo Grids */
|
||||||
|
.flex-container {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-around;
|
||||||
|
}
|
||||||
|
.flex-item {
|
||||||
|
flex-basis: calc(50% - 10px);
|
||||||
|
}
|
||||||
|
.flex-item img {
|
||||||
|
padding: 3rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Botcamp - 4 col grid */
|
||||||
|
|
||||||
|
.botcamp > .flex-item {
|
||||||
|
flex-basis: calc(25% - 10px); /* adjust this value for different screen sizes */
|
||||||
|
margin: 5px;
|
||||||
|
}
|
||||||
|
.botcamp > .flex-item img {
|
||||||
|
padding: 1rem 3rem;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 769px) {
|
||||||
|
.botcamp > .flex-item {
|
||||||
|
flex-basis: calc(25% - 10px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.flex-item {
|
||||||
|
flex-basis: calc(50% - 10px);
|
||||||
|
}
|
||||||
|
.botcamp > .flex-item img {
|
||||||
|
padding: 3rem 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home - 3 col grid */
|
||||||
|
|
||||||
|
.home > .flex-item {
|
||||||
|
flex-basis: calc(33% - 10px); /* adjust this value for different screen sizes */
|
||||||
|
margin: 5px;
|
||||||
|
}
|
||||||
|
.home > .flex-item img {
|
||||||
|
padding: 1rem 3rem;
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 769px) {
|
||||||
|
.home > .flex-item {
|
||||||
|
flex-basis: calc(33% - 10px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.home > .flex-item {
|
||||||
|
flex-basis: calc(50% - 10px);
|
||||||
|
}
|
||||||
|
.home > .flex-item img {
|
||||||
|
padding: 3rem 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[data-md-color-scheme="default"] .dark-logo {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-md-color-scheme="slate"] .light-logo {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Two Thirds Grids */
|
||||||
|
.grid.two-thirds {
|
||||||
|
grid-template-columns: 2fr 1fr; /* Default to 2/3 and 1/3 width columns */
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.grid.two-thirds {
|
||||||
|
grid-template-columns: 1fr; /* All items will stack on top of each other */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Highlights text to link color */
|
||||||
|
.text-highlight {
|
||||||
|
color: var(--md-typeset-a-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Highlights 2nd card in a card grid to the hover state */
|
||||||
|
.highlight-second-card > ul > li:nth-child(2) {
|
||||||
|
border-color: var(--md-accent-fg-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fix mobile search with blurred header
|
||||||
|
Causes a delay when opening search, not optimal */
|
||||||
|
[data-md-scrolllock] .md-header,
|
||||||
|
[data-md-scrolllock] .md-tabs {
|
||||||
|
-webkit-backdrop-filter: none !important;
|
||||||
|
backdrop-filter: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom Metrics Display */
|
||||||
|
.md-typeset .custom-metric {
|
||||||
|
text-align: center !important;
|
||||||
|
padding: 2rem 0 !important;
|
||||||
|
margin: 1rem 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .custom-metric .metric-value {
|
||||||
|
font-size: 4rem !important;
|
||||||
|
font-weight: 700 !important;
|
||||||
|
color: var(--md-primary-fg-color--dark) !important;
|
||||||
|
line-height: 1.2 !important;
|
||||||
|
font-family: 'Satoshi', sans-serif !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .custom-metric .metric-label {
|
||||||
|
font-size: 1rem !important;
|
||||||
|
color: var(--md-default-fg-color) !important;
|
||||||
|
margin-top: 0.5rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive adjustments */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.md-typeset .custom-metric .metric-value {
|
||||||
|
font-size: 3rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-typeset .custom-metric .metric-label {
|
||||||
|
font-size: 0.9rem !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Exchange Grid */
|
||||||
|
.exchange-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(8, 1fr);
|
||||||
|
gap: 10px;
|
||||||
|
align-items: center;
|
||||||
|
justify-items: center;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.exchange-grid .flex-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.exchange-grid img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
padding: 0rem 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1200px) {
|
||||||
|
.exchange-grid {
|
||||||
|
grid-template-columns: repeat(4, 1fr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
.exchange-grid {
|
||||||
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
}
|
||||||
|
}
|
77
assets/external/cdn.jsdelivr.net/npm/wicked-good-xpath@1.3.0/dist/wgxpath.install.js
vendored
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
(function(){'use strict';var k=this;
|
||||||
|
function aa(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==
|
||||||
|
b&&"undefined"==typeof a.call)return"object";return b}function l(a){return"string"==typeof a}function ba(a,b,c){return a.call.apply(a.bind,arguments)}function ca(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}
|
||||||
|
function da(a,b,c){da=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?ba:ca;return da.apply(null,arguments)}function ea(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}}
|
||||||
|
function m(a){var b=n;function c(){}c.prototype=b.prototype;a.G=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.F=function(a,c,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[c].apply(a,g)}};/*
|
||||||
|
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2007 Cybozu Labs, Inc.
|
||||||
|
Copyright (c) 2012 Google Inc.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to
|
||||||
|
deal in the Software without restriction, including without limitation the
|
||||||
|
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
var fa=String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")};function q(a,b){return-1!=a.indexOf(b)}function ga(a,b){return a<b?-1:a>b?1:0};var ha=Array.prototype.indexOf?function(a,b,c){return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(l(a))return l(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},r=Array.prototype.forEach?function(a,b,c){Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=l(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},ia=Array.prototype.filter?function(a,b,c){return Array.prototype.filter.call(a,
|
||||||
|
b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=l(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var p=g[h];b.call(c,p,h,a)&&(e[f++]=p)}return e},t=Array.prototype.reduce?function(a,b,c,d){d&&(b=da(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;r(a,function(c,g){e=b.call(d,e,c,g,a)});return e},ja=Array.prototype.some?function(a,b,c){return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=l(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;
|
||||||
|
return!1};function ka(a,b){var c;a:{c=a.length;for(var d=l(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){c=e;break a}c=-1}return 0>c?null:l(a)?a.charAt(c):a[c]}function la(a){return Array.prototype.concat.apply(Array.prototype,arguments)}function ma(a,b,c){return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};var u;a:{var na=k.navigator;if(na){var oa=na.userAgent;if(oa){u=oa;break a}}u=""};var pa=q(u,"Opera")||q(u,"OPR"),v=q(u,"Trident")||q(u,"MSIE"),qa=q(u,"Edge"),ra=q(u,"Gecko")&&!(q(u.toLowerCase(),"webkit")&&!q(u,"Edge"))&&!(q(u,"Trident")||q(u,"MSIE"))&&!q(u,"Edge"),sa=q(u.toLowerCase(),"webkit")&&!q(u,"Edge");function ta(){var a=k.document;return a?a.documentMode:void 0}var ua;
|
||||||
|
a:{var va="",wa=function(){var a=u;if(ra)return/rv\:([^\);]+)(\)|;)/.exec(a);if(qa)return/Edge\/([\d\.]+)/.exec(a);if(v)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(sa)return/WebKit\/(\S+)/.exec(a);if(pa)return/(?:Version)[ \/]?(\S+)/.exec(a)}();wa&&(va=wa?wa[1]:"");if(v){var xa=ta();if(null!=xa&&xa>parseFloat(va)){ua=String(xa);break a}}ua=va}var ya={};
|
||||||
|
function za(a){if(!ya[a]){for(var b=0,c=fa(String(ua)).split("."),d=fa(String(a)).split("."),e=Math.max(c.length,d.length),f=0;0==b&&f<e;f++){var g=c[f]||"",h=d[f]||"",p=/(\d*)(\D*)/g,y=/(\d*)(\D*)/g;do{var D=p.exec(g)||["","",""],X=y.exec(h)||["","",""];if(0==D[0].length&&0==X[0].length)break;b=ga(0==D[1].length?0:parseInt(D[1],10),0==X[1].length?0:parseInt(X[1],10))||ga(0==D[2].length,0==X[2].length)||ga(D[2],X[2])}while(0==b)}ya[a]=0<=b}}
|
||||||
|
var Aa=k.document,Ba=Aa&&v?ta()||("CSS1Compat"==Aa.compatMode?parseInt(ua,10):5):void 0;var w=v&&!(9<=Number(Ba)),Ca=v&&!(8<=Number(Ba));function x(a,b,c,d){this.a=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.parentNode=this.ownerElement=b}function Da(a,b){var c=Ca&&"href"==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new x(b,a,b.nodeName,c)};function z(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if("string"!=typeof b)if(w&&"title"==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),w&&"title"==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[--c].nextSibling););}}else b=a.nodeValue;return""+b}
|
||||||
|
function A(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}Ca&&"class"==b&&(b="className");return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function B(a,b,c,d,e){return(w?Ea:Fa).call(null,a,b,l(c)?c:null,l(d)?d:null,e||new C)}
|
||||||
|
function Ea(a,b,c,d,e){if(a instanceof E||8==a.b||c&&null===a.b){var f=b.all;if(!f)return e;a=Ga(a);if("*"!=a&&(f=b.getElementsByTagName(a),!f))return e;if(c){for(var g=[],h=0;b=f[h++];)A(b,c,d)&&g.push(b);f=g}for(h=0;b=f[h++];)"*"==a&&"!"==b.tagName||F(e,b);return e}Ha(a,b,c,d,e);return e}
|
||||||
|
function Fa(a,b,c,d,e){b.getElementsByName&&d&&"name"==c&&!v?(b=b.getElementsByName(d),r(b,function(b){a.a(b)&&F(e,b)})):b.getElementsByClassName&&d&&"class"==c?(b=b.getElementsByClassName(d),r(b,function(b){b.className==d&&a.a(b)&&F(e,b)})):a instanceof G?Ha(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.f()),r(b,function(a){A(a,c,d)&&F(e,a)}));return e}
|
||||||
|
function Ia(a,b,c,d,e){var f;if((a instanceof E||8==a.b||c&&null===a.b)&&(f=b.childNodes)){var g=Ga(a);if("*"!=g&&(f=ia(f,function(a){return a.tagName&&a.tagName.toLowerCase()==g}),!f))return e;c&&(f=ia(f,function(a){return A(a,c,d)}));r(f,function(a){"*"==g&&("!"==a.tagName||"*"==g&&1!=a.nodeType)||F(e,a)});return e}return Ja(a,b,c,d,e)}function Ja(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)A(b,c,d)&&a.a(b)&&F(e,b);return e}
|
||||||
|
function Ha(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)A(b,c,d)&&a.a(b)&&F(e,b),Ha(a,b,c,d,e)}function Ga(a){if(a instanceof G){if(8==a.b)return"!";if(null===a.b)return"*"}return a.f()};!ra&&!v||v&&9<=Number(Ba)||ra&&za("1.9.1");v&&za("9");function Ka(a,b){if(!a||!b)return!1;if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}
|
||||||
|
function La(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(v&&!(9<=Number(Ba))){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?Ma(a,b):!c&&Ka(e,b)?-1*Na(a,b):!d&&Ka(f,a)?Na(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=9==a.nodeType?
|
||||||
|
a:a.ownerDocument||a.document;c=d.createRange();c.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(k.Range.START_TO_END,d)}function Na(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return Ma(d,a)}function Ma(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};function C(){this.b=this.a=null;this.l=0}function Oa(a){this.node=a;this.a=this.b=null}function Pa(a,b){if(!a.a)return b;if(!b.a)return a;for(var c=a.a,d=b.a,e=null,f=null,g=0;c&&d;){var f=c.node,h=d.node;f==h||f instanceof x&&h instanceof x&&f.a==h.a?(f=c,c=c.a,d=d.a):0<La(c.node,d.node)?(f=d,d=d.a):(f=c,c=c.a);(f.b=e)?e.a=f:a.a=f;e=f;g++}for(f=c||d;f;)f.b=e,e=e.a=f,g++,f=f.a;a.b=e;a.l=g;return a}function Qa(a,b){var c=new Oa(b);c.a=a.a;a.b?a.a.b=c:a.a=a.b=c;a.a=c;a.l++}
|
||||||
|
function F(a,b){var c=new Oa(b);c.b=a.b;a.a?a.b.a=c:a.a=a.b=c;a.b=c;a.l++}function Ra(a){return(a=a.a)?a.node:null}function Sa(a){return(a=Ra(a))?z(a):""}function H(a,b){return new Ta(a,!!b)}function Ta(a,b){this.f=a;this.b=(this.c=b)?a.b:a.a;this.a=null}function I(a){var b=a.b;if(null==b)return null;var c=a.a=b;a.b=a.c?b.b:b.a;return c.node};function n(a){this.i=a;this.b=this.g=!1;this.f=null}function J(a){return"\n "+a.toString().split("\n").join("\n ")}function Ua(a,b){a.g=b}function Va(a,b){a.b=b}function K(a,b){var c=a.a(b);return c instanceof C?+Sa(c):+c}function L(a,b){var c=a.a(b);return c instanceof C?Sa(c):""+c}function M(a,b){var c=a.a(b);return c instanceof C?!!c.l:!!c};function N(a,b,c){n.call(this,a.i);this.c=a;this.h=b;this.o=c;this.g=b.g||c.g;this.b=b.b||c.b;this.c==Wa&&(c.b||c.g||4==c.i||0==c.i||!b.f?b.b||b.g||4==b.i||0==b.i||!c.f||(this.f={name:c.f.name,s:b}):this.f={name:b.f.name,s:c})}m(N);
|
||||||
|
function O(a,b,c,d,e){b=b.a(d);c=c.a(d);var f;if(b instanceof C&&c instanceof C){b=H(b);for(d=I(b);d;d=I(b))for(e=H(c),f=I(e);f;f=I(e))if(a(z(d),z(f)))return!0;return!1}if(b instanceof C||c instanceof C){b instanceof C?(e=b,d=c):(e=c,d=b);f=H(e);for(var g=typeof d,h=I(f);h;h=I(f)){switch(g){case "number":h=+z(h);break;case "boolean":h=!!z(h);break;case "string":h=z(h);break;default:throw Error("Illegal primitive type for comparison.");}if(e==b&&a(h,d)||e==c&&a(d,h))return!0}return!1}return e?"boolean"==
|
||||||
|
typeof b||"boolean"==typeof c?a(!!b,!!c):"number"==typeof b||"number"==typeof c?a(+b,+c):a(b,c):a(+b,+c)}N.prototype.a=function(a){return this.c.m(this.h,this.o,a)};N.prototype.toString=function(){var a="Binary Expression: "+this.c,a=a+J(this.h);return a+=J(this.o)};function Xa(a,b,c,d){this.a=a;this.w=b;this.i=c;this.m=d}Xa.prototype.toString=function(){return this.a};var Ya={};
|
||||||
|
function P(a,b,c,d){if(Ya.hasOwnProperty(a))throw Error("Binary operator already created: "+a);a=new Xa(a,b,c,d);return Ya[a.toString()]=a}P("div",6,1,function(a,b,c){return K(a,c)/K(b,c)});P("mod",6,1,function(a,b,c){return K(a,c)%K(b,c)});P("*",6,1,function(a,b,c){return K(a,c)*K(b,c)});P("+",5,1,function(a,b,c){return K(a,c)+K(b,c)});P("-",5,1,function(a,b,c){return K(a,c)-K(b,c)});P("<",4,2,function(a,b,c){return O(function(a,b){return a<b},a,b,c)});
|
||||||
|
P(">",4,2,function(a,b,c){return O(function(a,b){return a>b},a,b,c)});P("<=",4,2,function(a,b,c){return O(function(a,b){return a<=b},a,b,c)});P(">=",4,2,function(a,b,c){return O(function(a,b){return a>=b},a,b,c)});var Wa=P("=",3,2,function(a,b,c){return O(function(a,b){return a==b},a,b,c,!0)});P("!=",3,2,function(a,b,c){return O(function(a,b){return a!=b},a,b,c,!0)});P("and",2,2,function(a,b,c){return M(a,c)&&M(b,c)});P("or",1,2,function(a,b,c){return M(a,c)||M(b,c)});function Q(a,b,c){this.a=a;this.b=b||1;this.f=c||1};function Za(a,b){if(b.a.length&&4!=a.i)throw Error("Primary expression must evaluate to nodeset if filter has predicate(s).");n.call(this,a.i);this.c=a;this.h=b;this.g=a.g;this.b=a.b}m(Za);Za.prototype.a=function(a){a=this.c.a(a);return $a(this.h,a)};Za.prototype.toString=function(){var a;a="Filter:"+J(this.c);return a+=J(this.h)};function ab(a,b){if(b.length<a.A)throw Error("Function "+a.j+" expects at least"+a.A+" arguments, "+b.length+" given");if(null!==a.v&&b.length>a.v)throw Error("Function "+a.j+" expects at most "+a.v+" arguments, "+b.length+" given");a.B&&r(b,function(b,d){if(4!=b.i)throw Error("Argument "+d+" to function "+a.j+" is not of type Nodeset: "+b);});n.call(this,a.i);this.h=a;this.c=b;Ua(this,a.g||ja(b,function(a){return a.g}));Va(this,a.D&&!b.length||a.C&&!!b.length||ja(b,function(a){return a.b}))}m(ab);
|
||||||
|
ab.prototype.a=function(a){return this.h.m.apply(null,la(a,this.c))};ab.prototype.toString=function(){var a="Function: "+this.h;if(this.c.length)var b=t(this.c,function(a,b){return a+J(b)},"Arguments:"),a=a+J(b);return a};function bb(a,b,c,d,e,f,g,h,p){this.j=a;this.i=b;this.g=c;this.D=d;this.C=e;this.m=f;this.A=g;this.v=void 0!==h?h:g;this.B=!!p}bb.prototype.toString=function(){return this.j};var cb={};
|
||||||
|
function R(a,b,c,d,e,f,g,h){if(cb.hasOwnProperty(a))throw Error("Function already created: "+a+".");cb[a]=new bb(a,b,c,d,!1,e,f,g,h)}R("boolean",2,!1,!1,function(a,b){return M(b,a)},1);R("ceiling",1,!1,!1,function(a,b){return Math.ceil(K(b,a))},1);R("concat",3,!1,!1,function(a,b){return t(ma(arguments,1),function(b,d){return b+L(d,a)},"")},2,null);R("contains",2,!1,!1,function(a,b,c){return q(L(b,a),L(c,a))},2);R("count",1,!1,!1,function(a,b){return b.a(a).l},1,1,!0);
|
||||||
|
R("false",2,!1,!1,function(){return!1},0);R("floor",1,!1,!1,function(a,b){return Math.floor(K(b,a))},1);R("id",4,!1,!1,function(a,b){function c(a){if(w){var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return ka(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.a,e=9==d.nodeType?d:d.ownerDocument,d=L(b,a).split(/\s+/),f=[];r(d,function(a){a=c(a);!a||0<=ha(f,a)||f.push(a)});f.sort(La);var g=new C;r(f,function(a){F(g,a)});return g},1);
|
||||||
|
R("lang",2,!1,!1,function(){return!1},1);R("last",1,!0,!1,function(a){if(1!=arguments.length)throw Error("Function last expects ()");return a.f},0);R("local-name",3,!1,!0,function(a,b){var c=b?Ra(b.a(a)):a.a;return c?c.localName||c.nodeName.toLowerCase():""},0,1,!0);R("name",3,!1,!0,function(a,b){var c=b?Ra(b.a(a)):a.a;return c?c.nodeName.toLowerCase():""},0,1,!0);R("namespace-uri",3,!0,!1,function(){return""},0,1,!0);
|
||||||
|
R("normalize-space",3,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},0,1);R("not",2,!1,!1,function(a,b){return!M(b,a)},1);R("number",1,!1,!0,function(a,b){return b?K(b,a):+z(a.a)},0,1);R("position",1,!0,!1,function(a){return a.b},0);R("round",1,!1,!1,function(a,b){return Math.round(K(b,a))},1);R("starts-with",2,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);return 0==b.lastIndexOf(a,0)},2);R("string",3,!1,!0,function(a,b){return b?L(b,a):z(a.a)},0,1);
|
||||||
|
R("string-length",1,!1,!0,function(a,b){return(b?L(b,a):z(a.a)).length},0,1);R("substring",3,!1,!1,function(a,b,c,d){c=K(c,a);if(isNaN(c)||Infinity==c||-Infinity==c)return"";d=d?K(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round(c)-1;var e=Math.max(c,0);a=L(b,a);return Infinity==d?a.substring(e):a.substring(e,c+Math.round(d))},2,3);R("substring-after",3,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);
|
||||||
|
R("substring-before",3,!1,!1,function(a,b,c){b=L(b,a);a=L(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);R("sum",1,!1,!1,function(a,b){for(var c=H(b.a(a)),d=0,e=I(c);e;e=I(c))d+=+z(e);return d},1,1,!0);R("translate",3,!1,!1,function(a,b,c,d){b=L(b,a);c=L(c,a);var e=L(d,a);a={};for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);R("true",2,!1,!1,function(){return!0},0);function G(a,b){this.h=a;this.c=void 0!==b?b:null;this.b=null;switch(a){case "comment":this.b=8;break;case "text":this.b=3;break;case "processing-instruction":this.b=7;break;case "node":break;default:throw Error("Unexpected argument");}}function db(a){return"comment"==a||"text"==a||"processing-instruction"==a||"node"==a}G.prototype.a=function(a){return null===this.b||this.b==a.nodeType};G.prototype.f=function(){return this.h};
|
||||||
|
G.prototype.toString=function(){var a="Kind Test: "+this.h;null===this.c||(a+=J(this.c));return a};function eb(a){this.b=a;this.a=0}function fb(a){a=a.match(gb);for(var b=0;b<a.length;b++)hb.test(a[b])&&a.splice(b,1);return new eb(a)}var gb=/\$?(?:(?![0-9-\.])(?:\*|[\w-\.]+):)?(?![0-9-\.])(?:\*|[\w-\.]+)|\/\/|\.\.|::|\d+(?:\.\d*)?|\.\d+|"[^"]*"|'[^']*'|[!<>]=|\s+|./g,hb=/^\s/;function S(a,b){return a.b[a.a+(b||0)]}function T(a){return a.b[a.a++]}function ib(a){return a.b.length<=a.a};function jb(a){n.call(this,3);this.c=a.substring(1,a.length-1)}m(jb);jb.prototype.a=function(){return this.c};jb.prototype.toString=function(){return"Literal: "+this.c};function E(a,b){this.j=a.toLowerCase();var c;c="*"==this.j?"*":"http://www.w3.org/1999/xhtml";this.c=b?b.toLowerCase():c}E.prototype.a=function(a){var b=a.nodeType;if(1!=b&&2!=b)return!1;b=void 0!==a.localName?a.localName:a.nodeName;return"*"!=this.j&&this.j!=b.toLowerCase()?!1:"*"==this.c?!0:this.c==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};E.prototype.f=function(){return this.j};
|
||||||
|
E.prototype.toString=function(){return"Name Test: "+("http://www.w3.org/1999/xhtml"==this.c?"":this.c+":")+this.j};function kb(a,b){n.call(this,a.i);this.h=a;this.c=b;this.g=a.g;this.b=a.b;if(1==this.c.length){var c=this.c[0];c.u||c.c!=lb||(c=c.o,"*"!=c.f()&&(this.f={name:c.f(),s:null}))}}m(kb);function mb(){n.call(this,4)}m(mb);mb.prototype.a=function(a){var b=new C;a=a.a;9==a.nodeType?F(b,a):F(b,a.ownerDocument);return b};mb.prototype.toString=function(){return"Root Helper Expression"};function nb(){n.call(this,4)}m(nb);nb.prototype.a=function(a){var b=new C;F(b,a.a);return b};nb.prototype.toString=function(){return"Context Helper Expression"};
|
||||||
|
function ob(a){return"/"==a||"//"==a}kb.prototype.a=function(a){var b=this.h.a(a);if(!(b instanceof C))throw Error("Filter expression must evaluate to nodeset.");a=this.c;for(var c=0,d=a.length;c<d&&b.l;c++){var e=a[c],f=H(b,e.c.a),g;if(e.g||e.c!=pb)if(e.g||e.c!=qb)for(g=I(f),b=e.a(new Q(g));null!=(g=I(f));)g=e.a(new Q(g)),b=Pa(b,g);else g=I(f),b=e.a(new Q(g));else{for(g=I(f);(b=I(f))&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.a(new Q(g))}}return b};
|
||||||
|
kb.prototype.toString=function(){var a;a="Path Expression:"+J(this.h);if(this.c.length){var b=t(this.c,function(a,b){return a+J(b)},"Steps:");a+=J(b)}return a};function rb(a){n.call(this,4);this.c=a;Ua(this,ja(this.c,function(a){return a.g}));Va(this,ja(this.c,function(a){return a.b}))}m(rb);rb.prototype.a=function(a){var b=new C;r(this.c,function(c){c=c.a(a);if(!(c instanceof C))throw Error("Path expression must evaluate to NodeSet.");b=Pa(b,c)});return b};rb.prototype.toString=function(){return t(this.c,function(a,b){return a+J(b)},"Union Expression:")};function sb(a,b){this.a=a;this.b=!!b}
|
||||||
|
function $a(a,b,c){for(c=c||0;c<a.a.length;c++)for(var d=a.a[c],e=H(b),f=b.l,g,h=0;g=I(e);h++){var p=a.b?f-h:h+1;g=d.a(new Q(g,p,f));if("number"==typeof g)p=p==g;else if("string"==typeof g||"boolean"==typeof g)p=!!g;else if(g instanceof C)p=0<g.l;else throw Error("Predicate.evaluate returned an unexpected type.");if(!p){p=e;g=p.f;var y=p.a;if(!y)throw Error("Next must be called at least once before remove.");var D=y.b,y=y.a;D?D.a=y:g.a=y;y?y.b=D:g.b=D;g.l--;p.a=null}}return b}
|
||||||
|
sb.prototype.toString=function(){return t(this.a,function(a,b){return a+J(b)},"Predicates:")};function U(a,b,c,d){n.call(this,4);this.c=a;this.o=b;this.h=c||new sb([]);this.u=!!d;b=this.h;b=0<b.a.length?b.a[0].f:null;a.b&&b&&(a=b.name,a=w?a.toLowerCase():a,this.f={name:a,s:b.s});a:{a=this.h;for(b=0;b<a.a.length;b++)if(c=a.a[b],c.g||1==c.i||0==c.i){a=!0;break a}a=!1}this.g=a}m(U);
|
||||||
|
U.prototype.a=function(a){var b=a.a,c=null,c=this.f,d=null,e=null,f=0;c&&(d=c.name,e=c.s?L(c.s,a):null,f=1);if(this.u)if(this.g||this.c!=tb)if(a=H((new U(ub,new G("node"))).a(a)),b=I(a))for(c=this.m(b,d,e,f);null!=(b=I(a));)c=Pa(c,this.m(b,d,e,f));else c=new C;else c=B(this.o,b,d,e),c=$a(this.h,c,f);else c=this.m(a.a,d,e,f);return c};U.prototype.m=function(a,b,c,d){a=this.c.f(this.o,a,b,c);return a=$a(this.h,a,d)};
|
||||||
|
U.prototype.toString=function(){var a;a="Step:"+J("Operator: "+(this.u?"//":"/"));this.c.j&&(a+=J("Axis: "+this.c));a+=J(this.o);if(this.h.a.length){var b=t(this.h.a,function(a,b){return a+J(b)},"Predicates:");a+=J(b)}return a};function vb(a,b,c,d){this.j=a;this.f=b;this.a=c;this.b=d}vb.prototype.toString=function(){return this.j};var wb={};function V(a,b,c,d){if(wb.hasOwnProperty(a))throw Error("Axis already created: "+a);b=new vb(a,b,c,!!d);return wb[a]=b}
|
||||||
|
V("ancestor",function(a,b){for(var c=new C,d=b;d=d.parentNode;)a.a(d)&&Qa(c,d);return c},!0);V("ancestor-or-self",function(a,b){var c=new C,d=b;do a.a(d)&&Qa(c,d);while(d=d.parentNode);return c},!0);
|
||||||
|
var lb=V("attribute",function(a,b){var c=new C,d=a.f();if("style"==d&&w&&b.style)return F(c,new x(b.style,b,"style",b.style.cssText)),c;var e=b.attributes;if(e)if(a instanceof G&&null===a.b||"*"==d)for(var d=0,f;f=e[d];d++)w?f.nodeValue&&F(c,Da(b,f)):F(c,f);else(f=e.getNamedItem(d))&&(w?f.nodeValue&&F(c,Da(b,f)):F(c,f));return c},!1),tb=V("child",function(a,b,c,d,e){return(w?Ia:Ja).call(null,a,b,l(c)?c:null,l(d)?d:null,e||new C)},!1,!0);V("descendant",B,!1,!0);
|
||||||
|
var ub=V("descendant-or-self",function(a,b,c,d){var e=new C;A(b,c,d)&&a.a(b)&&F(e,b);return B(a,b,c,d,e)},!1,!0),pb=V("following",function(a,b,c,d){var e=new C;do for(var f=b;f=f.nextSibling;)A(f,c,d)&&a.a(f)&&F(e,f),e=B(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);V("following-sibling",function(a,b){for(var c=new C,d=b;d=d.nextSibling;)a.a(d)&&F(c,d);return c},!1);V("namespace",function(){return new C},!1);
|
||||||
|
var xb=V("parent",function(a,b){var c=new C;if(9==b.nodeType)return c;if(2==b.nodeType)return F(c,b.ownerElement),c;var d=b.parentNode;a.a(d)&&F(c,d);return c},!1),qb=V("preceding",function(a,b,c,d){var e=new C,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,h=f.length;g<h;g++){var p=[];for(b=f[g];b=b.previousSibling;)p.unshift(b);for(var y=0,D=p.length;y<D;y++)b=p[y],A(b,c,d)&&a.a(b)&&F(e,b),e=B(a,b,c,d,e)}return e},!0,!0);
|
||||||
|
V("preceding-sibling",function(a,b){for(var c=new C,d=b;d=d.previousSibling;)a.a(d)&&Qa(c,d);return c},!0);var yb=V("self",function(a,b){var c=new C;a.a(b)&&F(c,b);return c},!1);function zb(a){n.call(this,1);this.c=a;this.g=a.g;this.b=a.b}m(zb);zb.prototype.a=function(a){return-K(this.c,a)};zb.prototype.toString=function(){return"Unary Expression: -"+J(this.c)};function Ab(a){n.call(this,1);this.c=a}m(Ab);Ab.prototype.a=function(){return this.c};Ab.prototype.toString=function(){return"Number: "+this.c};function Bb(a,b){this.a=a;this.b=b}function Cb(a){for(var b,c=[];;){W(a,"Missing right hand side of binary expression.");b=Db(a);var d=T(a.a);if(!d)break;var e=(d=Ya[d]||null)&&d.w;if(!e){a.a.a--;break}for(;c.length&&e<=c[c.length-1].w;)b=new N(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new N(c.pop(),c.pop(),b);return b}function W(a,b){if(ib(a.a))throw Error(b);}function Eb(a,b){var c=T(a.a);if(c!=b)throw Error("Bad token, expected: "+b+" got: "+c);}
|
||||||
|
function Fb(a){a=T(a.a);if(")"!=a)throw Error("Bad token: "+a);}function Gb(a){a=T(a.a);if(2>a.length)throw Error("Unclosed literal string");return new jb(a)}
|
||||||
|
function Hb(a){var b,c=[],d;if(ob(S(a.a))){b=T(a.a);d=S(a.a);if("/"==b&&(ib(a.a)||"."!=d&&".."!=d&&"@"!=d&&"*"!=d&&!/(?![0-9])[\w]/.test(d)))return new mb;d=new mb;W(a,"Missing next location step.");b=Ib(a,b);c.push(b)}else{a:{b=S(a.a);d=b.charAt(0);switch(d){case "$":throw Error("Variable reference not allowed in HTML XPath");case "(":T(a.a);b=Cb(a);W(a,'unclosed "("');Eb(a,")");break;case '"':case "'":b=Gb(a);break;default:if(isNaN(+b))if(!db(b)&&/(?![0-9])[\w]/.test(d)&&"("==S(a.a,1)){b=T(a.a);
|
||||||
|
b=cb[b]||null;T(a.a);for(d=[];")"!=S(a.a);){W(a,"Missing function argument list.");d.push(Cb(a));if(","!=S(a.a))break;T(a.a)}W(a,"Unclosed function argument list.");Fb(a);b=new ab(b,d)}else{b=null;break a}else b=new Ab(+T(a.a))}"["==S(a.a)&&(d=new sb(Jb(a)),b=new Za(b,d))}if(b)if(ob(S(a.a)))d=b;else return b;else b=Ib(a,"/"),d=new nb,c.push(b)}for(;ob(S(a.a));)b=T(a.a),W(a,"Missing next location step."),b=Ib(a,b),c.push(b);return new kb(d,c)}
|
||||||
|
function Ib(a,b){var c,d,e;if("/"!=b&&"//"!=b)throw Error('Step op should be "/" or "//"');if("."==S(a.a))return d=new U(yb,new G("node")),T(a.a),d;if(".."==S(a.a))return d=new U(xb,new G("node")),T(a.a),d;var f;if("@"==S(a.a))f=lb,T(a.a),W(a,"Missing attribute name");else if("::"==S(a.a,1)){if(!/(?![0-9])[\w]/.test(S(a.a).charAt(0)))throw Error("Bad token: "+T(a.a));c=T(a.a);f=wb[c]||null;if(!f)throw Error("No axis with name: "+c);T(a.a);W(a,"Missing node name")}else f=tb;c=S(a.a);if(/(?![0-9])[\w\*]/.test(c.charAt(0)))if("("==
|
||||||
|
S(a.a,1)){if(!db(c))throw Error("Invalid node type: "+c);c=T(a.a);if(!db(c))throw Error("Invalid type name: "+c);Eb(a,"(");W(a,"Bad nodetype");e=S(a.a).charAt(0);var g=null;if('"'==e||"'"==e)g=Gb(a);W(a,"Bad nodetype");Fb(a);c=new G(c,g)}else if(c=T(a.a),e=c.indexOf(":"),-1==e)c=new E(c);else{var g=c.substring(0,e),h;if("*"==g)h="*";else if(h=a.b(g),!h)throw Error("Namespace prefix not declared: "+g);c=c.substr(e+1);c=new E(c,h)}else throw Error("Bad token: "+T(a.a));e=new sb(Jb(a),f.a);return d||
|
||||||
|
new U(f,c,e,"//"==b)}function Jb(a){for(var b=[];"["==S(a.a);){T(a.a);W(a,"Missing predicate expression.");var c=Cb(a);b.push(c);W(a,"Unclosed predicate expression.");Eb(a,"]")}return b}function Db(a){if("-"==S(a.a))return T(a.a),new zb(Db(a));var b=Hb(a);if("|"!=S(a.a))a=b;else{for(b=[b];"|"==T(a.a);)W(a,"Missing next union location path."),b.push(Hb(a));a.a.a--;a=new rb(b)}return a};function Kb(a){switch(a.nodeType){case 1:return ea(Lb,a);case 9:return Kb(a.documentElement);case 11:case 10:case 6:case 12:return Mb;default:return a.parentNode?Kb(a.parentNode):Mb}}function Mb(){return null}function Lb(a,b){if(a.prefix==b)return a.namespaceURI||"http://www.w3.org/1999/xhtml";var c=a.getAttributeNode("xmlns:"+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?Lb(a.parentNode,b):null};function Nb(a,b){if(!a.length)throw Error("Empty XPath expression.");var c=fb(a);if(ib(c))throw Error("Invalid XPath expression.");b?"function"==aa(b)||(b=da(b.lookupNamespaceURI,b)):b=function(){return null};var d=Cb(new Bb(c,b));if(!ib(c))throw Error("Bad token: "+T(c));this.evaluate=function(a,b){var c=d.a(new Q(a));return new Y(c,b)}}
|
||||||
|
function Y(a,b){if(0==b)if(a instanceof C)b=4;else if("string"==typeof a)b=2;else if("number"==typeof a)b=1;else if("boolean"==typeof a)b=3;else throw Error("Unexpected evaluation result.");if(2!=b&&1!=b&&3!=b&&!(a instanceof C))throw Error("value could not be converted to the specified type");this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof C?Sa(a):""+a;break;case 1:this.numberValue=a instanceof C?+Sa(a):+a;break;case 3:this.booleanValue=a instanceof C?0<a.l:!!a;break;case 4:case 5:case 6:case 7:var d=
|
||||||
|
H(a);c=[];for(var e=I(d);e;e=I(d))c.push(e instanceof x?e.a:e);this.snapshotLength=a.l;this.invalidIteratorState=!1;break;case 8:case 9:d=Ra(a);this.singleNodeValue=d instanceof x?d.a:d;break;default:throw Error("Unknown XPathResult type.");}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error("iterateNext called with wrong result type");return f>=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error("snapshotItem called with wrong result type");return a>=c.length||
|
||||||
|
0>a?null:c[a]}}Y.ANY_TYPE=0;Y.NUMBER_TYPE=1;Y.STRING_TYPE=2;Y.BOOLEAN_TYPE=3;Y.UNORDERED_NODE_ITERATOR_TYPE=4;Y.ORDERED_NODE_ITERATOR_TYPE=5;Y.UNORDERED_NODE_SNAPSHOT_TYPE=6;Y.ORDERED_NODE_SNAPSHOT_TYPE=7;Y.ANY_UNORDERED_NODE_TYPE=8;Y.FIRST_ORDERED_NODE_TYPE=9;function Ob(a){this.lookupNamespaceURI=Kb(a)}
|
||||||
|
function Pb(a,b){var c=a||k,d=c.Document&&c.Document.prototype||c.document;if(!d.evaluate||b)c.XPathResult=Y,d.evaluate=function(a,b,c,d){return(new Nb(a,c)).evaluate(b,d)},d.createExpression=function(a,b){return new Nb(a,b)},d.createNSResolver=function(a){return new Ob(a)}}var Qb=["wgxpath","install"],Z=k;Qb[0]in Z||!Z.execScript||Z.execScript("var "+Qb[0]);for(var Rb;Qb.length&&(Rb=Qb.shift());)Qb.length||void 0===Pb?Z[Rb]?Z=Z[Rb]:Z=Z[Rb]={}:Z[Rb]=Pb;}).call(this)
|
|
@ -1,379 +1,481 @@
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc3CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttHOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc-CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtvXOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
|
/* devanagari */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Noto Sans';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
|
font-display: fallback;
|
||||||
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuHOmDyw.woff2) format('woff2');
|
||||||
|
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
|
||||||
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc2CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttXOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc5CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtunOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||||
}
|
}
|
||||||
/* vietnamese */
|
/* vietnamese */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc1CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttnOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc0CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtt3OmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TjASc6CsQ.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuXOm.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xFIzIFKw.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttHOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xMIzIFKw.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtvXOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
|
/* devanagari */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Noto Sans';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
|
font-display: fallback;
|
||||||
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuHOmDyw.woff2) format('woff2');
|
||||||
|
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
|
||||||
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xEIzIFKw.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttXOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xLIzIFKw.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtunOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||||
}
|
}
|
||||||
/* vietnamese */
|
/* vietnamese */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xHIzIFKw.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttnOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xGIzIFKw.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtt3OmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOkCnqEu92Fr1Mu51xIIzI.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuXOm.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttHOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtvXOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
|
/* devanagari */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Noto Sans';
|
||||||
|
font-style: italic;
|
||||||
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
|
font-display: fallback;
|
||||||
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuHOmDyw.woff2) format('woff2');
|
||||||
|
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
|
||||||
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttXOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtunOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||||
}
|
}
|
||||||
/* vietnamese */
|
/* vietnamese */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevttnOmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtt3OmDyw.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuXOm.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aPdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5ardu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
|
/* devanagari */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Noto Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
|
font-display: fallback;
|
||||||
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a_du2ui.woff2) format('woff2');
|
||||||
|
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
|
||||||
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aLdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a3du2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||||
}
|
}
|
||||||
/* vietnamese */
|
/* vietnamese */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aHdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aDdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a7duw.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aPdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5ardu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
|
/* devanagari */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Noto Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
|
font-display: fallback;
|
||||||
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a_du2ui.woff2) format('woff2');
|
||||||
|
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
|
||||||
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aLdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a3du2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||||
}
|
}
|
||||||
/* vietnamese */
|
/* vietnamese */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aHdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aDdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a7duw.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aPdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||||
}
|
}
|
||||||
/* cyrillic */
|
/* cyrillic */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5ardu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||||
}
|
}
|
||||||
|
/* devanagari */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Noto Sans';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
|
font-display: fallback;
|
||||||
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a_du2ui.woff2) format('woff2');
|
||||||
|
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
|
||||||
|
}
|
||||||
/* greek-ext */
|
/* greek-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aLdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+1F00-1FFF;
|
unicode-range: U+1F00-1FFF;
|
||||||
}
|
}
|
||||||
/* greek */
|
/* greek */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a3du2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
|
||||||
}
|
}
|
||||||
/* vietnamese */
|
/* vietnamese */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aHdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aDdu2ui.woff2) format('woff2');
|
||||||
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Noto Sans';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
font-stretch: 100%;
|
||||||
font-display: fallback;
|
font-display: fallback;
|
||||||
src: url(../fonts.gstatic.com/s/roboto/v32/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2');
|
src: url(../fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a7duw.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0ZIpQlx3QUlC5A4PNr4C5OaxRsfNNlKbCePevtuXOm.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a3du2ui.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a7duw.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aDdu2ui.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aHdu2ui.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aLdu2ui.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5aPdu2ui.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a_du2ui.woff2
vendored
Normal file
BIN
assets/external/fonts.gstatic.com/s/notosans/v38/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5ardu2ui.woff2
vendored
Normal file
1
assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js
vendored
Normal file
2
assets/external/unpkg.com/typewriter-effect@latest/dist/core.js
vendored
Normal file
BIN
assets/images/social/about/index.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
assets/images/social/blog/2024/01/31/hello-world.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
assets/images/social/blog/index.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
assets/images/social/changelog.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
assets/images/social/contact/index.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/social/cv/index.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
assets/images/social/imprint/index.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/social/index.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
assets/images/social/license.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
assets/images/social/projects/index.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
assets/images/social/techstack/index.png
Normal file
After Width: | Height: | Size: 74 KiB |
19
assets/js/mathjax.js
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
window.MathJax = {
|
||||||
|
tex: {
|
||||||
|
inlineMath: [["\\(", "\\)"]],
|
||||||
|
displayMath: [["\\[", "\\]"]],
|
||||||
|
processEscapes: true,
|
||||||
|
processEnvironments: true
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
ignoreHtmlClass: ".*|",
|
||||||
|
processHtmlClass: "arithmatex"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
document$.subscribe(() => {
|
||||||
|
MathJax.startup.output.clearCache()
|
||||||
|
MathJax.typesetClear()
|
||||||
|
MathJax.texReset()
|
||||||
|
MathJax.typesetPromise()
|
||||||
|
})
|
14
assets/js/typewriter.js
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
document$.subscribe(() => {
|
||||||
|
const instance = new Typewriter('#typewriter', {
|
||||||
|
strings: [
|
||||||
|
'Systemadministrator',
|
||||||
|
'Site Reliability Engineer',
|
||||||
|
'DevOps Engineer',
|
||||||
|
'IT Operations Engineer',
|
||||||
|
'Informationssicherheit',
|
||||||
|
'Datenschutz',
|
||||||
|
],
|
||||||
|
autoStart: true,
|
||||||
|
loop: true,
|
||||||
|
});
|
||||||
|
})
|
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/blog/2024/01/31/hello-world/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/blog/2024/01/31/hello-world/" rel="canonical"/>
|
||||||
<link href="../../../../../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
<link href="../../../../../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
||||||
|
@ -13,12 +13,25 @@
|
||||||
<title>Hello world! - Stephan Hadan</title>
|
<title>Hello world! - Stephan Hadan</title>
|
||||||
<link href="../../../../../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../../../../../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../../../../../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../../../../../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../../../../../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../../../../../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../../../../../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../../../../../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../../../../../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("../../../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("../../../../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Hello world! - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/blog/2024/01/31/hello-world.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/blog/2024/01/31/hello-world/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Hello world! - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/blog/2024/01/31/hello-world.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -28,30 +41,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -78,17 +67,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -146,9 +131,21 @@
|
||||||
<a class="md-tabs__link" href="../../../../..">
|
<a class="md-tabs__link" href="../../../../..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../../../../../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../../../../../cv/">
|
<a class="md-tabs__link" href="../../../../../cv/">
|
||||||
|
@ -234,9 +231,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="../../../../..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -245,20 +241,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../../../../..">
|
<a class="md-nav__link" href="../../../../../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -270,33 +256,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../../../../../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../../../../../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../../../../../cv/">
|
<a class="md-nav__link" href="../../../../../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -357,8 +316,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
||||||
<input checked="" class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
|
<input checked="" class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -369,8 +328,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="true" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="true" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -595,6 +554,10 @@
|
||||||
<script id="__config" type="application/json">{"base": "../../../../..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../../../../../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "../../../../..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../../../../../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../../../../../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../../../../../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../../../../../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../../../../../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../../../../../javascripts/tablesort.js"></script>
|
<script src="../../../../../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../../../../../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../../../../../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../../../../../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../../../../../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
135
blog/index.html
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/blog/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/blog/" rel="canonical"/>
|
||||||
<link href="../imprint/" rel="prev"/>
|
<link href="../imprint/" rel="prev"/>
|
||||||
|
@ -14,12 +14,25 @@
|
||||||
<title>Blog - Stephan Hadan</title>
|
<title>Blog - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Blog - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/blog/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/blog/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Blog - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/blog/index.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -29,30 +42,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -79,17 +68,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -147,9 +132,21 @@
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../cv/">
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
@ -235,9 +232,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,20 +242,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -271,33 +257,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../cv/">
|
<a class="md-nav__link" href="../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -358,8 +317,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
||||||
<input checked="" class="md-nav__toggle md-toggle" id="__nav_7" type="checkbox"/>
|
<input checked="" class="md-nav__toggle md-toggle" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -370,8 +329,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="true" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="true" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -510,6 +469,10 @@
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -3,11 +3,9 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/changelog/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/changelog/" rel="canonical"/>
|
||||||
<link href=".." rel="prev"/>
|
|
||||||
<link href="../license/" rel="next"/>
|
|
||||||
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
||||||
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
||||||
<link href="../images/favicon.png" rel="icon"/>
|
<link href="../images/favicon.png" rel="icon"/>
|
||||||
|
@ -15,12 +13,25 @@
|
||||||
<title>Changelog - Stephan Hadan</title>
|
<title>Changelog - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Changelog - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/changelog.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/changelog/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Changelog - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/changelog.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -30,30 +41,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -80,17 +67,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -144,13 +127,25 @@
|
||||||
<nav aria-label="Hauptnavigation" class="md-tabs" data-md-component="tabs">
|
<nav aria-label="Hauptnavigation" class="md-tabs" data-md-component="tabs">
|
||||||
<div class="md-grid">
|
<div class="md-grid">
|
||||||
<ul class="md-tabs__list">
|
<ul class="md-tabs__list">
|
||||||
<li class="md-tabs__item md-tabs__item--active">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../cv/">
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
@ -236,9 +231,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,20 +241,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -271,34 +255,6 @@
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
|
||||||
<a class="md-nav__link md-nav__link--active" href="./">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../cv/">
|
<a class="md-nav__link" href="../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
@ -360,8 +316,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -372,8 +328,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -439,34 +395,6 @@
|
||||||
</button>
|
</button>
|
||||||
</main>
|
</main>
|
||||||
<footer class="md-footer">
|
<footer class="md-footer">
|
||||||
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
|
||||||
<a aria-label="Zurück: Über mich" class="md-footer__link md-footer__link--prev" href="..">
|
|
||||||
<div class="md-footer__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
|
||||||
</div>
|
|
||||||
<div class="md-footer__title">
|
|
||||||
<span class="md-footer__direction">
|
|
||||||
Zurück
|
|
||||||
</span>
|
|
||||||
<div class="md-ellipsis">
|
|
||||||
Über mich
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a aria-label="Weiter: Lizenz" class="md-footer__link md-footer__link--next" href="../license/">
|
|
||||||
<div class="md-footer__title">
|
|
||||||
<span class="md-footer__direction">
|
|
||||||
Weiter
|
|
||||||
</span>
|
|
||||||
<div class="md-ellipsis">
|
|
||||||
Lizenz
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="md-footer__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"></path></svg>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</nav>
|
|
||||||
<div class="md-footer-meta md-typeset">
|
<div class="md-footer-meta md-typeset">
|
||||||
<div class="md-footer-meta__inner md-grid">
|
<div class="md-footer-meta__inner md-grid">
|
||||||
<div class="md-copyright">
|
<div class="md-copyright">
|
||||||
|
@ -523,6 +451,10 @@
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/contact/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/contact/" rel="canonical"/>
|
||||||
<link href="../techstack/" rel="prev"/>
|
<link href="../techstack/" rel="prev"/>
|
||||||
|
@ -15,12 +15,25 @@
|
||||||
<title>Kontakt - Stephan Hadan</title>
|
<title>Kontakt - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Kontakt - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/contact/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/contact/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Kontakt - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/contact/index.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -30,30 +43,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -80,17 +69,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -148,9 +133,21 @@
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../cv/">
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
@ -236,9 +233,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,20 +243,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,33 +258,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../cv/">
|
<a class="md-nav__link" href="../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -535,8 +494,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -547,8 +506,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -745,6 +704,10 @@ Salierstr. 8<br/>
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
141
cv/index.html
|
@ -3,10 +3,10 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/cv/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/cv/" rel="canonical"/>
|
||||||
<link href="../license/" rel="prev"/>
|
<link href="../about/" rel="prev"/>
|
||||||
<link href="../projects/" rel="next"/>
|
<link href="../projects/" rel="next"/>
|
||||||
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
||||||
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
||||||
|
@ -15,12 +15,25 @@
|
||||||
<title>Lebenslauf - Stephan Hadan</title>
|
<title>Lebenslauf - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Lebenslauf - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/cv/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/cv/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Lebenslauf - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/cv/index.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -30,30 +43,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -80,17 +69,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -148,9 +133,21 @@
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item md-tabs__item--active">
|
<li class="md-tabs__item md-tabs__item--active">
|
||||||
<a class="md-tabs__link" href="./">
|
<a class="md-tabs__link" href="./">
|
||||||
|
@ -236,9 +233,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,20 +243,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -271,33 +257,6 @@
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
<li class="md-nav__item md-nav__item--active">
|
||||||
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
||||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||||||
|
@ -442,8 +401,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -454,8 +413,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -680,7 +639,7 @@
|
||||||
</main>
|
</main>
|
||||||
<footer class="md-footer">
|
<footer class="md-footer">
|
||||||
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
||||||
<a aria-label="Zurück: Lizenz" class="md-footer__link md-footer__link--prev" href="../license/">
|
<a aria-label="Zurück: Über mich" class="md-footer__link md-footer__link--prev" href="../about/">
|
||||||
<div class="md-footer__button md-icon">
|
<div class="md-footer__button md-icon">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
||||||
</div>
|
</div>
|
||||||
|
@ -689,7 +648,7 @@
|
||||||
Zurück
|
Zurück
|
||||||
</span>
|
</span>
|
||||||
<div class="md-ellipsis">
|
<div class="md-ellipsis">
|
||||||
Lizenz
|
Über mich
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -763,6 +722,10 @@
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
BIN
cv/index.pdf
|
@ -1 +1 @@
|
||||||
{"version": "https://jsonfeed.org/version/1", "title": "Stephan Hadan", "home_page_url": "https://stephan.hadan.de/", "feed_url": "https://stephan.hadan.de/feed_json_created.json", "description": "Write your documentation in Markdown and create a professional static site in minutes \u2013 searchable, customizable, in 60+ languages, for all devices", "icon": null, "authors": [{"name": "Stephan Hadan"}], "language": "de", "items": [{"id": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "url": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "title": "Hello world!", "content_html": "<h1>Hello world!</h1>\n<p>Hi ho!</p>", "image": null, "date_published": "2024-01-31T00:00:00+00:00", "authors": [{"name": "stephan"}], "tags": []}]}
|
{"version": "https://jsonfeed.org/version/1", "title": "Stephan Hadan", "home_page_url": "https://stephan.hadan.de/", "feed_url": "https://stephan.hadan.de/feed_json_created.json", "description": "\ud83d\udcbb OSS enthusiast | \ud83d\udd27 Mac & beyond sysadmin | \ud83e\udd16 AI practitioner | \ud83c\udd94 Zero Trust advocate | \ud83d\ude80 Open Source > proprietary | Always exploring tech\u2019s edge!", "icon": null, "authors": [{"name": "Stephan Hadan"}], "language": "de", "items": [{"id": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "url": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "title": "Hello world!", "content_html": "<h1>Hello world!</h1>\n<p>Hi ho!</p>", "image": "https://stephan.hadan.de/assets/images/social/blog/2024/01/31/hello-world.png", "date_published": "2024-01-31T00:00:00+00:00", "authors": [{"name": "stephan"}], "tags": []}]}
|
|
@ -1 +1 @@
|
||||||
{"version": "https://jsonfeed.org/version/1", "title": "Stephan Hadan", "home_page_url": "https://stephan.hadan.de/", "feed_url": "https://stephan.hadan.de/feed_json_updated.json", "description": "Write your documentation in Markdown and create a professional static site in minutes \u2013 searchable, customizable, in 60+ languages, for all devices", "icon": null, "authors": [{"name": "Stephan Hadan"}], "language": "de", "items": [{"id": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "url": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "title": "Hello world!", "content_html": "<h1>Hello world!</h1>\n<p>Hi ho!</p>", "image": null, "date_modified": "2024-12-04T11:35:34+00:00", "authors": [{"name": "stephan"}], "tags": []}]}
|
{"version": "https://jsonfeed.org/version/1", "title": "Stephan Hadan", "home_page_url": "https://stephan.hadan.de/", "feed_url": "https://stephan.hadan.de/feed_json_updated.json", "description": "\ud83d\udcbb OSS enthusiast | \ud83d\udd27 Mac & beyond sysadmin | \ud83e\udd16 AI practitioner | \ud83c\udd94 Zero Trust advocate | \ud83d\ude80 Open Source > proprietary | Always exploring tech\u2019s edge!", "icon": null, "authors": [{"name": "Stephan Hadan"}], "language": "de", "items": [{"id": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "url": "https://stephan.hadan.de/blog/2024/01/31/hello-world/", "title": "Hello world!", "content_html": "<h1>Hello world!</h1>\n<p>Hi ho!</p>", "image": "https://stephan.hadan.de/assets/images/social/blog/2024/01/31/hello-world.png", "date_modified": "2024-12-04T11:35:34+00:00", "authors": [{"name": "stephan"}], "tags": []}]}
|
|
@ -1 +1 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Stephan Hadan</title><description>Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices</description><link>https://stephan.hadan.de/</link><atom:link href="https://stephan.hadan.de/feed_rss_created.xml" rel="self" type="application/rss+xml" /><managingEditor>Stephan Hadan</managingEditor><docs>https://github.com/stiebke/stiebke.github.io</docs><language>de</language> <pubDate>Wed, 25 Dec 2024 17:21:52 -0000</pubDate> <lastBuildDate>Wed, 25 Dec 2024 17:21:52 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.16.0</generator> <item> <title>Hello world!</title> <author>stephan</author> <description><h1>Hello world!</h1><p>Hi ho!</p></description><link>https://stephan.hadan.de/blog/2024/01/31/hello-world/</link> <pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><source url="https://stephan.hadan.de/feed_rss_created.xml">Stephan Hadan</source><guid isPermaLink="true">https://stephan.hadan.de/blog/2024/01/31/hello-world/</guid> </item> </channel></rss>
|
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Stephan Hadan</title><description>💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!</description><link>https://stephan.hadan.de/</link><atom:link href="https://stephan.hadan.de/feed_rss_created.xml" rel="self" type="application/rss+xml" /><managingEditor>Stephan Hadan</managingEditor><docs>https://github.com/stiebke/stiebke.github.io</docs><language>de</language> <pubDate>Fri, 27 Dec 2024 16:57:23 -0000</pubDate> <lastBuildDate>Fri, 27 Dec 2024 16:57:23 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.16.0</generator> <item> <title>Hello world!</title> <author>stephan</author> <description><h1>Hello world!</h1><p>Hi ho!</p></description><link>https://stephan.hadan.de/blog/2024/01/31/hello-world/</link> <pubDate>Wed, 31 Jan 2024 00:00:00 +0000</pubDate><source url="https://stephan.hadan.de/feed_rss_created.xml">Stephan Hadan</source><guid isPermaLink="true">https://stephan.hadan.de/blog/2024/01/31/hello-world/</guid> <enclosure url="https://stephan.hadan.de/assets/images/social/blog/2024/01/31/hello-world.png" type="image/png" length="None" /> </item> </channel></rss>
|
|
@ -1 +1 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Stephan Hadan</title><description>Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices</description><link>https://stephan.hadan.de/</link><atom:link href="https://stephan.hadan.de/feed_rss_updated.xml" rel="self" type="application/rss+xml" /><managingEditor>Stephan Hadan</managingEditor><docs>https://github.com/stiebke/stiebke.github.io</docs><language>de</language> <pubDate>Wed, 25 Dec 2024 17:21:52 -0000</pubDate> <lastBuildDate>Wed, 25 Dec 2024 17:21:52 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.16.0</generator> <item> <title>Hello world!</title> <author>stephan</author> <description><h1>Hello world!</h1><p>Hi ho!</p></description><link>https://stephan.hadan.de/blog/2024/01/31/hello-world/</link> <pubDate>Wed, 04 Dec 2024 11:35:34 +0000</pubDate><source url="https://stephan.hadan.de/feed_rss_updated.xml">Stephan Hadan</source><guid isPermaLink="true">https://stephan.hadan.de/blog/2024/01/31/hello-world/</guid> </item> </channel></rss>
|
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel><title>Stephan Hadan</title><description>💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!</description><link>https://stephan.hadan.de/</link><atom:link href="https://stephan.hadan.de/feed_rss_updated.xml" rel="self" type="application/rss+xml" /><managingEditor>Stephan Hadan</managingEditor><docs>https://github.com/stiebke/stiebke.github.io</docs><language>de</language> <pubDate>Fri, 27 Dec 2024 16:57:23 -0000</pubDate> <lastBuildDate>Fri, 27 Dec 2024 16:57:23 -0000</lastBuildDate> <ttl>1440</ttl> <generator>MkDocs RSS plugin - v1.16.0</generator> <item> <title>Hello world!</title> <author>stephan</author> <description><h1>Hello world!</h1><p>Hi ho!</p></description><link>https://stephan.hadan.de/blog/2024/01/31/hello-world/</link> <pubDate>Wed, 04 Dec 2024 11:35:34 +0000</pubDate><source url="https://stephan.hadan.de/feed_rss_updated.xml">Stephan Hadan</source><guid isPermaLink="true">https://stephan.hadan.de/blog/2024/01/31/hello-world/</guid> <enclosure url="https://stephan.hadan.de/assets/images/social/blog/2024/01/31/hello-world.png" type="image/png" length="None" /> </item> </channel></rss>
|
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/imprint/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/imprint/" rel="canonical"/>
|
||||||
<link href="../contact/" rel="prev"/>
|
<link href="../contact/" rel="prev"/>
|
||||||
|
@ -15,12 +15,25 @@
|
||||||
<title>Impressum - Stephan Hadan</title>
|
<title>Impressum - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Impressum - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/imprint/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/imprint/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Impressum - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/imprint/index.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -30,30 +43,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -80,17 +69,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -148,9 +133,21 @@
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../cv/">
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
@ -236,9 +233,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,20 +243,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,33 +258,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../cv/">
|
<a class="md-nav__link" href="../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -397,8 +356,8 @@
|
||||||
</nav>
|
</nav>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -409,8 +368,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -569,6 +528,10 @@ Salierstr. 8<br/>
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
263
index.html
|
@ -3,56 +3,42 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/" rel="canonical"/>
|
||||||
<link href="changelog/" rel="next"/>
|
<link href="about/" rel="next"/>
|
||||||
<link href="feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
<link href="feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
||||||
<link href="feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
<link href="feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
||||||
<link href="images/favicon.png" rel="icon"/>
|
<link href="images/favicon.png" rel="icon"/>
|
||||||
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.49+insiders-4.53.14" name="generator"/>
|
<meta content="mkdocs-1.6.1, mkdocs-material-9.5.49+insiders-4.53.14" name="generator"/>
|
||||||
<title>Über mich - Stephan Hadan</title>
|
<title>Stephan Hadan - Stephan Hadan</title>
|
||||||
<link href="assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/index.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
<div data-md-component="skip">
|
<div data-md-component="skip">
|
||||||
<a class="md-skip" href="#ein-herzliches-willkommen">
|
|
||||||
Zum Inhalt
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -72,24 +58,20 @@
|
||||||
<div class="md-header__topic" data-md-component="header-topic">
|
<div class="md-header__topic" data-md-component="header-topic">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
Über mich
|
Stephan Hadan
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -147,9 +129,21 @@
|
||||||
<a class="md-tabs__link" href=".">
|
<a class="md-tabs__link" href=".">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="cv/">
|
<a class="md-tabs__link" href="cv/">
|
||||||
|
@ -212,9 +206,104 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
<!-- Additional styles for landing page -->
|
||||||
|
<style>
|
||||||
|
.mdx-container {
|
||||||
|
background: url("data:image/svg+xml;utf8,<svg width='100%' height='100%' viewBox='0 0 1123 258' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'><g transform='matrix(-1.01432,0,0,0.388868,1134.41,161.501)'><path d='M1124,2L1124,258L-1,258L-1,210C-1,210 15,215 54,215C170,215 251,123 379,123C500,123 493,169 633,169C773,169 847,2 1205,3L1124,2Z' style='fill:rgb(250, 250, 250);fill-rule:nonzero;'/></g></svg>")
|
||||||
|
no-repeat bottom,
|
||||||
|
linear-gradient(to bottom, rgb(255 255 255/.8), #00C2CE 99%, var(--md-default-bg-color) 99%);
|
||||||
|
background-size: contain;
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
[data-md-color-scheme="slate"] .mdx-container {
|
||||||
|
background: url("data:image/svg+xml;utf8,<svg width='100%' height='100%' viewBox='0 0 1123 258' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xml:space='preserve' xmlns:serif='http://www.serif.com/' style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'><g transform='matrix(-1.01432,0,0,0.388868,1134.41,161.501)'><path d='M1124,2L1124,258L-1,258L-1,210C-1,210 15,215 54,215C170,215 251,123 379,123C500,123 493,169 633,169C773,169 847,2 1205,3L1124,2Z' style='fill:rgb(26, 26, 27);fill-rule:nonzero;'/></g></svg>")
|
||||||
|
no-repeat bottom, rgba(9, 9, 9, 0.95);
|
||||||
|
background-size: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mdx-hero {
|
||||||
|
color: var(--hb-hero-color);
|
||||||
|
margin: 0 0.8rem;
|
||||||
|
}
|
||||||
|
.mdx-hero h1 {
|
||||||
|
color: currentcolor;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-size: 2.6rem;
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 29.9375em) {
|
||||||
|
.mdx-hero h1 {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mdx-hero__content {
|
||||||
|
padding-bottom: 6rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 60em) {
|
||||||
|
.mdx-hero {
|
||||||
|
align-items: stretch;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.mdx-hero__content {
|
||||||
|
margin-top: 3.5rem;
|
||||||
|
max-width: 38rem;
|
||||||
|
padding-bottom: 14vw;
|
||||||
|
}
|
||||||
|
.mdx-hero__image {
|
||||||
|
order: 1;
|
||||||
|
transform: translateX(4rem);
|
||||||
|
width: 38rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 76.25em) {
|
||||||
|
.mdx-hero__image {
|
||||||
|
transform: translateX(8rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mdx-hero .md-button {
|
||||||
|
color: var(--hb-hero-color);
|
||||||
|
border-color: var(--hb-hero-color);
|
||||||
|
}
|
||||||
|
[data-md-color-scheme="slate"] .mdx-hero .md-button--primary {
|
||||||
|
color: var(--md-primary-fg-color);
|
||||||
|
}
|
||||||
|
.mdx-hero .md-button--primary {
|
||||||
|
color: var(--md-primary-fg-color);
|
||||||
|
background-color: var(--hb-hero-color);
|
||||||
|
border-color: transparent;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-main .md-button--primary {
|
||||||
|
color: var(--md-primary-fg-color);
|
||||||
|
background-color: var(--hb-hero-color);
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav[class="md-tabs"] {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<section class="mdx-container">
|
||||||
|
<div class="md-grid md-typeset">
|
||||||
|
<div class="mdx-hero">
|
||||||
|
<div class="mdx-hero__content">
|
||||||
|
<h1>Stephan Hadan<div id="typewriter">Systemadministrator</div></h1>
|
||||||
|
<h3>💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!</h3>
|
||||||
|
<a class="md-button md-button--primary" href="/about/">
|
||||||
|
Über mich
|
||||||
|
</a>
|
||||||
|
<a class="md-button" href="/cv/" target="_blank">
|
||||||
|
Lebenslauf
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
<main class="md-main" data-md-component="main">
|
<main class="md-main" data-md-component="main">
|
||||||
<div class="md-main__inner md-grid">
|
<div class="md-main__inner md-grid">
|
||||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" hidden="">
|
||||||
<div class="md-sidebar__scrollwrap">
|
<div class="md-sidebar__scrollwrap">
|
||||||
<div class="md-sidebar__inner">
|
<div class="md-sidebar__inner">
|
||||||
<nav aria-label="Navigation" class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" data-md-level="0">
|
<nav aria-label="Navigation" class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" data-md-level="0">
|
||||||
|
@ -235,9 +324,9 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--active">
|
||||||
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="">
|
<a class="md-nav__link md-nav__link--active" href=".">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -246,21 +335,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
<li class="md-nav__item">
|
||||||
<label class="md-nav__title" for="__nav_1">
|
<a class="md-nav__link" href="about/">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
|
||||||
<a class="md-nav__link md-nav__link--active" href=".">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,33 +350,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="cv/">
|
<a class="md-nav__link" href="cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -359,8 +410,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -371,8 +422,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -399,22 +450,14 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-content" data-md-component="content">
|
<div class="md-content" data-md-component="content">
|
||||||
<article class="md-content__inner md-typeset"><a class="md-content__button md-icon" download="Über mich.pdf" href="index.pdf" title="Download as PDF"><html><body><svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m14 2 6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm4 18V9h-5V4H6v16zm-6-1-4-4h2.5v-3h3v3H16z"></path></svg></body></html></a>
|
<article class="md-content__inner md-typeset">
|
||||||
|
<h1>Home</h1>
|
||||||
<h1 id="ein-herzliches-willkommen">Ein herzliches Willkommen!</h1>
|
|
||||||
<p>Hey, willkommen auf meiner Seite! Schön, dass du hier bist. Lass mich dir ein bisschen über mich erzählen.</p>
|
|
||||||
<p>Mit über 25 Jahren Erfahrung als IT Operations Engineer kenne ich die Herausforderungen und Chancen in der IT-Welt genau. Als begeisterter Open-Source-Fan und Systemadministrator setze ich auf innovative Technologien, um Lösungen zu entwickeln, die effizient, sicher und nachhaltig sind.</p>
|
|
||||||
<p>Einer meiner Schwerpunkte liegt auf <strong>ISO 27001-Themen</strong>, also allem, was mit Informationssicherheit zu tun hat. Ob es darum geht, Risiken zu bewerten, Sicherheitsrichtlinien zu erstellen oder ein ISMS aufzubauen – ich helfe dabei, Sicherheit auf das nächste Level zu bringen.</p>
|
|
||||||
<p>Im Bereich <strong>Endpoint Management</strong> habe ich Erfahrung mit verschiedenen MDM-Lösungen wie MicroMDM, JamfNow! und Microsoft Intune. Damit sorge ich dafür, dass Geräte sicher und unkompliziert verwaltet werden können.</p>
|
|
||||||
<p>Durch meine langjährige Arbeit als Entwickler eines ERP-Systems für die Schmuckbranche verstehe ich, worauf es in der Softwareentwicklung ankommt. Diese Perspektive hilft mir, eng mit Entwicklern zusammenzuarbeiten und <strong>DevOps</strong>-Prozesse zu optimieren.</p>
|
|
||||||
<p>Als <strong>System Reliability Engineer</strong> ist es mein Ziel, Systeme so zu gestalten, dass sie stabil, skalierbar und automatisiert sind. Ich bin überzeugt, dass Open Source oft die bessere Wahl ist, und liebe es, neue Technologien auszuprobieren und kreative Lösungen zu finden.</p>
|
|
||||||
<p>Ich freue mich darauf, gemeinsam an spannenden Projekten zu arbeiten und die IT-Welt ein Stück besser zu machen!</p>
|
|
||||||
<aside class="md-source-file">
|
<aside class="md-source-file">
|
||||||
<span class="md-source-file__fact">
|
<span class="md-source-file__fact">
|
||||||
<span class="md-icon" title="Letztes Update">
|
<span class="md-icon" title="Letztes Update">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4 2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2z"></path></svg>
|
||||||
</span>
|
</span>
|
||||||
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">25. Dezember 2024</span>
|
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">27. Dezember 2024</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="md-source-file__fact">
|
<span class="md-source-file__fact">
|
||||||
<span class="md-icon" title="Erstellt">
|
<span class="md-icon" title="Erstellt">
|
||||||
|
@ -445,13 +488,13 @@
|
||||||
</main>
|
</main>
|
||||||
<footer class="md-footer">
|
<footer class="md-footer">
|
||||||
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
||||||
<a aria-label="Weiter: Changelog" class="md-footer__link md-footer__link--next" href="changelog/">
|
<a aria-label="Weiter: Über mich" class="md-footer__link md-footer__link--next" href="about/">
|
||||||
<div class="md-footer__title">
|
<div class="md-footer__title">
|
||||||
<span class="md-footer__direction">
|
<span class="md-footer__direction">
|
||||||
Weiter
|
Weiter
|
||||||
</span>
|
</span>
|
||||||
<div class="md-ellipsis">
|
<div class="md-ellipsis">
|
||||||
Changelog
|
Über mich
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-footer__button md-icon">
|
<div class="md-footer__button md-icon">
|
||||||
|
@ -515,6 +558,10 @@
|
||||||
<script id="__config" type="application/json">{"base": ".", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": ".", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="javascripts/tablesort.js"></script>
|
<script src="assets/js/tablesort.js"></script>
|
||||||
|
<script src="assets/js/mathjax.js"></script>
|
||||||
|
<script src="assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="assets/js/typewriter.js"></script>
|
||||||
|
<script src="assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
BIN
index.pdf
|
@ -3,11 +3,9 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/license/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/license/" rel="canonical"/>
|
||||||
<link href="../changelog/" rel="prev"/>
|
|
||||||
<link href="../cv/" rel="next"/>
|
|
||||||
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
<link href="../feed_rss_created.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/>
|
||||||
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
<link href="../feed_rss_updated.xml" rel="alternate" title="RSS Feed der aktualisierten Inhalte" type="application/rss+xml"/>
|
||||||
<link href="../images/favicon.png" rel="icon"/>
|
<link href="../images/favicon.png" rel="icon"/>
|
||||||
|
@ -15,12 +13,25 @@
|
||||||
<title>Lizenz - Stephan Hadan</title>
|
<title>Lizenz - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Lizenz - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/license.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/license/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Lizenz - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/license.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -30,30 +41,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -80,17 +67,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -144,13 +127,25 @@
|
||||||
<nav aria-label="Hauptnavigation" class="md-tabs" data-md-component="tabs">
|
<nav aria-label="Hauptnavigation" class="md-tabs" data-md-component="tabs">
|
||||||
<div class="md-grid">
|
<div class="md-grid">
|
||||||
<ul class="md-tabs__list">
|
<ul class="md-tabs__list">
|
||||||
<li class="md-tabs__item md-tabs__item--active">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../cv/">
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
@ -236,9 +231,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input checked="" class="md-nav__toggle md-toggle" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,20 +241,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="true" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,34 +256,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item md-nav__item--active">
|
|
||||||
<input class="md-nav__toggle md-toggle" id="__toc" type="checkbox"/>
|
|
||||||
<a class="md-nav__link md-nav__link--active" href="./">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../cv/">
|
<a class="md-nav__link" href="../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -360,8 +316,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -372,8 +328,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -456,34 +412,6 @@ IN THE SOFTWARE.</p>
|
||||||
</button>
|
</button>
|
||||||
</main>
|
</main>
|
||||||
<footer class="md-footer">
|
<footer class="md-footer">
|
||||||
<nav aria-label="Fußzeile" class="md-footer__inner md-grid">
|
|
||||||
<a aria-label="Zurück: Changelog" class="md-footer__link md-footer__link--prev" href="../changelog/">
|
|
||||||
<div class="md-footer__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"></path></svg>
|
|
||||||
</div>
|
|
||||||
<div class="md-footer__title">
|
|
||||||
<span class="md-footer__direction">
|
|
||||||
Zurück
|
|
||||||
</span>
|
|
||||||
<div class="md-ellipsis">
|
|
||||||
Changelog
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<a aria-label="Weiter: Lebenslauf" class="md-footer__link md-footer__link--next" href="../cv/">
|
|
||||||
<div class="md-footer__title">
|
|
||||||
<span class="md-footer__direction">
|
|
||||||
Weiter
|
|
||||||
</span>
|
|
||||||
<div class="md-ellipsis">
|
|
||||||
Lebenslauf
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="md-footer__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"></path></svg>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</nav>
|
|
||||||
<div class="md-footer-meta md-typeset">
|
<div class="md-footer-meta md-typeset">
|
||||||
<div class="md-footer-meta__inner md-grid">
|
<div class="md-footer-meta__inner md-grid">
|
||||||
<div class="md-copyright">
|
<div class="md-copyright">
|
||||||
|
@ -540,6 +468,10 @@ IN THE SOFTWARE.</p>
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
17
main.html.old
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
<!--{% block announce %}
|
||||||
|
Für Updates folge bitte <strong>@stiebke</strong> auf
|
||||||
|
<a rel="me" href="https://freiburg.social/@squidfunk">
|
||||||
|
<span class="twemoji mastodon">
|
||||||
|
{% include ".icons/fontawesome/brands/mastodon.svg" %}
|
||||||
|
</span>
|
||||||
|
<strong>freiburg.social</strong>
|
||||||
|
</a>
|
||||||
|
und <strong>stiebke.bsky.social</strong> auf
|
||||||
|
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
||||||
|
<span class="twemoji bluesky">
|
||||||
|
{% include ".icons/fontawesome/brands/bluesky.svg" %}
|
||||||
|
</span>
|
||||||
|
<strong>Bluesky</strong>
|
||||||
|
</a>
|
||||||
|
{% endblock %}-->
|
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8"/>
|
||||||
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
<meta content="width=device-width,initial-scale=1" name="viewport"/>
|
||||||
<meta content="Write your documentation in Markdown and create a professional static site in minutes – searchable, customizable, in 60+ languages, for all devices" name="description"/>
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" name="description"/>
|
||||||
<meta content="Stephan Hadan" name="author"/>
|
<meta content="Stephan Hadan" name="author"/>
|
||||||
<link href="https://stephan.hadan.de/projects/" rel="canonical"/>
|
<link href="https://stephan.hadan.de/projects/" rel="canonical"/>
|
||||||
<link href="../cv/" rel="prev"/>
|
<link href="../cv/" rel="prev"/>
|
||||||
|
@ -15,12 +15,25 @@
|
||||||
<title>Projekte - Stephan Hadan</title>
|
<title>Projekte - Stephan Hadan</title>
|
||||||
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/main.6f50c755.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
<link href="../assets/stylesheets/palette.ab4e12ef.min.css" rel="stylesheet"/>
|
||||||
<link href="../assets/external/fonts.googleapis.com/css.49ea35f2.css" rel="stylesheet"/>
|
<link href="../assets/external/fonts.googleapis.com/css.5c146275.css" rel="stylesheet"/>
|
||||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
<style>:root{--md-text-font:"Noto Sans";--md-code-font:"Roboto Mono"}</style>
|
||||||
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
<link href="../assets/_mkdocstrings.css" rel="stylesheet"/>
|
||||||
|
<link href="../assets/css/custom.css" rel="stylesheet"/>
|
||||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||||
|
<meta content="website" property="og:type"/>
|
||||||
|
<meta content="Projekte - Stephan Hadan" property="og:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="og:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/projects/index.png" property="og:image"/>
|
||||||
|
<meta content="image/png" property="og:image:type"/>
|
||||||
|
<meta content="1200" property="og:image:width"/>
|
||||||
|
<meta content="630" property="og:image:height"/>
|
||||||
|
<meta content="https://stephan.hadan.de/projects/" property="og:url"/>
|
||||||
|
<meta content="summary_large_image" property="twitter:card"/>
|
||||||
|
<meta content="Projekte - Stephan Hadan" property="twitter:title"/>
|
||||||
|
<meta content="💻 OSS enthusiast | 🔧 Mac & beyond sysadmin | 🤖 AI practitioner | 🆔 Zero Trust advocate | 🚀 Open Source > proprietary | Always exploring tech’s edge!" property="twitter:description"/>
|
||||||
|
<meta content="https://stephan.hadan.de/assets/images/social/projects/index.png" property="twitter:image"/>
|
||||||
</head>
|
</head>
|
||||||
<body data-md-color-accent="indigo" data-md-color-primary="indigo" data-md-color-scheme="default" dir="ltr">
|
<body data-md-color-accent="amber" data-md-color-primary="indigo" data-md-color-scheme="slate" dir="ltr">
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="drawer" id="__drawer" type="checkbox"/>
|
||||||
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
<input autocomplete="off" class="md-toggle" data-md-toggle="search" id="__search" type="checkbox"/>
|
||||||
<label class="md-overlay" for="__drawer"></label>
|
<label class="md-overlay" for="__drawer"></label>
|
||||||
|
@ -30,30 +43,6 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div data-md-component="announce">
|
<div data-md-component="announce">
|
||||||
<aside class="md-banner">
|
|
||||||
<div class="md-banner__inner md-grid md-typeset">
|
|
||||||
<button aria-label="Nicht mehr anzeigen" class="md-banner__button md-icon">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></svg>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
|
|
||||||
Für Updates folge bitte <strong>@stiebke</strong> auf
|
|
||||||
<a href="https://freiburg.social/@squidfunk" rel="me">
|
|
||||||
<span class="twemoji mastodon">
|
|
||||||
<svg viewbox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>freiburg.social</strong>
|
|
||||||
</a>
|
|
||||||
und <strong>stiebke.bsky.social</strong> auf
|
|
||||||
<a href="https://bsky.app/profile/stiebke.bsky.social">
|
|
||||||
<span class="twemoji bluesky">
|
|
||||||
<svg viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2 42.1-31.6 110.3-56 110.3 21.8 0 15.5-8.9 130.5-14.1 149.2-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1 10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"></path></svg>
|
|
||||||
</span>
|
|
||||||
<strong>Bluesky</strong>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<script>var el=document.querySelector("[data-md-component=announce]");if(el){var content=el.querySelector(".md-typeset");__md_hash(content.innerHTML)===__md_get("__announce")&&(el.hidden=!0)}</script>
|
|
||||||
</aside>
|
|
||||||
</div>
|
</div>
|
||||||
<header class="md-header" data-md-component="header">
|
<header class="md-header" data-md-component="header">
|
||||||
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
<nav aria-label="Kopfzeile" class="md-header__inner md-grid">
|
||||||
|
@ -80,17 +69,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="md-header__option" data-md-component="palette">
|
<form class="md-header__option" data-md-component="palette">
|
||||||
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_0" name="__palette" type="radio"/>
|
<input aria-label="Switch to light mode" class="md-option" data-md-color-accent="amber" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="slate" id="__palette_0" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
<label class="md-header__button md-icon" for="__palette_1" hidden="" title="Switch to light mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1M8 13h8v-2H8zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4a5 5 0 0 0 5-5 5 5 0 0 0-5-5"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M10 2c-1.82 0-3.53.5-5 1.35C8 5.08 10 8.3 10 12s-2 6.92-5 8.65C6.47 21.5 8.18 22 10 22a10 10 0 0 0 10-10A10 10 0 0 0 10 2"></path></svg>
|
||||||
</label>
|
</label>
|
||||||
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: light)" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
<input aria-label="Switch to dark mode" class="md-option" data-md-color-accent="deep-purple" data-md-color-media="" data-md-color-primary="indigo" data-md-color-scheme="default" id="__palette_1" name="__palette" type="radio"/>
|
||||||
<label class="md-header__button md-icon" for="__palette_2" hidden="" title="Switch to dark mode">
|
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to dark mode">
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-2.69L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20z"></path></svg>
|
||||||
</label>
|
|
||||||
<input aria-label="Switch to system preference" class="md-option" data-md-color-accent="indigo" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-primary="black" data-md-color-scheme="slate" id="__palette_2" name="__palette" type="radio"/>
|
|
||||||
<label class="md-header__button md-icon" for="__palette_0" hidden="" title="Switch to system preference">
|
|
||||||
<svg viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5M7 15a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"></path></svg>
|
|
||||||
</label>
|
</label>
|
||||||
</form>
|
</form>
|
||||||
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
||||||
|
@ -148,9 +133,21 @@
|
||||||
<a class="md-tabs__link" href="..">
|
<a class="md-tabs__link" href="..">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
Home
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="md-tabs__item">
|
||||||
|
<a class="md-tabs__link" href="../about/">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Über mich
|
||||||
|
|
||||||
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-tabs__item">
|
<li class="md-tabs__item">
|
||||||
<a class="md-tabs__link" href="../cv/">
|
<a class="md-tabs__link" href="../cv/">
|
||||||
|
@ -236,9 +233,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
<ul class="md-nav__list" data-md-scrollfix="">
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_1" type="checkbox"/>
|
<a class="md-nav__link" href="..">
|
||||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -247,20 +243,10 @@
|
||||||
|
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
</a>
|
||||||
</label>
|
</li>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_1_label" class="md-nav" data-md-level="1">
|
|
||||||
<label class="md-nav__title" for="__nav_1">
|
|
||||||
<span class="md-nav__icon md-icon"></span>
|
|
||||||
|
|
||||||
|
|
||||||
Home
|
|
||||||
|
|
||||||
|
|
||||||
</label>
|
|
||||||
<ul class="md-nav__list" data-md-scrollfix="">
|
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="..">
|
<a class="md-nav__link" href="../about/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,33 +258,6 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item">
|
<li class="md-nav__item">
|
||||||
<a class="md-nav__link" href="../changelog/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Changelog
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../license/">
|
|
||||||
<span class="md-ellipsis">
|
|
||||||
|
|
||||||
|
|
||||||
Lizenz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</li>
|
|
||||||
<li class="md-nav__item">
|
|
||||||
<a class="md-nav__link" href="../cv/">
|
<a class="md-nav__link" href="../cv/">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
@ -360,8 +319,8 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="md-nav__item md-nav__item--nested">
|
<li class="md-nav__item md-nav__item--nested">
|
||||||
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_7" type="checkbox"/>
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" id="__nav_8" type="checkbox"/>
|
||||||
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
|
<label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
|
||||||
<span class="md-ellipsis">
|
<span class="md-ellipsis">
|
||||||
|
|
||||||
|
|
||||||
|
@ -372,8 +331,8 @@
|
||||||
</span>
|
</span>
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
</label>
|
</label>
|
||||||
<nav aria-expanded="false" aria-labelledby="__nav_7_label" class="md-nav" data-md-level="1">
|
<nav aria-expanded="false" aria-labelledby="__nav_8_label" class="md-nav" data-md-level="1">
|
||||||
<label class="md-nav__title" for="__nav_7">
|
<label class="md-nav__title" for="__nav_8">
|
||||||
<span class="md-nav__icon md-icon"></span>
|
<span class="md-nav__icon md-icon"></span>
|
||||||
|
|
||||||
|
|
||||||
|
@ -523,6 +482,10 @@
|
||||||
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
<script id="__config" type="application/json">{"base": "..", "features": ["announce.dismiss", "content.code.copy", "navigation.instant", "navigation.instant.progress", "navigation.tracking", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.footer", "navigation.path", "navigation.instant.preview", "toc.follow", "toc.integrate", "navigation.top", "search.suggest", "search.highlight", "search.share"], "search": "../assets/javascripts/workers/search.c7c1ca2c.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}}</script>
|
||||||
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
<script src="../assets/javascripts/bundle.b71cdcd1.min.js"></script>
|
||||||
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
<script src="../assets/external/unpkg.com/tablesort@5.3.0/dist/tablesort.min.js"></script>
|
||||||
<script src="../javascripts/tablesort.js"></script>
|
<script src="../assets/js/tablesort.js"></script>
|
||||||
|
<script src="../assets/js/mathjax.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
|
<script src="../assets/js/typewriter.js"></script>
|
||||||
|
<script src="../assets/external/unpkg.com/typewriter-effect@latest/dist/core.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|