mirror of
https://github.com/Noratrieb/website.git
synced 2026-01-14 17:05:02 +01:00
update
This commit is contained in:
parent
1e1f0be7ac
commit
a041618a73
9 changed files with 256 additions and 281 deletions
|
|
@ -3,34 +3,21 @@
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
use color_eyre::{eyre::WrapErr, Result};
|
use color_eyre::{eyre::WrapErr, Result};
|
||||||
use rand::seq::SliceRandom;
|
|
||||||
|
|
||||||
use crate::{utils, SlidesConfig};
|
use crate::{utils, SlidesConfig};
|
||||||
|
|
||||||
pub fn build(
|
pub fn build(
|
||||||
rng: &mut rand::rngs::StdRng,
|
_rng: &mut rand::rngs::StdRng,
|
||||||
config: &SlidesConfig,
|
config: &SlidesConfig,
|
||||||
statics: &Path,
|
statics: &Path,
|
||||||
dist: &Path,
|
dist: &Path,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let back_alley_name = b"abcdefghijklmnopqrstuvwxyz"
|
|
||||||
.choose_multiple(rng, 6)
|
|
||||||
.map(|&c| char::from_u32(c.into()).unwrap())
|
|
||||||
.collect::<String>();
|
|
||||||
|
|
||||||
let back_alley_name = format!("back-alley-{back_alley_name}.html");
|
|
||||||
|
|
||||||
let mut context = tera::Context::new();
|
let mut context = tera::Context::new();
|
||||||
|
|
||||||
context.insert("back_alley_name", back_alley_name.as_str());
|
|
||||||
context.insert("talks", &config.talks);
|
context.insert("talks", &config.talks);
|
||||||
|
|
||||||
utils::copy_fn(&statics.join("root"), dist, |content, ext, opts| {
|
utils::copy_fn(&statics.join("root"), dist, |content, ext, _opts| {
|
||||||
if ext.is_some_and(|ext| matches!(ext, "html" | "css")) {
|
if ext.is_some_and(|ext| matches!(ext, "html" | "css")) {
|
||||||
if opts.dest_path.ends_with("back-alley.html") {
|
|
||||||
opts.dest_path.set_file_name(&back_alley_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
let content = String::from_utf8(content).wrap_err("HTML or CSS is invalid UTF-8")?;
|
let content = String::from_utf8(content).wrap_err("HTML or CSS is invalid UTF-8")?;
|
||||||
let mut tera = tera::Tera::default();
|
let mut tera = tera::Tera::default();
|
||||||
tera.add_raw_template("template", &content)
|
tera.add_raw_template("template", &content)
|
||||||
|
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>noratrieb.dev</title>
|
|
||||||
<link rel="stylesheet" href="static/theme.css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="main-content">
|
|
||||||
<div class="main-content-inner">
|
|
||||||
<h1>secret back alley</h1>
|
|
||||||
<a href="/">getting out</a>
|
|
||||||
<div>
|
|
||||||
<p>
|
|
||||||
hey! psst! you might have found the secret back alley. granted, it was not very secret.
|
|
||||||
but that's the thing with back alleys, they're not really secret, yet people usually
|
|
||||||
don't go there.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
so while you're here, i have some things for you. secret websites i host. you may use
|
|
||||||
them, but don't abuse them. i really mean it! or else i will be forced to move them out
|
|
||||||
of the secret back alley into my secret bunker, where you won't have access to them at
|
|
||||||
all. and you don't want that, do you?
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>uptime</h2>
|
|
||||||
<p>
|
|
||||||
uptime is my
|
|
||||||
<a href="https://github.com/Noratrieb/uptime"
|
|
||||||
>personal hand-written status page website</a
|
|
||||||
>. it checks whether everything is online and nicely displays a pretty bar. everything is always green!
|
|
||||||
</p>
|
|
||||||
<a href="https://uptime.noratrieb.dev" class="call-to-action">
|
|
||||||
<span>uptime.noratrieb.dev</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>OLAT</h2>
|
|
||||||
<p>
|
|
||||||
you've ever wanted to use a
|
|
||||||
<a href="https://www.openolat.com/">professional learning platform</a> that's used by
|
|
||||||
real schools for things that may not be very appropriate on the school instance? i
|
|
||||||
kinda, uh... do, so that's why this exists.
|
|
||||||
</p>
|
|
||||||
<a href="https://olat.nilstrieb.dev" class="call-to-action">
|
|
||||||
<span>olat.nilstrieb.dev</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>HugoChat</h2>
|
|
||||||
<p>
|
|
||||||
the <a href="https://github.com/C0RR1T/HugoChat">brilliant chat platform</a> for all
|
|
||||||
your needs.
|
|
||||||
</p>
|
|
||||||
<a href="https://hugo-chat.noratrieb.dev" class="call-to-action">
|
|
||||||
<span>hugo-chat.noratrieb.dev</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>CORS</h2>
|
|
||||||
<p>
|
|
||||||
running <a href="https://github.com/nilstrieb-lehre/davinci-cors">CORS</a>, for your
|
|
||||||
creative organized relaxed school life.
|
|
||||||
</p>
|
|
||||||
<a href="https://cors-school.nilstrieb.dev/" class="call-to-action">
|
|
||||||
<span>cors-school.nilstrieb.dev</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>cargo-bisect-rustc-service</h2>
|
|
||||||
<p>
|
|
||||||
<a href="https://github.com/Noratrieb/cargo-bisect-rustc-service">webscale bisection</a>
|
|
||||||
at your fingertips
|
|
||||||
</p>
|
|
||||||
<a href="https://bisect-rustc.noratrieb.dev/" class="call-to-action">
|
|
||||||
<span>bisect-rustc.noratrieb.dev</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,137 +1,246 @@
|
||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>noratrieb.dev</title>
|
<title>Noratrieb</title>
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||||
<link rel="manifest" href="/site.webmanifest" />
|
<link rel="manifest" href="/site.webmanifest" />
|
||||||
<link rel="stylesheet" href="static/theme.css" />
|
<link rel="stylesheet" href="static/theme.css" />
|
||||||
<style>
|
<style>
|
||||||
.hint {
|
|
||||||
color: #5b4561;
|
|
||||||
}
|
|
||||||
|
|
||||||
.secret {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.social-logo {
|
.social-logo {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
|
color: var(--black-or-white);
|
||||||
|
}
|
||||||
|
.social-logo-link {
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ferrisuwu {
|
.header {
|
||||||
display: none;
|
display: flex;
|
||||||
z-index: 1;
|
justify-content: space-between;
|
||||||
position: absolute;
|
|
||||||
right: -100px;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ferrisuwu-animate {
|
.header-col {
|
||||||
display: block;
|
display: flex;
|
||||||
animation-iteration-count: 1;
|
flex-direction: column;
|
||||||
animation-name: ferrisuwu-enter;
|
|
||||||
animation-duration: 3s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes ferrisuwu-enter {
|
.header-left {
|
||||||
from {
|
align-items: flex-start;
|
||||||
right: -100px;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
right: 50px;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
right: -100px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.blog-back-alley {
|
.header-right {
|
||||||
background-color: #6a1b7e;
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-heading {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-body {
|
||||||
|
margin-left: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-content-inner {
|
||||||
|
counter-reset: section;
|
||||||
|
}
|
||||||
|
|
||||||
|
.numbered-section {
|
||||||
|
counter-set: subsection 1;
|
||||||
|
}
|
||||||
|
.numbered-section::before {
|
||||||
|
counter-increment: section;
|
||||||
|
content: counter(section) ". ";
|
||||||
|
}
|
||||||
|
.numbered-subsection::before {
|
||||||
|
content: counter(section) "." counter(subsection) ". ";
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin-bottom: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toc {
|
||||||
|
ol {
|
||||||
|
counter-reset: item;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
li::before {
|
||||||
|
content: counters(item, ".") ".";
|
||||||
|
counter-increment: item;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="overflow-hidden">
|
<body>
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<div class="main-content-inner">
|
<div class="main-content-inner">
|
||||||
<h1>Noratrieb's website</h1>
|
<div class="header">
|
||||||
<div class="columns-2">
|
<div class="header-col header-left">
|
||||||
<div>
|
<span>Noratrieb</span>
|
||||||
<div>
|
<span>Website: noratrieb.dev</span>
|
||||||
|
<span>Category: Personal Website</span>
|
||||||
|
<span>Published: In the past, likely</span>
|
||||||
|
<span>ISSN: None</span>
|
||||||
|
</div>
|
||||||
|
<div class="header-col header-right">
|
||||||
|
<span>Noratrieb</span>
|
||||||
|
<span>silly internet person</span>
|
||||||
|
<span>it's just me no one else</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
<h1>Noratrieb: it's me</h1>
|
||||||
|
</div>
|
||||||
|
<h2 class="section-heading">Abstract</h2>
|
||||||
|
<div class="section-body">
|
||||||
<p>
|
<p>
|
||||||
hi, i'm nora 🏳️⚧️. this is my website. you'll find lots of interesting and not very
|
hi, i'm nora 🏳️⚧️. this is my website. you'll find lots of interesting and not very
|
||||||
interesting stuff here, depending on where you look.
|
interesting stuff here, depending on where you look.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
there may be many
|
|
||||||
<span onclick="onSecretClick()" class="secret hint" role="button">secrets</span>
|
|
||||||
depending on where you look....
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>socials</h2>
|
|
||||||
<p>
|
|
||||||
these two are not everything, but you may find more there, like a choose your own
|
|
||||||
adventure story: choose your own nora
|
|
||||||
</p>
|
|
||||||
<a href="https://github.com/Noratrieb">
|
|
||||||
<img class="social-logo" alt="GitHub" src="static/github.svg" />
|
|
||||||
</a>
|
|
||||||
<a href="https://hachyderm.io/@noratrieb">
|
|
||||||
<img class="social-logo" alt="Mastodon" src="static/mastodon.png" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<img
|
<img
|
||||||
height="200"
|
height="200"
|
||||||
src="static/Noratrieb.png"
|
src="static/Noratrieb.png"
|
||||||
alt="Two grey cartoon-cats on a pink background. The left cat is small and sits on a floating rocket, the right cat is big and has a red bow tie on the right ear."
|
alt="Two grey cartoon-cats on a pink background. The left cat is small and sits on a floating rocket, the right cat is big and has a red bow tie on the right ear."
|
||||||
style="margin-left: 15px"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<h2 class="section-heading">Status of This Memo</h2>
|
||||||
|
<div class="section-body">
|
||||||
|
<p>This is a World Wide Web Hypertext document.</p>
|
||||||
|
<p>
|
||||||
|
This document is a product of Noratrieb. It represents the consensus of Noratrieb. It
|
||||||
|
has not received public review and has not been approved for publication by the Internet
|
||||||
|
Engineering Steering Group (IESG). Further information on Internet Standards is
|
||||||
|
available in Section 2 of RFC 7841.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<h2 class="section-heading">Table of Contents</h2>
|
||||||
<h2>my blog</h2>
|
<div class="section-body toc">
|
||||||
|
<ol>
|
||||||
|
<li><a href="#blog">Blog</a></li>
|
||||||
|
<li><a href="#socials">Socials</a></li>
|
||||||
|
<li><a href="#slides">Slides</a></li>
|
||||||
|
<li>
|
||||||
|
<a href="#projects">Projects</a>
|
||||||
|
<ol>
|
||||||
|
<li><a href="#projects-rust">Rust</a></li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
<li><a href="#contact">Contact</a></li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
<section id="blog">
|
||||||
|
<h2 class="section-heading numbered-section">Blog</h2>
|
||||||
|
<div class="section-body">
|
||||||
<p>i have a blog, it might be interesting, maybe.</p>
|
<p>i have a blog, it might be interesting, maybe.</p>
|
||||||
<a href="/blog" id="blog-link" class="call-to-action" aria-live="polite">
|
<a href="/blog" id="blog-link" class="call-to-action" aria-live="polite">
|
||||||
<span>blog</span>
|
<span>blog</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</section>
|
||||||
<h2>slides</h2>
|
<section id="socials">
|
||||||
<p>slides to talks that i have given</p>
|
<h2 class="section-heading numbered-section">Socials</h2>
|
||||||
<a href="/slides/index.html" class="call-to-action">
|
<div class="section-body">
|
||||||
|
<p>
|
||||||
|
these two are not everything, but you may find more there, like a choose your own
|
||||||
|
adventure story: choose your own nora
|
||||||
|
</p>
|
||||||
|
<a class="social-logo-link" href="https://github.com/Noratrieb">
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 16 16"
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
class="social-logo"
|
||||||
|
role="img"
|
||||||
|
aria-label="GitHub"
|
||||||
|
>
|
||||||
|
<title>GitHub</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"
|
||||||
|
></path>
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
|
<a class="social-logo-link" href="https://hachyderm.io/@noratrieb">
|
||||||
|
<img alt="Mastodon" class="social-logo" src="static/mastodon.svg" />
|
||||||
|
</a>
|
||||||
|
<a class="social-logo-link" href="https://bsky.app/profile/noratrieb.dev">
|
||||||
|
<img alt="Bluesky" class="social-logo" src="static/bluesky.svg" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="slides">
|
||||||
|
<h2 class="section-heading numbered-section">Slides</h2>
|
||||||
|
<div class="section-body">
|
||||||
|
<p>
|
||||||
|
i've given some (one) talks. you can find the slides on my website, right over there.
|
||||||
|
i made them with reveal.js which means you can interact with them right on the web,
|
||||||
|
it's like magic.
|
||||||
|
</p>
|
||||||
|
<a href="/slides/" class="call-to-action">
|
||||||
<span>slides from talks</span>
|
<span>slides from talks</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</section>
|
||||||
<h2>random projects</h2>
|
<section id="projects">
|
||||||
|
<h2 class="section-heading numbered-section">Projects</h2>
|
||||||
|
<section id="projects-rust">
|
||||||
|
<h3 class="section-heading numbered-subsection">Rust</h3>
|
||||||
|
<div class="section-body">
|
||||||
<p>
|
<p>
|
||||||
in addition to all the other stuff mentioned above, i also have some random projects
|
I've spent a lot of time working on the
|
||||||
hosted on my server. they are pretty bad and i won't promote them this openly, but you
|
<a href="https://www.rust-lang.org/">Rust Programming Language</a> as part of the
|
||||||
will be able to find them if you really want to. some people have been saying that there
|
compiler and standard library contributors team. My most famous work are the
|
||||||
might be a secret
|
improved <code>cfg</code> diagnostics released in
|
||||||
<span role="button" class="hint" onclick="onBackalleyClick()">b</span>ack alley
|
<a href="https://blog.rust-lang.org/2023/08/24/Rust-1.72.0/">1.72.0</a>. Other than
|
||||||
somewhere...
|
that, I've contributed countless refactors and improvements to all kinds of areas
|
||||||
|
from the parser to the backend. I've also reviewed hundreds of PRs for both the
|
||||||
|
compiler and standard library, of which only one caused a serious regression that
|
||||||
|
warranted a point release (<a
|
||||||
|
href="https://blog.rust-lang.org/2023/12/07/Rust-1.74.1/"
|
||||||
|
>1.74.1</a
|
||||||
|
>).
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</section>
|
||||||
<h2>contact me</h2>
|
<section id="projects-other">
|
||||||
|
<h3 class="section-heading numbered-subsection">Other</h3>
|
||||||
|
<div class="section-body">
|
||||||
|
<p>
|
||||||
|
Most of my projects are only short-lived and not exciting enough to put here. I have
|
||||||
|
written a lot of code that does fun things. You can find it all on my
|
||||||
|
<a href="https://github.com/Noratrieb/">GitHub</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section id="contact">
|
||||||
|
<h2 class="section-heading numbered-section">Contact</h2>
|
||||||
|
<div class="section-body">
|
||||||
<p>if you want to contact me for something, use any of the following platforms</p>
|
<p>if you want to contact me for something, use any of the following platforms</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
discord (preferred):
|
discord (preferred):
|
||||||
<pre style="display: inline">noratrieb</pre>
|
<code>noratrieb</code>
|
||||||
. if you're on a server where i'm too (like the Rust Discord) you can just DM me (make
|
. if you're on a server where i'm too (like the Rust Discord) you can just DM me
|
||||||
sure to include the reason in the first message or i will ignore it)
|
(make sure to include the reason in the first message or i will ignore it)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
mastodon:
|
Mastodon:
|
||||||
<pre style="display: inline">@noratrieb@hachyderm.io</pre>
|
<code>@noratrieb@hachyderm.io</code>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Bluesky:
|
||||||
|
<code>noratrieb.dev</code>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
|
|
@ -141,62 +250,8 @@
|
||||||
</p>
|
</p>
|
||||||
<p>i do not have a PGP key and do not intend on getting one.</p>
|
<p>i do not have a PGP key and do not intend on getting one.</p>
|
||||||
</div>
|
</div>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="overflow-hidden">
|
|
||||||
<img id="ferrisuwu" class="ferrisuwu" src="static/ferrisuwu.webp" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
let clickCount = 0;
|
|
||||||
let ferrisuwuAnimating = false;
|
|
||||||
const ferrisuwu = document.getElementById("ferrisuwu");
|
|
||||||
function onSecretClick() {
|
|
||||||
clickCount++;
|
|
||||||
if (clickCount > 0 && !ferrisuwuAnimating) {
|
|
||||||
ferrisuwu.classList.add("ferrisuwu-animate");
|
|
||||||
ferrisuwuAnimating = true;
|
|
||||||
setTimeout(() => {
|
|
||||||
ferrisuwu.classList.remove("ferrisuwu-animate");
|
|
||||||
ferrisuwuAnimating = false;
|
|
||||||
}, 3000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const blog = document.getElementById("blog-link");
|
|
||||||
let isBKeyDown = false;
|
|
||||||
function activateBackalley() {
|
|
||||||
isBKeyDown = true;
|
|
||||||
blog.classList.add("blog-back-alley");
|
|
||||||
blog.href = "/" + "{{ back_alley_name }}";
|
|
||||||
blog.children[0].innerText = "blog?";
|
|
||||||
}
|
|
||||||
function deactivateBackalley() {
|
|
||||||
isBKeyDown = false;
|
|
||||||
blog.classList.remove("blog-back-alley");
|
|
||||||
blog.href = "/blog";
|
|
||||||
blog.children[0].innerText = "blog";
|
|
||||||
}
|
|
||||||
let backalleyClicks = 0;
|
|
||||||
function onBackalleyClick() {
|
|
||||||
backalleyClicks++;
|
|
||||||
if (backalleyClicks > 1) {
|
|
||||||
activateBackalley();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
document.addEventListener("keydown", (ev) => {
|
|
||||||
const B = 66;
|
|
||||||
if (ev.keyCode === B) {
|
|
||||||
activateBackalley();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
document.addEventListener("keyup", (ev) => {
|
|
||||||
const B = 66;
|
|
||||||
if (ev.keyCode === B) {
|
|
||||||
deactivateBackalley();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
4
static/root/static/bluesky.svg
Normal file
4
static/root/static/bluesky.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="600" height="530" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="m135.72 44.03c66.496 49.921 138.02 151.14 164.28 205.46 26.262-54.316 97.782-155.54 164.28-205.46 47.98-36.021 125.72-63.892 125.72 24.795 0 17.712-10.155 148.79-16.111 170.07-20.703 73.984-96.144 92.854-163.25 81.433 117.3 19.964 147.14 86.092 82.697 152.22-122.39 125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937 0.51669-3.7077 7.8964-13.714 40.255-67.233 197.36-189.63 71.766-64.444-66.128-34.605-132.26 82.697-152.22-67.108 11.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07 0-88.687 77.742-60.816 125.72-24.795z" fill="#1185fe"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 745 B |
Binary file not shown.
|
Before Width: | Height: | Size: 6.2 KiB |
|
|
@ -1,3 +1,3 @@
|
||||||
<svg height="32" viewBox="0 0 16 16" version="1.1" width="32" xmlns="http://www.w3.org/2000/svg">
|
<svg height="32" viewBox="0 0 16 16" version="1.1" width="32" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"></path>
|
<path fill="currentColor" d="M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 700 B After Width: | Height: | Size: 720 B |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
10
static/root/static/mastodon.svg
Normal file
10
static/root/static/mastodon.svg
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<svg width="65" height="65" viewBox="0 0 61 65" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M60.7539 14.3904C59.8143 7.40642 53.7273 1.90257 46.5117 0.836066C45.2943 0.655854 40.6819 0 29.9973 0H29.9175C19.2299 0 16.937 0.655854 15.7196 0.836066C8.70488 1.87302 2.29885 6.81852 0.744617 13.8852C-0.00294988 17.3654 -0.0827298 21.2237 0.0561464 24.7629C0.254119 29.8384 0.292531 34.905 0.753482 39.9598C1.07215 43.3175 1.62806 46.6484 2.41704 49.9276C3.89445 55.9839 9.87499 61.0239 15.7344 63.0801C22.0077 65.2244 28.7542 65.5804 35.2184 64.1082C35.9295 63.9428 36.6318 63.7508 37.3252 63.5321C38.8971 63.0329 40.738 62.4745 42.0913 61.4937C42.1099 61.4799 42.1251 61.4621 42.1358 61.4417C42.1466 61.4212 42.1526 61.3986 42.1534 61.3755V56.4773C42.153 56.4557 42.1479 56.4345 42.1383 56.4151C42.1287 56.3958 42.1149 56.3788 42.0979 56.3655C42.0809 56.3522 42.0611 56.3429 42.04 56.3382C42.019 56.3335 41.9971 56.3336 41.9761 56.3384C37.8345 57.3276 33.5905 57.8234 29.3324 57.8156C22.0045 57.8156 20.0336 54.3384 19.4693 52.8908C19.0156 51.6397 18.7275 50.3346 18.6124 49.0088C18.6112 48.9866 18.6153 48.9643 18.6243 48.9439C18.6333 48.9236 18.647 48.9056 18.6643 48.8915C18.6816 48.8774 18.7019 48.8675 18.7237 48.8628C18.7455 48.858 18.7681 48.8585 18.7897 48.8641C22.8622 49.8465 27.037 50.3423 31.2265 50.3412C32.234 50.3412 33.2387 50.3412 34.2463 50.3146C38.4598 50.1964 42.9009 49.9808 47.0465 49.1713C47.1499 49.1506 47.2534 49.1329 47.342 49.1063C53.881 47.8507 60.1038 43.9097 60.7362 33.9301C60.7598 33.5372 60.8189 29.8148 60.8189 29.4071C60.8218 28.0215 61.2651 19.5781 60.7539 14.3904Z" fill="url(#paint0_linear_89_8)"/>
|
||||||
|
<path d="M50.3943 22.237V39.5876H43.5185V22.7481C43.5185 19.2029 42.0411 17.3949 39.036 17.3949C35.7325 17.3949 34.0778 19.5338 34.0778 23.7585V32.9759H27.2434V23.7585C27.2434 19.5338 25.5857 17.3949 22.2822 17.3949C19.2949 17.3949 17.8027 19.2029 17.8027 22.7481V39.5876H10.9298V22.237C10.9298 18.6918 11.835 15.8754 13.6453 13.7877C15.5128 11.7049 17.9623 10.6355 21.0028 10.6355C24.522 10.6355 27.1813 11.9885 28.9542 14.6917L30.665 17.5633L32.3788 14.6917C34.1517 11.9885 36.811 10.6355 40.3243 10.6355C43.3619 10.6355 45.8114 11.7049 47.6847 13.7877C49.4931 15.8734 50.3963 18.6899 50.3943 22.237Z" fill="white"/>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_89_8" x1="30.5" y1="0" x2="30.5" y2="65" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#6364FF"/>
|
||||||
|
<stop offset="1" stop-color="#563ACC"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.4 KiB |
|
|
@ -1,11 +1,9 @@
|
||||||
html {
|
html {
|
||||||
--accept-color: #e5a5c2;
|
--accent-color: #e5a5c2;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: Verdana, sans-serif;
|
font-family: Verdana, sans-serif;
|
||||||
background-color: #e6dae9;
|
|
||||||
color: #1b191c;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-content {
|
.main-content {
|
||||||
|
|
@ -29,7 +27,7 @@ body {
|
||||||
.call-to-action {
|
.call-to-action {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
background-color: var(--accept-color);
|
background-color: var(--accent-color);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -56,7 +54,6 @@ body {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: 1000px) {
|
@media (max-width: 1000px) {
|
||||||
.columns-2 {
|
.columns-2 {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
@ -64,29 +61,35 @@ body {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
@media (prefers-color-scheme: light) {
|
||||||
body {
|
body {
|
||||||
background-color: #e6dae9;
|
--background-color: #e6dae9;
|
||||||
color: #1b191c;
|
--foreground-color: #1b191c;
|
||||||
}
|
--black-or-white: black;
|
||||||
|
|
||||||
.secret {
|
|
||||||
color: #5b4561;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
body {
|
body {
|
||||||
background-color: #1b191c;
|
--background-color: #1b191c;
|
||||||
color: #e6dae9;
|
--foreground-color: #e6dae9;
|
||||||
|
--black-or-white: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: var(--accept-color);
|
color: var(--accent-color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.secret {
|
body {
|
||||||
color: #a081a9;
|
background-color: var(--background-color);
|
||||||
|
color: var(--foreground-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue