diff --git a/404.html b/404.html new file mode 100644 index 0000000..f273292 --- /dev/null +++ b/404.html @@ -0,0 +1,3 @@ + + not-matthias +
Page not found :(
\ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..f92f7a7 --- /dev/null +++ b/about/index.html @@ -0,0 +1,4 @@ + + About + +
\ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..917f056 --- /dev/null +++ b/atom.xml @@ -0,0 +1,105 @@ + + + not-matthias + + + Zola + 2023-01-06T00:00:00+00:00 + https://not-matthias.github.io/apollo/atom.xml + + Math Symbol Support Test + 2023-01-06T00:00:00+00:00 + 2023-01-06T00:00:00+00:00 + + Unknown + + + https://not-matthias.github.io/apollo/posts/math-symbols-test/ + + <h1 id="inline-math">Inline Math</h1> +<ul> +<li>$(a+b)^2$ = $a^2 + 2ab + b^2$</li> +<li>A polynomial P of degree d over $\mathbb{F}_p$ is an expression of the form +$P(s) = a_0 + a_1 . s + a_2 . s^2 + ... + a_d . s^d$ for some +$a_0,..,a_d \in \mathbb{F}_p$</li> +</ul> +<h1 id="displayed-math">Displayed Math</h1> +<p>$$ +p := (\sum_{k∈I}{c_k.v_k} + \delta_v.t(x))·(\sum_{k∈I}{c_k.w_k} + \delta_w.t(x)) − (\sum_{k∈I}{c_k.y_k} + \delta_y.t(x)) +$$</p> + + + + + Table of Contents Test + 2022-01-02T00:00:00+00:00 + 2022-01-02T00:00:00+00:00 + + Unknown + + + https://not-matthias.github.io/apollo/posts/table-of-contents/ + + <h1 id="heading-1">Heading 1</h1> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h2 id="heading-2">Heading 2</h2> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h3 id="heading-3">Heading 3</h3> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-1">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h3 id="heading-3-1">Heading 3</h3> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-2">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-3">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<hr /> +<h2 id="heading-2-1">Heading 2</h2> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h3 id="heading-3-2">Heading 3</h3> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-4">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-5">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h3 id="heading-3-3">Heading 3</h3> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-6">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> +<h4 id="heading-4-7">Heading 4</h4> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.</p> + + + + + Markdown Test + 2022-01-01T00:00:00+00:00 + 2022-01-01T00:00:00+00:00 + + Unknown + + + https://not-matthias.github.io/apollo/posts/markdown/ + + <h2 id="code-block">Code Block</h2> +<pre data-lang="rust" style="background-color:#0f1419;color:#bfbab0;" class="language-rust "><code class="language-rust" data-lang="rust"><span style="color:#ff7733;">fn </span><span style="color:#ffb454;">main</span><span>() { +</span><span> </span><span style="color:#f07178;">println!</span><span>(</span><span style="color:#c2d94c;">&quot;Hello World&quot;</span><span>)</span><span style="color:#bfbab0cc;">; +</span><span>} +</span></code></pre> +<h2 id="quote">Quote</h2> +<blockquote> +<p>Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.</p> +</blockquote> +<ul> +<li>Albert Einstein</li> +</ul> +<h2 id="code-tags">Code tags</h2> +<p>Lorem ipsum <code>dolor</code> sit amet, <code>consectetur adipiscing</code> elit. +<code>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</code></p> + + + + diff --git a/feather/moon.svg b/feather/moon.svg new file mode 100644 index 0000000..dbf7c6c --- /dev/null +++ b/feather/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/feather/sun.svg b/feather/sun.svg new file mode 100644 index 0000000..7f51b94 --- /dev/null +++ b/feather/sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fonts.css b/fonts.css new file mode 100644 index 0000000..a843da6 --- /dev/null +++ b/fonts.css @@ -0,0 +1 @@ +@font-face{font-family:"Jetbrains Mono";font-style:normal;font-weight:400;src:url("../fonts/JetbrainsMono/JetBrainsMono-Regular.ttf"),local("ttf");font-display:swap}@font-face{font-family:"Jetbrains Mono";font-style:normal;font-weight:700;src:url("../fonts/JetbrainsMono/JetBrainsMono-Bold.ttf"),local("ttf");font-display:swap}@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:400;src:url("../fonts/SpaceGrotesk/SpaceGrotesk-Regular.ttf"),local("ttf");font-display:swap}@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:700;src:url("../fonts/SpaceGrotesk/SpaceGrotesk-Bold.ttf"),local("ttf");font-display:swap} \ No newline at end of file diff --git a/fonts/.gitkeep b/fonts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/fonts/JetbrainsMono/JetBrainsMono-Bold.ttf b/fonts/JetbrainsMono/JetBrainsMono-Bold.ttf new file mode 100644 index 0000000..710c34b Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-Bold.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-BoldItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-BoldItalic.ttf new file mode 100644 index 0000000..fdff00f Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-BoldItalic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-ExtraBold.ttf b/fonts/JetbrainsMono/JetBrainsMono-ExtraBold.ttf new file mode 100644 index 0000000..eb94300 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-ExtraBold.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-ExtraBoldItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-ExtraBoldItalic.ttf new file mode 100644 index 0000000..b70b4e7 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-ExtraBoldItalic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-ExtraLight.ttf b/fonts/JetbrainsMono/JetBrainsMono-ExtraLight.ttf new file mode 100644 index 0000000..74efced Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-ExtraLight.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-ExtraLightItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-ExtraLightItalic.ttf new file mode 100644 index 0000000..1a9d2d3 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-ExtraLightItalic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-Italic.ttf b/fonts/JetbrainsMono/JetBrainsMono-Italic.ttf new file mode 100644 index 0000000..ffd5d77 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-Italic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-Light.ttf b/fonts/JetbrainsMono/JetBrainsMono-Light.ttf new file mode 100644 index 0000000..c0682f9 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-Light.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-LightItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-LightItalic.ttf new file mode 100644 index 0000000..f20bac9 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-LightItalic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-Medium.ttf b/fonts/JetbrainsMono/JetBrainsMono-Medium.ttf new file mode 100644 index 0000000..17ff945 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-Medium.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-MediumItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-MediumItalic.ttf new file mode 100644 index 0000000..9b699bb Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-MediumItalic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-Regular.ttf b/fonts/JetbrainsMono/JetBrainsMono-Regular.ttf new file mode 100644 index 0000000..9a5202e Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-Regular.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-SemiBold.ttf b/fonts/JetbrainsMono/JetBrainsMono-SemiBold.ttf new file mode 100644 index 0000000..84b7795 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-SemiBold.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-SemiBoldItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-SemiBoldItalic.ttf new file mode 100644 index 0000000..ffa1f39 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-SemiBoldItalic.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-Thin.ttf b/fonts/JetbrainsMono/JetBrainsMono-Thin.ttf new file mode 100644 index 0000000..1317bfe Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-Thin.ttf differ diff --git a/fonts/JetbrainsMono/JetBrainsMono-ThinItalic.ttf b/fonts/JetbrainsMono/JetBrainsMono-ThinItalic.ttf new file mode 100644 index 0000000..bc72439 Binary files /dev/null and b/fonts/JetbrainsMono/JetBrainsMono-ThinItalic.ttf differ diff --git a/fonts/SpaceGrotesk/SpaceGrotesk-Bold.ttf b/fonts/SpaceGrotesk/SpaceGrotesk-Bold.ttf new file mode 100644 index 0000000..869a60f Binary files /dev/null and b/fonts/SpaceGrotesk/SpaceGrotesk-Bold.ttf differ diff --git a/fonts/SpaceGrotesk/SpaceGrotesk-Light.ttf b/fonts/SpaceGrotesk/SpaceGrotesk-Light.ttf new file mode 100644 index 0000000..76a195f Binary files /dev/null and b/fonts/SpaceGrotesk/SpaceGrotesk-Light.ttf differ diff --git a/fonts/SpaceGrotesk/SpaceGrotesk-Medium.ttf b/fonts/SpaceGrotesk/SpaceGrotesk-Medium.ttf new file mode 100644 index 0000000..667905f Binary files /dev/null and b/fonts/SpaceGrotesk/SpaceGrotesk-Medium.ttf differ diff --git a/fonts/SpaceGrotesk/SpaceGrotesk-Regular.ttf b/fonts/SpaceGrotesk/SpaceGrotesk-Regular.ttf new file mode 100644 index 0000000..792fe1b Binary files /dev/null and b/fonts/SpaceGrotesk/SpaceGrotesk-Regular.ttf differ diff --git a/fonts/SpaceGrotesk/SpaceGrotesk-SemiBold.ttf b/fonts/SpaceGrotesk/SpaceGrotesk-SemiBold.ttf new file mode 100644 index 0000000..0219302 Binary files /dev/null and b/fonts/SpaceGrotesk/SpaceGrotesk-SemiBold.ttf differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..6316106 --- /dev/null +++ b/index.html @@ -0,0 +1,3 @@ + + not-matthias +
\ No newline at end of file diff --git a/js/count.js b/js/count.js new file mode 100644 index 0000000..7c504bc --- /dev/null +++ b/js/count.js @@ -0,0 +1,270 @@ +// GoatCounter: https://www.goatcounter.com +// This file (and *only* this file) is released under the ISC license: +// https://opensource.org/licenses/ISC +;(function() { + 'use strict'; + + if (window.goatcounter && window.goatcounter.vars) // Compatibility with very old version; do not use. + window.goatcounter = window.goatcounter.vars + else + window.goatcounter = window.goatcounter || {} + + // Load settings from data-goatcounter-settings. + var s = document.querySelector('script[data-goatcounter]') + if (s && s.dataset.goatcounterSettings) { + try { var set = JSON.parse(s.dataset.goatcounterSettings) } + catch (err) { console.error('invalid JSON in data-goatcounter-settings: ' + err) } + for (var k in set) + if (['no_onload', 'no_events', 'allow_local', 'allow_frame', 'path', 'title', 'referrer', 'event'].indexOf(k) > -1) + window.goatcounter[k] = set[k] + } + + var enc = encodeURIComponent + + // Get all data we're going to send off to the counter endpoint. + var get_data = function(vars) { + var data = { + p: (vars.path === undefined ? goatcounter.path : vars.path), + r: (vars.referrer === undefined ? goatcounter.referrer : vars.referrer), + t: (vars.title === undefined ? goatcounter.title : vars.title), + e: !!(vars.event || goatcounter.event), + s: [window.screen.width, window.screen.height, (window.devicePixelRatio || 1)], + b: is_bot(), + q: location.search, + } + + var rcb, pcb, tcb // Save callbacks to apply later. + if (typeof(data.r) === 'function') rcb = data.r + if (typeof(data.t) === 'function') tcb = data.t + if (typeof(data.p) === 'function') pcb = data.p + + if (is_empty(data.r)) data.r = document.referrer + if (is_empty(data.t)) data.t = document.title + if (is_empty(data.p)) data.p = get_path() + + if (rcb) data.r = rcb(data.r) + if (tcb) data.t = tcb(data.t) + if (pcb) data.p = pcb(data.p) + return data + } + + // Check if a value is "empty" for the purpose of get_data(). + var is_empty = function(v) { return v === null || v === undefined || typeof(v) === 'function' } + + // See if this looks like a bot; there is some additional filtering on the + // backend, but these properties can't be fetched from there. + var is_bot = function() { + // Headless browsers are probably a bot. + var w = window, d = document + if (w.callPhantom || w._phantom || w.phantom) + return 150 + if (w.__nightmare) + return 151 + if (d.__selenium_unwrapped || d.__webdriver_evaluate || d.__driver_evaluate) + return 152 + if (navigator.webdriver) + return 153 + return 0 + } + + // Object to urlencoded string, starting with a ?. + var urlencode = function(obj) { + var p = [] + for (var k in obj) + if (obj[k] !== '' && obj[k] !== null && obj[k] !== undefined && obj[k] !== false) + p.push(enc(k) + '=' + enc(obj[k])) + return '?' + p.join('&') + } + + // Show a warning in the console. + var warn = function(msg) { + if (console && 'warn' in console) + console.warn('goatcounter: ' + msg) + } + + // Get the endpoint to send requests to. + var get_endpoint = function() { + var s = document.querySelector('script[data-goatcounter]') + if (s && s.dataset.goatcounter) + return s.dataset.goatcounter + return (goatcounter.endpoint || window.counter) // counter is for compat; don't use. + } + + // Get current path. + var get_path = function() { + var loc = location, + c = document.querySelector('link[rel="canonical"][href]') + if (c) { // May be relative or point to different domain. + var a = document.createElement('a') + a.href = c.href + if (a.hostname.replace(/^www\./, '') === location.hostname.replace(/^www\./, '')) + loc = a + } + return (loc.pathname + loc.search) || '/' + } + + // Run function after DOM is loaded. + var on_load = function(f) { + if (document.body === null) + document.addEventListener('DOMContentLoaded', function() { f() }, false) + else + f() + } + + // Filter some requests that we (probably) don't want to count. + goatcounter.filter = function() { + if ('visibilityState' in document && document.visibilityState === 'prerender') + return 'visibilityState' + if (!goatcounter.allow_frame && location !== parent.location) + return 'frame' + if (!goatcounter.allow_local && location.hostname.match(/(localhost$|^127\.|^10\.|^172\.(1[6-9]|2[0-9]|3[0-1])\.|^192\.168\.|^0\.0\.0\.0$)/)) + return 'localhost' + if (!goatcounter.allow_local && location.protocol === 'file:') + return 'localfile' + if (localStorage && localStorage.getItem('skipgc') === 't') + return 'disabled with #toggle-goatcounter' + return false + } + + // Get URL to send to GoatCounter. + window.goatcounter.url = function(vars) { + var data = get_data(vars || {}) + if (data.p === null) // null from user callback. + return + data.rnd = Math.random().toString(36).substr(2, 5) // Browsers don't always listen to Cache-Control. + + var endpoint = get_endpoint() + if (!endpoint) + return warn('no endpoint found') + + return endpoint + urlencode(data) + } + + // Count a hit. + window.goatcounter.count = function(vars) { + var f = goatcounter.filter() + if (f) + return warn('not counting because of: ' + f) + + var url = goatcounter.url(vars) + if (!url) + return warn('not counting because path callback returned null') + + var img = document.createElement('img') + img.src = url + img.style.position = 'absolute' // Affect layout less. + img.style.bottom = '0px' + img.style.width = '1px' + img.style.height = '1px' + img.loading = 'eager' + img.setAttribute('alt', '') + img.setAttribute('aria-hidden', 'true') + + var rm = function() { if (img && img.parentNode) img.parentNode.removeChild(img) } + img.addEventListener('load', rm, false) + document.body.appendChild(img) + } + + // Get a query parameter. + window.goatcounter.get_query = function(name) { + var s = location.search.substr(1).split('&') + for (var i = 0; i < s.length; i++) + if (s[i].toLowerCase().indexOf(name.toLowerCase() + '=') === 0) + return s[i].substr(name.length + 1) + } + + // Track click events. + window.goatcounter.bind_events = function() { + if (!document.querySelectorAll) // Just in case someone uses an ancient browser. + return + + var send = function(elem) { + return function() { + goatcounter.count({ + event: true, + path: (elem.dataset.goatcounterClick || elem.name || elem.id || ''), + title: (elem.dataset.goatcounterTitle || elem.title || (elem.innerHTML || '').substr(0, 200) || ''), + referrer: (elem.dataset.goatcounterReferrer || elem.dataset.goatcounterReferral || ''), + }) + } + } + + Array.prototype.slice.call(document.querySelectorAll("*[data-goatcounter-click]")).forEach(function(elem) { + if (elem.dataset.goatcounterBound) + return + var f = send(elem) + elem.addEventListener('click', f, false) + elem.addEventListener('auxclick', f, false) // Middle click. + elem.dataset.goatcounterBound = 'true' + }) + } + + // Add a "visitor counter" frame or image. + window.goatcounter.visit_count = function(opt) { + on_load(function() { + opt = opt || {} + opt.type = opt.type || 'html' + opt.append = opt.append || 'body' + opt.path = opt.path || get_path() + opt.attr = opt.attr || {width: '200', height: (opt.no_branding ? '60' : '80')} + + opt.attr['src'] = get_endpoint() + 'er/' + enc(opt.path) + '.' + enc(opt.type) + '?' + if (opt.no_branding) opt.attr['src'] += '&no_branding=1' + if (opt.style) opt.attr['src'] += '&style=' + enc(opt.style) + if (opt.start) opt.attr['src'] += '&start=' + enc(opt.start) + if (opt.end) opt.attr['src'] += '&end=' + enc(opt.end) + + var tag = {png: 'img', svg: 'img', html: 'iframe'}[opt.type] + if (!tag) + return warn('visit_count: unknown type: ' + opt.type) + + if (opt.type === 'html') { + opt.attr['frameborder'] = '0' + opt.attr['scrolling'] = 'no' + } + + var d = document.createElement(tag) + for (var k in opt.attr) + d.setAttribute(k, opt.attr[k]) + + var p = document.querySelector(opt.append) + if (!p) + return warn('visit_count: append not found: ' + opt.append) + p.appendChild(d) + }) + } + + // Make it easy to skip your own views. + if (location.hash === '#toggle-goatcounter') { + if (localStorage.getItem('skipgc') === 't') { + localStorage.removeItem('skipgc', 't') + alert('GoatCounter tracking is now ENABLED in this browser.') + } + else { + localStorage.setItem('skipgc', 't') + alert('GoatCounter tracking is now DISABLED in this browser until ' + location + ' is loaded again.') + } + } + + if (!goatcounter.no_onload) + on_load(function() { + // 1. Page is visible, count request. + // 2. Page is not yet visible; wait until it switches to 'visible' and count. + // See #487 + if (!('visibilityState' in document) || document.visibilityState === 'visible') + goatcounter.count() + else { + var f = function(e) { + if (document.visibilityState !== 'visible') + return + document.removeEventListener('visibilitychange', f) + goatcounter.count() + } + document.addEventListener('visibilitychange', f) + } + + if (!goatcounter.no_events) + goatcounter.bind_events() + }) +})(); + diff --git a/js/imamu.js b/js/imamu.js new file mode 100644 index 0000000..c317f48 --- /dev/null +++ b/js/imamu.js @@ -0,0 +1 @@ +!function(){"use strict";!function(t){var e=t.screen,n=e.width,r=e.height,a=t.navigator.language,i=t.location,o=t.localStorage,u=t.document,c=t.history,f=i.hostname,s=i.pathname,l=i.search,d=u.currentScript;if(d){var m="data-",h=d.getAttribute.bind(d),v=h(m+"website-id"),p=h(m+"host-url"),g="false"!==h(m+"auto-track"),y=h(m+"do-not-track"),b=h(m+"domains")||"",S=b.split(",").map((function(t){return t.trim()})),k=(p?p.replace(/\/$/,""):d.src.split("/").slice(0,-1).join("/"))+"/api/send",w=n+"x"+r,N=/data-umami-event-([\w-_]+)/,T=m+"umami-event",j=300,A=function(t,e,n){var r=t[e];return function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return n.apply(null,e),r.apply(t,e)}},x=function(){return{website:v,hostname:f,screen:w,language:a,title:M,url:I,referrer:J}},E=function(){return o&&o.getItem("umami.disabled")||y&&function(){var e=t.doNotTrack,n=t.navigator,r=t.external,a="msTrackingProtectionEnabled",i=e||n.doNotTrack||n.msDoNotTrack||r&&a in r&&r[a]();return"1"==i||"yes"===i}()||b&&!S.includes(f)},O=function(t,e,n){n&&(J=I,(I=function(t){try{return new URL(t).pathname}catch(e){return t}}(n.toString()))!==J&&setTimeout(D,j))},L=function(t,e){if(void 0===e&&(e="event"),!E()){var n={"Content-Type":"application/json"};return void 0!==K&&(n["x-umami-cache"]=K),fetch(k,{method:"POST",body:JSON.stringify({type:e,payload:t}),headers:n}).then((function(t){return t.text()})).then((function(t){return K=t})).catch((function(){}))}},D=function(t,e){return L("string"==typeof t?Object.assign({},x(),{name:t,data:"object"==typeof e?e:void 0}):"object"==typeof t?t:"function"==typeof t?t(x()):x())};t.umami||(t.umami={track:D,identify:function(t){return L(Object.assign({},x(),{data:t}),"identify")}});var K,P,_,q,C,I=""+s+l,J=u.referrer,M=u.title;if(g&&!E()){c.pushState=A(c,"pushState",O),c.replaceState=A(c,"replaceState",O),C=function(t){var e=t.getAttribute.bind(t),n=e(T);if(n){var r={};return t.getAttributeNames().forEach((function(t){var n=t.match(N);n&&(r[n[1]]=e(t))})),D(n,r)}return Promise.resolve()},u.addEventListener("click",(function(t){var e=t.target,n="A"===e.tagName?e:function(t,e){for(var n=t,r=0;r title"))&&_.observe(q,{subtree:!0,characterData:!0,childList:!0});var R=function(){"complete"!==u.readyState||P||(D(),P=!0)};u.addEventListener("readystatechange",R,!0),R()}}}(window)}(); \ No newline at end of file diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..e69de29 diff --git a/js/themetoggle.js b/js/themetoggle.js new file mode 100644 index 0000000..27353c4 --- /dev/null +++ b/js/themetoggle.js @@ -0,0 +1,43 @@ +function setTheme(mode) { + localStorage.setItem("theme-storage", mode); + let htmlElement = document.querySelector("html"); + + if (mode === "dark") { + document.getElementById("darkModeStyle").disabled = false; + htmlElement.classList.remove("light") + htmlElement.classList.add("dark") + + document.getElementById("sun-icon").style.display = "inline-block"; + document.getElementById("moon-icon").style.display = "none"; + } else if (mode === "light") { + document.getElementById("darkModeStyle").disabled = true; + htmlElement.classList.remove("dark") + htmlElement.classList.add("light") + + document.getElementById("sun-icon").style.display = "none"; + document.getElementById("moon-icon").style.display = "inline-block"; + } +} + +function toggleTheme() { + if (localStorage.getItem("theme-storage") === "light") { + setTheme("dark"); + } else if (localStorage.getItem("theme-storage") === "dark") { + setTheme("light"); + } +} + +function getSavedTheme() { + let currentTheme = localStorage.getItem("theme-storage"); + if(!currentTheme) { + if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { + currentTheme = "dark"; + } else { + currentTheme = "light"; + } + } + + return currentTheme; +} + +setTheme(getSavedTheme()); \ No newline at end of file diff --git a/main.css b/main.css new file mode 100644 index 0000000..d09730e --- /dev/null +++ b/main.css @@ -0,0 +1 @@ +.cards{display:grid;grid-template-columns:repeat(auto-fill, minmax(400px, 1fr));grid-template-rows:auto;gap:24px;padding:12px 0}.card{min-height:100px;background:var(--bg-2);border:2px solid var(--border-color);border-radius:10px;overflow:hidden}.card-info{padding:0 24px 24px 24px}.card-title{margin-top:.7em}.card-image{border:unset;width:100%}.card-image-placeholder{height:12px;width:100%}.card-description{margin-top:.5em;overflow:hidden}@media all and (max-width: 720px){.cards{gap:18px}}code{background-color:var(--bg-1);padding:.1em .2em;border-radius:5px;border:1px solid var(--border-color)}pre{border-radius:5px;border:1px solid var(--border-color);line-height:1.4;overflow-x:auto;padding:1em}pre code{background-color:rgba(0,0,0,0);color:inherit;font-size:100%;padding:0;border:0}pre{font-family:var(--code-font);position:relative;-webkit-overflow-scrolling:touch}pre code[class*=language-]{-webkit-overflow-scrolling:touch}pre code[class*=language-]::before{background:#000;border-radius:0 0 .25rem .25rem;color:#fff;font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;position:absolute;right:.1rem;margin-top:.1rem;text-align:right;text-transform:uppercase;top:0}pre code[class=language-javaScript]::before,pre code[class=language-js]::before{content:"js";background:#f7df1e;color:#000}pre code[class*=language-yml]::before,pre code[class*=language-yaml]::before{content:"yaml";background:#f71e6a;color:#fff}pre code[class*=language-shell]::before,pre code[class*=language-bash]::before,pre code[class*=language-sh]::before{content:"shell";background:green;color:#fff}pre code[class*=language-json]::before{content:"json";background:#1e90ff;color:#000}pre code[class*=language-python]::before,pre code[class*=language-py]::before{content:"py";background:blue;color:#ff0}pre code[class*=language-css]::before{content:"css";background:cyan;color:#000}pre code[class*=language-go]::before{content:"Go";background:cyan;color:#4169e1}pre code[class*=language-md]::before,pre code[class*=language-md]::before{content:"Markdown";background:#4169e1;color:#f5f5f5}pre code[class*=language-rust]::before,pre code[class*=language-rs]::before{content:"rust";background:#fff8f6;color:#ff4647}.page-header{font-size:2.5em;line-height:100%;font-family:var(--header-font);margin:4rem 0px 1rem 0px}.centered-header{font-family:var(--header-font);position:absolute;top:40%;left:50%;transform:translate(-50%, -50%);text-align:center;font-size:4em}header{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:1em 0}header .main{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;font-size:1.5rem;margin-bottom:10px}.socials{flex-grow:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:6px}.social{border-bottom:unset;background-image:unset;padding:2px}.social>img{border:unset;width:24px;height:24px}.meta{color:#999;letter-spacing:-.5px}#dark-mode-toggle>img{display:none;width:15px;height:15px;border:unset}h1,h2,h3,h4,h5,h6{font-size:1.2rem;margin-top:2em}h1::before{color:var(--primary-color);content:"# "}h2::before{color:var(--primary-color);content:"## "}h3::before{color:var(--primary-color);content:"### "}h4::before{color:var(--primary-color);content:"#### "}h5::before{color:var(--primary-color);content:"##### "}h6::before{color:var(--primary-color);content:"###### "}img{border:3px solid #ececec;max-width:100%}figure{box-sizing:border-box;display:inline-block;margin:0;max-width:100%}figure img{max-height:500px}@media screen and (min-width: 600px){figure{padding:0 40px}}figure h4{font-size:1rem;margin:0;margin-bottom:1em}figure h4::before{content:"↳ "}svg{max-height:15px}.primary-color{color:var(--primary-color)}.draft-label{color:var(--hover-color);text-decoration:none;padding:2px 4px;border-radius:4px;margin-left:6px;background-color:var(--primary-color)}::-moz-selection{background:var(--primary-color);color:var(--hover-color);text-shadow:none}::selection{background:var(--primary-color);color:var(--hover-color)}p{line-height:1.5}hr{border:0;border-top:3px solid var(--border-color);margin:1em 0}blockquote{border-left:3px solid var(--border-color);color:#737373;margin:0;padding-left:1em}a{border-bottom:3px solid var(--primary-color);color:inherit;text-decoration:none}a:hover{background-color:var(--primary-color);color:var(--hover-color)}time{color:grey}.list>ul{margin:0;padding:1rem 0 0 0}.list-item{margin-bottom:30px}@media all and (max-width: 640px){.post-header{display:grid;grid-template-rows:auto 1fr}.post-header h1{margin-top:0}.post-header h1 a{border-bottom:none}}@media all and (min-width: 640px){.post-header{display:grid;gap:1rem;grid-row-gap:1.5rem;grid-template-columns:auto 1fr}.post-header h1{margin:0;font-size:130%}.post-header h1 a{border-bottom:none}}#dark-mode-toggle{border-bottom:none}#dark-mode-toggle:hover{background-color:rgba(0,0,0,0)}table{border-spacing:0;border-collapse:collapse}table th{padding:6px 13px;border:1px solid #dfe2e5;font-size:large}table td{padding:6px 13px;border:1px solid #dfe2e5}.tags li::before{content:"🏷 "}.tags a{border-bottom:3px solid var(--primary-color)}.tags a:hover{color:var(--hover_color);background-color:var(--primary-color)}:root{--border-color: var(--bg-1);--text-font: "Jetbrains Mono";--header-font: "Space Grotesk", "Helvetica", sans-serif;--code-font: "Jetbrains Mono"}html{background-color:var(--bg-0);color:var(--text-0);font-family:var(--text-font);line-height:1.6em}.content{max-width:1000px;margin:0 auto;padding:0 24px;word-wrap:break-word}@media all and (min-width: 640px){html{font-size:16.5px}}@media all and (min-width: 720px){html{font-size:17px}}@media all and (min-width: 960px){html{font-size:18px}} \ No newline at end of file diff --git a/posts/index.html b/posts/index.html new file mode 100644 index 0000000..7b01d7d --- /dev/null +++ b/posts/index.html @@ -0,0 +1,4 @@ + + not-matthias + +
\ No newline at end of file diff --git a/posts/markdown/index.html b/posts/markdown/index.html new file mode 100644 index 0000000..85cd6dd --- /dev/null +++ b/posts/markdown/index.html @@ -0,0 +1,7 @@ + + Markdown Test + +
Posted on

Table of Contents

Code Block

fn main() {
+    println!("Hello World");
+}
+

Quote

Two things are infinite: the universe and human stupidity; and I'm not sure about the universe.

  • Albert Einstein

Code tags

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\ No newline at end of file diff --git a/posts/math-symbols-test/index.html b/posts/math-symbols-test/index.html new file mode 100644 index 0000000..736a059 --- /dev/null +++ b/posts/math-symbols-test/index.html @@ -0,0 +1,4 @@ + + Math Symbol Support Test + +
Posted on

Table of Contents

Inline Math

  • $(a+b)^2$ = $a^2 + 2ab + b^2$
  • A polynomial P of degree d over $\mathbb{F}_p$ is an expression of the form $P(s) = a_0 + a_1 . s + a_2 . s^2 + ... + a_d . s^d$ for some $a_0,..,a_d \in \mathbb{F}_p$

Displayed Math

$$ p := (\sum_{k∈I}{c_k.v_k} + \delta_v.t(x))·(\sum_{k∈I}{c_k.w_k} + \delta_w.t(x)) − (\sum_{k∈I}{c_k.y_k} + \delta_y.t(x)) $$

\ No newline at end of file diff --git a/posts/page/1/index.html b/posts/page/1/index.html new file mode 100644 index 0000000..9bd42f9 --- /dev/null +++ b/posts/page/1/index.html @@ -0,0 +1 @@ +Redirect

Click here to be redirected. \ No newline at end of file diff --git a/posts/table-of-contents/index.html b/posts/table-of-contents/index.html new file mode 100644 index 0000000..9589e7f --- /dev/null +++ b/posts/table-of-contents/index.html @@ -0,0 +1,4 @@ + + Table of Contents Test + +

Posted on

Table of Contents

Heading 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.


Heading 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 3

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

Heading 4

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sed mollis augue, vel efficitur lacus. Pellentesque eu egestas mi. Etiam ultrices lectus sit amet aliquet ullamcorper. Praesent in erat quis est sagittis finibus. Etiam nec sapien in nulla interdum faucibus. Integer iaculis lorem quis arcu lobortis, non malesuada neque vehicula. Aenean nec tellus eu metus bibendum tempus. Sed rutrum urna ut commodo tempor. Vestibulum aliquet elit posuere turpis maximus condimentum. Sed urna libero, ornare eu tellus vitae, laoreet condimentum risus. Aenean elit lectus, mattis quis nibh nec, faucibus rutrum sapien. Sed iaculis consectetur mi, eget posuere turpis finibus et.

\ No newline at end of file diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 0000000..0bdaed8 --- /dev/null +++ b/projects/index.html @@ -0,0 +1,4 @@ + + not-matthias + +
/projects/project-1.jpg

Apollo

Modern and minimalistic blog theme.
https://images.unsplash.com/photo-1523821741446-edb2b68bb7a0?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80

Project 2

Example description
https://images.unsplash.com/photo-1462556791646-c201b8241a94?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1465&q=80

Project 3

Example description
https://images.unsplash.com/photo-1620121692029-d088224ddc74?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1632&q=80

Project 4

Example description with a lot of words but without any meaning. Why use lorem ipsum when you can just write a lot of text that has no underlying meaning?

Project 4

Example description
\ No newline at end of file diff --git a/projects/project-1.jpg b/projects/project-1.jpg new file mode 100644 index 0000000..db5232e Binary files /dev/null and b/projects/project-1.jpg differ diff --git a/projects/project-1/index.html b/projects/project-1/index.html new file mode 100644 index 0000000..640623f --- /dev/null +++ b/projects/project-1/index.html @@ -0,0 +1,4 @@ + + Apollo + +

Example project page

\ No newline at end of file diff --git a/projects/project-2/index.html b/projects/project-2/index.html new file mode 100644 index 0000000..d901eab --- /dev/null +++ b/projects/project-2/index.html @@ -0,0 +1,4 @@ + + Project 2 + +

Example project page

\ No newline at end of file diff --git a/projects/project-3/index.html b/projects/project-3/index.html new file mode 100644 index 0000000..51de7b2 --- /dev/null +++ b/projects/project-3/index.html @@ -0,0 +1,4 @@ + + Project 3 + +

Example project page

\ No newline at end of file diff --git a/projects/project-4/index.html b/projects/project-4/index.html new file mode 100644 index 0000000..be25fca --- /dev/null +++ b/projects/project-4/index.html @@ -0,0 +1,4 @@ + + Project 4 + +

Example project page

\ No newline at end of file diff --git a/projects/project-5/index.html b/projects/project-5/index.html new file mode 100644 index 0000000..20fcaad --- /dev/null +++ b/projects/project-5/index.html @@ -0,0 +1,4 @@ + + Project 4 + +

Example project page

\ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..5de5f12 --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Disallow: +Allow: / +Sitemap: https://not-matthias.github.io/apollo/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..c498e45 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,45 @@ + + + + https://not-matthias.github.io/apollo/ + + + https://not-matthias.github.io/apollo/about/ + + + https://not-matthias.github.io/apollo/posts/ + + + https://not-matthias.github.io/apollo/posts/markdown/ + 2022-01-01 + + + https://not-matthias.github.io/apollo/posts/math-symbols-test/ + 2023-01-06 + + + https://not-matthias.github.io/apollo/posts/page/1/ + + + https://not-matthias.github.io/apollo/posts/table-of-contents/ + 2022-01-02 + + + https://not-matthias.github.io/apollo/projects/ + + + https://not-matthias.github.io/apollo/projects/project-1/ + + + https://not-matthias.github.io/apollo/projects/project-2/ + + + https://not-matthias.github.io/apollo/projects/project-3/ + + + https://not-matthias.github.io/apollo/projects/project-4/ + + + https://not-matthias.github.io/apollo/projects/project-5/ + + diff --git a/social_icons/LICENSE b/social_icons/LICENSE new file mode 100644 index 0000000..993facc --- /dev/null +++ b/social_icons/LICENSE @@ -0,0 +1 @@ +All icons in this directory are downloaded from [FontAwesome](https://fontawesome.com/). They are part of the [free offer](https://fontawesome.com/license/free) and are licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). \ No newline at end of file diff --git a/social_icons/apple.svg b/social_icons/apple.svg new file mode 100644 index 0000000..d0532d5 --- /dev/null +++ b/social_icons/apple.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/bitcoin.svg b/social_icons/bitcoin.svg new file mode 100644 index 0000000..941d9b0 --- /dev/null +++ b/social_icons/bitcoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/deviantart.svg b/social_icons/deviantart.svg new file mode 100644 index 0000000..7dbd0b6 --- /dev/null +++ b/social_icons/deviantart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/diaspora.svg b/social_icons/diaspora.svg new file mode 100644 index 0000000..55527b5 --- /dev/null +++ b/social_icons/diaspora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/discord.svg b/social_icons/discord.svg new file mode 100644 index 0000000..f0dfeab --- /dev/null +++ b/social_icons/discord.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/discourse.svg b/social_icons/discourse.svg new file mode 100644 index 0000000..343bea6 --- /dev/null +++ b/social_icons/discourse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/email.svg b/social_icons/email.svg new file mode 100644 index 0000000..85245e2 --- /dev/null +++ b/social_icons/email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/ethereum.svg b/social_icons/ethereum.svg new file mode 100644 index 0000000..af202de --- /dev/null +++ b/social_icons/ethereum.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/etsy.svg b/social_icons/etsy.svg new file mode 100644 index 0000000..ebc040a --- /dev/null +++ b/social_icons/etsy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/facebook.svg b/social_icons/facebook.svg new file mode 100644 index 0000000..0afaf7a --- /dev/null +++ b/social_icons/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/github.svg b/social_icons/github.svg new file mode 100644 index 0000000..e32807a --- /dev/null +++ b/social_icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/gitlab.svg b/social_icons/gitlab.svg new file mode 100644 index 0000000..b577d3f --- /dev/null +++ b/social_icons/gitlab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/google.svg b/social_icons/google.svg new file mode 100644 index 0000000..b3776b0 --- /dev/null +++ b/social_icons/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/hacker-news.svg b/social_icons/hacker-news.svg new file mode 100644 index 0000000..23e3980 --- /dev/null +++ b/social_icons/hacker-news.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/instagram.svg b/social_icons/instagram.svg new file mode 100644 index 0000000..89f63c4 --- /dev/null +++ b/social_icons/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/linkedin.svg b/social_icons/linkedin.svg new file mode 100644 index 0000000..d54fcf5 --- /dev/null +++ b/social_icons/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/mastodon.svg b/social_icons/mastodon.svg new file mode 100644 index 0000000..5e12f81 --- /dev/null +++ b/social_icons/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/paypal.svg b/social_icons/paypal.svg new file mode 100644 index 0000000..efdc81a --- /dev/null +++ b/social_icons/paypal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/pinterest.svg b/social_icons/pinterest.svg new file mode 100644 index 0000000..eb977c2 --- /dev/null +++ b/social_icons/pinterest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/quora.svg b/social_icons/quora.svg new file mode 100644 index 0000000..375d302 --- /dev/null +++ b/social_icons/quora.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/reddit.svg b/social_icons/reddit.svg new file mode 100644 index 0000000..a8a3a96 --- /dev/null +++ b/social_icons/reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/rss.svg b/social_icons/rss.svg new file mode 100644 index 0000000..b862886 --- /dev/null +++ b/social_icons/rss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/skype.svg b/social_icons/skype.svg new file mode 100644 index 0000000..3369aba --- /dev/null +++ b/social_icons/skype.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/slack.svg b/social_icons/slack.svg new file mode 100644 index 0000000..0dbc26d --- /dev/null +++ b/social_icons/slack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/snapchat.svg b/social_icons/snapchat.svg new file mode 100644 index 0000000..2cd79dd --- /dev/null +++ b/social_icons/snapchat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/soundcloud.svg b/social_icons/soundcloud.svg new file mode 100644 index 0000000..4724d74 --- /dev/null +++ b/social_icons/soundcloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/spotify.svg b/social_icons/spotify.svg new file mode 100644 index 0000000..1d393ba --- /dev/null +++ b/social_icons/spotify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/stack-exchange.svg b/social_icons/stack-exchange.svg new file mode 100644 index 0000000..0a3177f --- /dev/null +++ b/social_icons/stack-exchange.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/stack-overflow.svg b/social_icons/stack-overflow.svg new file mode 100644 index 0000000..2ca50c7 --- /dev/null +++ b/social_icons/stack-overflow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/steam.svg b/social_icons/steam.svg new file mode 100644 index 0000000..b61f374 --- /dev/null +++ b/social_icons/steam.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/telegram.svg b/social_icons/telegram.svg new file mode 100644 index 0000000..02f48c0 --- /dev/null +++ b/social_icons/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/twitter.svg b/social_icons/twitter.svg new file mode 100644 index 0000000..0778f72 --- /dev/null +++ b/social_icons/twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/vimeo.svg b/social_icons/vimeo.svg new file mode 100644 index 0000000..d98368e --- /dev/null +++ b/social_icons/vimeo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/whatsapp.svg b/social_icons/whatsapp.svg new file mode 100644 index 0000000..d259142 --- /dev/null +++ b/social_icons/whatsapp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/x-twitter.svg b/social_icons/x-twitter.svg new file mode 100644 index 0000000..f5feed7 --- /dev/null +++ b/social_icons/x-twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/social_icons/youtube.svg b/social_icons/youtube.svg new file mode 100644 index 0000000..287dca2 --- /dev/null +++ b/social_icons/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/theme/dark.css b/theme/dark.css new file mode 100644 index 0000000..8dfe74b --- /dev/null +++ b/theme/dark.css @@ -0,0 +1 @@ +:root.dark{--text-0: rgba(255, 255, 255, 87%);--text-1: rgba(255, 255, 255, 60%);--bg-0: #121212;--bg-1: rgba(255, 255, 255, 5%);--bg-2: rgba(23, 23, 23, 100%);--primary-color: #ef5350;--hover-color: white}:root.dark .social>img{filter:invert(1)} \ No newline at end of file diff --git a/theme/light.css b/theme/light.css new file mode 100644 index 0000000..0a438ed --- /dev/null +++ b/theme/light.css @@ -0,0 +1 @@ +:root.light{--text-0: rgba(0, 0, 0, 87%);--text-1: rgba(0, 0, 0, 66%);--bg-0: #fff;--bg-1: #f2f2f2;--bg-2: #fefefe;--primary-color: #ef5350;--hover-color: white}:root.light .social :hover{filter:invert(1)} \ No newline at end of file