networkException
d5ef5aa149
This patch adds some dirty line iteration and regexes to remove <link> tags from the documents that would clutter the head section of the document and as such make content harder to read.
123 lines
5.7 KiB
HTML
123 lines
5.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head profile="https://gmpg.org/xfn/11">
|
|
<meta charset="UTF-8">
|
|
<meta name="referrer" content="no-referrer">
|
|
<link rel="icon" href="/avatar.svg" type="image/svg+xml;charset=UTF-8">
|
|
<link rel="stylesheet" href="/style/index.css" type="text/css;charset=UTF-8">
|
|
<link rel="me" href="https://social.nwex.de/@networkexception">
|
|
<link rel="me" href="https://serenityos.social/@networkexception">
|
|
<title>nwex.de/xhr</title>
|
|
</head>
|
|
<body>
|
|
<h1>networkException</h1>
|
|
<h2>try to catch(this: Exception);</h2>
|
|
|
|
<main>
|
|
I'm a developer, maintainer and system administrator working on a variety of open source projects.
|
|
</main>
|
|
<section>
|
|
<h3>Subpages</h3>
|
|
|
|
<ul>
|
|
<li>You can find my talks <a href="/talks">here</a>.</li>
|
|
<li>A few bits of WebFinger appreciation can be found <a href="/ramblings/webfinger.html">here</a></li>
|
|
</ul>
|
|
</section>
|
|
<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/ungoogled-software/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>
|
|
|
|
<h3>Projects I contribute to in my free time</h3>
|
|
|
|
<ul>
|
|
<li><a href="https://github.com/SerenityOS/serenity">The Serenity Operating System 🐞</a></li>
|
|
</ul>
|
|
|
|
Everything listed here I do <a href="https://justforfunnoreally.dev/">for fun</a>.
|
|
</section>
|
|
<section>
|
|
<h3>Links</h3>
|
|
|
|
<ul>
|
|
<li><a rel="me" href="https://chaos.social/@networkexception">joinmastodon.org</a></li>
|
|
<li><a href="https://github.com/networkException">github.com</a></li>
|
|
<li><a href="https://gitlab.upi.li/networkException">gitlab.org</a></li>
|
|
<li><a href="https://keybase.io/networkexception">keybase.io</a></li>
|
|
<li><a href="https://matrix.to/#/@networkexception:chat.upi.li">matrix.org</a></li>
|
|
<li><a lang="en" rel="me" href="https://en.pronouns.page/@networkException">en.pronouns.page</a></li>
|
|
<li><a lang="de" rel="me" href="https://de.pronouns.page/@networkException">de.pronouns.page</a></li>
|
|
<li><a href="mailto:hello@nwex.de">email</a></li>
|
|
|
|
<li>networkException#0001@discord.com</li>
|
|
|
|
<li><a href="/gpg.key">My GPG key</a></li>
|
|
|
|
<li><a href="https://tz.nwex.de">My current timezone and local time</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 <a href="https://en.wikipedia.org/wiki/Quine_%28computing%29">its own source code</a>.
|
|
</p>
|
|
<p>
|
|
You can find the full source code of the site <a href="https://gitlab.upi.li/networkException/nwex.de">here</a>.
|
|
|
|
It's licensed under the <a href="https://spdx.org/licenses/BSD-2-Clause">BSD 2-Clause "Simplified" License</a>,
|
|
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>
|
|
</section>
|
|
<section>
|
|
<h3>Webrings</h3>
|
|
|
|
<fieldset>
|
|
<legend><a href="https://fediring.net/">Fediring</a></legend>
|
|
|
|
<a href="https://fediring.net/previous?host=nwex.de">Previous</a>
|
|
<a href="https://fediring.net/next?host=nwex.de">Next</a>
|
|
<a href="https://fediring.net/random">Random</a>
|
|
</fieldset>
|
|
</section>
|
|
|
|
<!-- Inner workings of the page -->
|
|
|
|
<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 request = new XMLHttpRequest();
|
|
request.addEventListener("load", async function() {
|
|
const text = this.responseText
|
|
// NOTE: This removes <link rel="me" href="some-ressource"> tags from the document so the head
|
|
// doesn't get as cluttered.
|
|
// FIXME: Change this to use a more sophisticated api once tree construction is implemented.
|
|
.split('\n')
|
|
.filter(line => line.match(/^(?:\s*)<link rel="me" href="(.*)">/) === null)
|
|
.join('\n');
|
|
|
|
window.tokens = tokenize(normalizeNewlines(text));
|
|
window.spans = highlight(tokens);
|
|
|
|
const inspector = new Inspector();
|
|
|
|
render(text, spans, inspector);
|
|
});
|
|
request.open("GET", window.location.href);
|
|
request.send();
|
|
</script>
|
|
</body>
|
|
</html>
|