···
1
-
<!-- vim: setlocal noexpandtab nowrap: -->
6
-
<meta charset="UTF-8" />
7
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
-
<title>C:\KIERANK.EXE - kierank.hackclub.app</title>
9
-
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
11
-
@import url("https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&display=swap");
14
-
background: #008080;
15
-
font-family: "Courier Prime", "Courier New", monospace;
24
-
display: none !important;
28
-
background: #ffffff;
29
-
border: 2px solid #808080;
31
-
inset -2px -2px #c0c0c0,
32
-
inset 2px 2px #404040,
33
-
4px 4px 0px #000000;
40
-
background: linear-gradient(90deg, #000080, #1084d0);
44
-
border-bottom: 1px solid #808080;
47
-
justify-content: space-between;
48
-
align-items: center;
59
-
background: #c0c0c0;
60
-
border: 1px outset #ffffff;
69
-
background: #ffffff;
78
-
background: #000000;
80
-
animation: blink 1s infinite;
96
-
/* Markdown rendered content styles */
97
-
#readme-content h3 {
100
-
margin: 15px 0 10px 0;
101
-
border-bottom: 2px solid #c0c0c0;
102
-
padding-bottom: 5px;
105
-
#readme-content h4 {
108
-
margin: 20px 0 8px 0;
109
-
text-transform: uppercase;
110
-
background: #c0c0c0;
112
-
display: inline-block;
115
-
#readme-content p {
119
-
#readme-content ul {
121
-
padding-left: 20px;
125
-
#readme-content ul li {
127
-
position: relative;
130
-
#readme-content ul li::before {
135
-
#readme-content a {
137
-
text-decoration: underline;
140
-
#readme-content a:hover {
142
-
background: #ffffcc;
145
-
#readme-content code {
146
-
background: #000080;
149
-
font-family: "Courier Prime", "Courier New", monospace;
152
-
#readme-content pre {
153
-
background: #000080;
156
-
border: 2px inset #404040;
162
-
#readme-content pre code {
163
-
background: transparent;
168
-
#readme-content strong {
172
-
#readme-content em {
174
-
font-style: italic;
178
-
background: #c0c0c0;
181
-
border-top: 2px groove #ffffff;
184
-
justify-content: space-between;
190
-
text-align: center;
194
-
text-align: center;
201
-
animation: dots 1.5s steps(4, end) infinite;
226
-
background: #ff0000;
229
-
border: 2px inset #800000;
238
-
margin: 10px 0 15px 0;
239
-
text-align: center;
245
-
<div class="terminal">
246
-
<div class="title-bar">
247
-
<span>C:\KIERANK.EXE - kierank.hackclub.app</span>
248
-
<div class="title-buttons">
249
-
<div class="title-btn">_</div>
250
-
<div class="title-btn">□</div>
251
-
<div class="title-btn">×</div>
255
-
<div class="content">
257
-
C:\KIERANK> README.EXE<span class="cursor"> </span>
260
-
<!-- biome-ignore format: ascii art -->
261
-
<pre class="ascii-header">
262
-
██╗ ██╗██╗███████╗██████╗ █████╗ ███╗ ██╗
263
-
██║ ██║██║██╔════╝██╔══██╗██╔══██╗████╗ ██║
264
-
█████╔╝██║█████╗ ██████╔╝███████║██╔██╗ ██║
265
-
██╔═██╗██║██╔══╝ ██╔══██╗██╔══██║██║╚██╗██║
266
-
██║ ██║██║███████╗██║ ██║██║ ██║██║ ╚████║
267
-
╚═╝ ╚═╝╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝
270
-
<div class="separator">
271
-
════════════════════════════════════════════════════
274
-
<div id="readme-content">
275
-
<div class="loading" style="display: none">Loading README from GitHub</div>
278
-
<div class="error-box">
279
-
JavaScript is disabled so not rendering markdown.
282
-
View the README on GitHub:
283
-
<a href="https://github.com/taciturnaxolotl/taciturnaxolotl/blob/main/README.md">
284
-
taciturnaxolotl/README.md
290
-
<div class="separator">
291
-
════════════════════════════════════════════════════
294
-
<p style="font-size: 11px; color: #808080; text-align: center">
295
-
Hosted on <a href="https://hackclub.com/nest/">Hack Club Nest</a> |
296
-
<a href="https://github.com/taciturnaxolotl">GitHub</a> |
297
-
<a href="https://dunkirk.sh">dunkirk.sh</a>
301
-
<div class="status-bar">
302
-
<span id="status">Fetching README...</span>
303
-
<span id="time"></span>
309
-
"https://raw.githubusercontent.com/taciturnaxolotl/taciturnaxolotl/refs/heads/main/README.md"
311
-
async function loadReadme() {
312
-
const contentDiv = document.getElementById("readme-content");
313
-
const statusSpan = document.getElementById("status");
314
-
const loadingEl = contentDiv.querySelector(".loading");
317
-
if (loadingEl) loadingEl.classList.remove("hidden");
321
-
const response = await fetch(README_URL);
322
-
if (!response.ok) {
323
-
throw new Error(`HTTP ${response.status}`);
326
-
const markdown = await response.text();
328
-
// Configure marked for GFM
329
-
marked.setOptions({
334
-
contentDiv.innerHTML = marked.parse(markdown);
336
-
// Strip emojis from headers
337
-
contentDiv.querySelectorAll("h3, h4").forEach((header) => {
338
-
const text = header.textContent;
341
-
// - \p{Extended_Pictographic}: most modern emoji/pictographs
342
-
// - \p{Emoji_Presentation}: characters default-rendered as emoji
343
-
// - Variation Selector-16 (U+FE0F): emoji presentation modifier
344
-
// - Common symbol blocks that often carry emoji-like glyphs
346
-
/[\p{Extended_Pictographic}\p{Emoji_Presentation}\uFE0F]|[\u2600-\u26FF\u2700-\u27BF]/gu;
349
-
let cleaned = text.replace(emojiRegex, "");
351
-
// Collapse multiple whitespace into single spaces
352
-
cleaned = cleaned.replace(/\s+/g, " ");
354
-
// Remove spaces before punctuation (e.g., "Hello !" -> "Hello!")
355
-
cleaned = cleaned.replace(/\s+([!?,.;:])/g, "$1");
357
-
// Trim leading/trailing whitespace
358
-
cleaned = cleaned.trim();
360
-
// Replace header content safely
361
-
header.textContent = cleaned;
364
-
statusSpan.textContent = "README loaded successfully";
366
-
contentDiv.innerHTML = `
367
-
<div class="error-box">
368
-
ERROR: Failed to load README<br>
371
-
<p>Try refreshing the page or visit
372
-
<a href="https://github.com/taciturnaxolotl">github.com/taciturnaxolotl</a> directly.</p>
374
-
statusSpan.textContent = "Error loading README";
378
-
function updateTime() {
379
-
const now = new Date();
380
-
const timeStr = now.toLocaleTimeString("en-US", {
385
-
document.getElementById("time").textContent = timeStr;
390
-
setInterval(updateTime, 1000);