2022-01-05 15:22:15 +01:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
2022-01-05 15:46:34 +01:00
|
|
|
<link rel="icon" href="favicon.png" type="image/png">
|
2022-01-05 15:22:15 +01:00
|
|
|
<link rel="stylesheet" href="style/index.css">
|
|
|
|
<title>nwex.de</title>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>networkException</h1>
|
|
|
|
<h2>try to catch(this: Exception);</h2>
|
|
|
|
|
|
|
|
<main>
|
|
|
|
I'm a TypeScript developer working on backend code, libraries and anything that scales.
|
|
|
|
</main>
|
|
|
|
<section>
|
|
|
|
<h3>Projects I maintain in my free time</h3>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/t2linux/wiki">The t2linux.org wiki - A project to run Linux on Apple T2 devices</a></li>
|
|
|
|
<li><a href="https://github.com/Eloston/ungoogled-chromium">Chromium sans integration with Google</a></li>
|
|
|
|
<li><a href="https://github.com/ungoogled-software/ungoogled-chromium-archlinux">Arch Linux packaging for ungoogled-chromium</a></li>
|
|
|
|
</ul>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
|
|
<h3>Links</h3>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li><a href="https://github.com/networkException">github.com</a></li>
|
|
|
|
<li><a href="https://gitlab.upi.li/networkException">gitlab.upi.li</a></li>
|
|
|
|
<li><a href="https://twitter.com/netwrkException">twitter.com</a></li>
|
|
|
|
<li><a href="https://matrix.to/#/@networkexception:chat.upi.li">matrix.org</a></li>
|
|
|
|
<li><a href="https://chaos.social/@networkexception">mastodon.social</a></li>
|
|
|
|
<li><a href="mailto:hello@nwex.de">email</a></li>
|
|
|
|
|
2022-01-06 00:33:50 +01:00
|
|
|
<li>networkException#0001@discord.com</a></li>
|
|
|
|
|
2022-01-05 15:22:15 +01:00
|
|
|
<li><a href="/gpg.key">My GPG key</a></li>
|
|
|
|
</ul>
|
|
|
|
</section>
|
|
|
|
<section>
|
|
|
|
<h3>This website</h3>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Although I also know my way around frontend development and design as well, I'm far less skilled at it.
|
|
|
|
As such this website is trying to impress in a different way:
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
It implements parts of the <a href="https://html.spec.whatwg.org/multipage/parsing.html#tokenization">HTML parser spec</a>
|
|
|
|
to tokenize and highlight it's own source code.
|
|
|
|
</p>
|
2022-01-06 00:34:04 +01:00
|
|
|
<p>
|
|
|
|
You can find the full source code of the site <a href="https://gitlab.upi.li/networkException/nwex.de">here</a>.
|
|
|
|
It's licenced under BSD-2-Clause, so feel free to use the code as a reference to implement your own parser!
|
|
|
|
If you have something interesting to share or just want to tell how the code might have helped you, make
|
|
|
|
sure to send me a message :^)
|
|
|
|
</p>
|
2022-01-05 15:22:15 +01:00
|
|
|
</section>
|
|
|
|
|
2022-01-05 16:03:05 +01:00
|
|
|
<!-- Inner workings of the page -->
|
2022-01-05 15:22:15 +01:00
|
|
|
|
|
|
|
<script type="module">
|
|
|
|
import { tokenize, normalizeNewlines, highlight } from './script/html.js';
|
|
|
|
import { render } from './script/view.js';
|
|
|
|
import { Inspector } from './script/html/inspector.js';
|
|
|
|
|
|
|
|
const response = await fetch(window.location.href);
|
|
|
|
const text = await response.text();
|
|
|
|
|
|
|
|
const tokens = tokenize(normalizeNewlines(text));
|
|
|
|
const spans = highlight(tokens);
|
|
|
|
|
|
|
|
const inspector = new Inspector();
|
|
|
|
|
|
|
|
render(text, spans, inspector);
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|