You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
8.3 KiB
220 lines
8.3 KiB
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<title>mediocregopher's lil web corner</title>
|
|
<style>{{ StaticInlineCSS "new.css" }}</style>
|
|
<style>{{ StaticInlineCSS "mediocre.css" }}</style>
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="{{ StaticURL "favicon/apple-touch-icon.png" }}">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="{{ StaticURL "favicon/favicon-32x32.png" }}">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="{{ StaticURL "favicon/favicon-16x16.png" }}">
|
|
<link rel="manifest" href="{{ StaticURL "favicon/site.webmanifest" }}">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<header>
|
|
|
|
<pre class="fuck-it-up">
|
|
.%*. .-.
|
|
.%@@@+. .--=%@@@-
|
|
=@@@@@@- :--+@@@@@@@@@*
|
|
*@%@@@@@%: :--=#@@@@@@@@@@@@#@@+
|
|
@@::%@@@@@@-: :::-=%@@@@@@@@@@@@@@%#*- :@*
|
|
.@@ =@@@@@@@@@+-:::::::-=*@@@@@@@@@@@@@@@@@@@%##- @@:
|
|
#@# +%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%#*: -@@
|
|
#@- *%@@@@@@@@@@@@@@@@@%%%#= %@=
|
|
@@: -=+++== .. @@:
|
|
@@ . -@@@ +@@
|
|
#@% =@@@@- +@@@@# *+ %@#
|
|
#@- -@@@@@@@. +@@@@@% .%@@@@= @@:
|
|
@@: +@@@@@@@@@ +@+ +@@@ %@@@@@@@@@ -@@
|
|
@@ *@%@* :@@@ *@+ -@@@ %@@@@@@@@@@@# @@@
|
|
#@% %@ @% %@@ *@* .@@@ =@@@*@@ :@@@@ @@:
|
|
%@:## *@+ :@@ :@@ @@@ %@@: @# .@@@ .@@
|
|
@@:. @@: .@@ @@ @@@ %@: @@ @@% @@%
|
|
@@ -@@. =@@ @@. @@@ %@. #@- @@# @@.
|
|
%@% +@@. @@. %@- @@@ #@ @@. :@@ -@@
|
|
%@: +@@+ .@% #@= @@@.@ *@@ +@+ @@*
|
|
@@: +@@%. .%% *@+ @@@ %@@ -@# @@
|
|
@@ :@@@@@@% :@@ @@% %@@ @# *@@
|
|
%@@ #@@@@* @@ @@% %@@. %@. @@:
|
|
@@: ===: @@. @@% %@@: =@%. .@@
|
|
@@. #@= @@% %@@%+%@#. @@%
|
|
@@ +@* @@# -@@@@@* .@@
|
|
%@@ :@@ @@# %@@#: =@@
|
|
@@: .@@ @@# : @@=
|
|
@@. @@. @@# :@@
|
|
@@ #@= @@% %@%
|
|
#@@ +@+ #@% .@@
|
|
@@: =@# +@% =@%
|
|
@@ :@% -@@ @@+
|
|
@@ .@@ -@: -@@
|
|
-@@ @% .: *@#
|
|
@@* # @@.
|
|
@@ =@@
|
|
.@@ @@*
|
|
.@@ .@@
|
|
*@@ =@#
|
|
@@* @@*
|
|
@@ -@@
|
|
.@@ +@*
|
|
.@@ @@-
|
|
-@@ =@@
|
|
%@% #@*
|
|
@@ @@:
|
|
@@ +@@
|
|
.@@ %@+
|
|
:@% @@.
|
|
:@% *@%
|
|
-@. %@=
|
|
%@ @@.
|
|
@@ *@%
|
|
@@ %@=
|
|
@% @@:
|
|
:@% +@@
|
|
:@* =+- #@+
|
|
:@: .%@@@. @@-
|
|
-@ =@@@@@# :@@
|
|
=@ *@#.=@@% #@%
|
|
*@ #@- -@@% %@-
|
|
@@ #@: :@@% @@:
|
|
@@ #% .@@% .#@@* -@@
|
|
@% #% .@@% +@@@@@- %@%
|
|
@# %@ :@@% .@@@@@@@@ %@:
|
|
@# %@ :@@% +@@% .@@@@ @@:
|
|
@# %@ :@@% #@@: :@@@ -@@
|
|
@# @@. .@@@ .@@% .@@@= %@%
|
|
@# @@. .@@@: %@@- @@@% %@:
|
|
@# @@ @@@@ %@@@ *@@@ @@:
|
|
@# .@@ @@@@@@@@@@= :@@@ @@
|
|
* @@@ :@@@@@@@@. :@@@ *@@
|
|
.@@@@@% -@@@@@. .@@@ @@=
|
|
@@@@@: .. @@@ @@.
|
|
-@%: @@@ @@.
|
|
@@@ @@
|
|
-@@ =@@
|
|
.@@ @@+
|
|
.@@:@@.
|
|
@@#@-
|
|
@@@.
|
|
+@-
|
|
-
|
|
</pre>
|
|
|
|
<strong>mediocregopher</strong>'s lil web corner
|
|
<br/>
|
|
<br/>
|
|
<a href="{{ BlogURL "/" }}">Home</a>
|
|
//
|
|
<a href="{{ BlogURL "/posts" }}">Posts</a>
|
|
/
|
|
<a href="{{ BlogURL "follow" }}">Follow</a>
|
|
/
|
|
<a href="{{ BlogURL "feed.xml" }}">RSS</a>
|
|
//
|
|
<a href="{{ StaticURL "wtfpl.txt" }}">License</a>
|
|
</header>
|
|
|
|
{{ template "body" . }}
|
|
|
|
</body>
|
|
|
|
<!--
|
|
|
|
Everything in this site is static and uses classless CSS.
|
|
|
|
Except for the ghost. Cause he's special.
|
|
|
|
-->
|
|
|
|
<style>
|
|
|
|
header {
|
|
/* so the ghost still affects the header's height */
|
|
overflow: hidden;
|
|
}
|
|
|
|
.fuck-it-up {
|
|
|
|
color: var(--nc-tx-1);
|
|
font-family:Courier,monospace;
|
|
font-weight: bold;
|
|
font-size:0.18rem;
|
|
line-height:0.09rem;
|
|
|
|
background-color: #FFFFFF00;
|
|
width: min-content;
|
|
|
|
margin: 0;
|
|
padding: 0 1rem 0 0;
|
|
border: none;
|
|
|
|
float: left;
|
|
overflow: hidden;
|
|
}
|
|
|
|
@media (max-device-width: 800px) {
|
|
.fuck-it-up {
|
|
display: none;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
|
|
const pre = document.querySelectorAll(".fuck-it-up")[0];
|
|
|
|
function replaceAt(str, index, replacement) {
|
|
return str.substr(0, index) + replacement+ str.substr(index + replacement.length);
|
|
}
|
|
|
|
// right-pad the lines
|
|
const lines = pre.innerText.split('\n');
|
|
|
|
let maxL = 0;
|
|
lines.forEach((line) => {
|
|
maxL = maxL > line.length ? maxL : line.length;
|
|
});
|
|
|
|
pre.innerText = lines.map((line) =>
|
|
line + " ".repeat(maxL - line.length)
|
|
).join('\n');
|
|
|
|
function fuckItUp() {
|
|
while (true) {
|
|
var txt = pre.innerText;
|
|
var len = txt.length;
|
|
|
|
var a = Math.floor(Math.random() * len);
|
|
var aChar = txt.charAt(a);
|
|
var b = Math.floor(Math.random() * len);
|
|
var bChar = txt.charAt(b);
|
|
|
|
if (
|
|
aChar == "\n" || bChar == "\n"
|
|
) continue;
|
|
|
|
txt = replaceAt(txt, a, bChar);
|
|
txt = replaceAt(txt, b, aChar);
|
|
pre.innerText = txt;
|
|
|
|
break
|
|
}
|
|
}
|
|
|
|
var wait = 1000;
|
|
function fuckItUpALot() {
|
|
fuckItUp();
|
|
if (wait > 2) { wait *= 0.95; }
|
|
setTimeout(fuckItUpALot, wait);
|
|
}
|
|
|
|
if (window.getComputedStyle(pre).display != "none")
|
|
setTimeout(fuckItUpALot, wait);
|
|
|
|
</script>
|
|
|
|
</html>
|
|
|
|
|