🪻 distributed transcription service thistle.dunkirk.sh

chore: remove the index.html file that wasn't part of the project

dunkirk.sh 4e60b3f4 29e607c1

verified
Changed files
-399
-399
index.html
···
-
<!-- vim: setlocal noexpandtab nowrap: -->
-
<!doctype html>
-
<html lang="en">
-
-
<head>
-
<meta charset="UTF-8" />
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
-
<title>C:\KIERANK.EXE - kierank.hackclub.app</title>
-
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
-
<style>
-
@import url("https://fonts.googleapis.com/css2?family=Courier+Prime:wght@400;700&display=swap");
-
-
body {
-
background: #008080;
-
font-family: "Courier Prime", "Courier New", monospace;
-
color: #000000;
-
margin: 0;
-
padding: 20px;
-
line-height: 1.4;
-
font-size: 14px;
-
}
-
-
.hidden {
-
display: none !important;
-
}
-
-
.terminal {
-
background: #ffffff;
-
border: 2px solid #808080;
-
box-shadow:
-
inset -2px -2px #c0c0c0,
-
inset 2px 2px #404040,
-
4px 4px 0px #000000;
-
max-width: 750px;
-
margin: 0 auto;
-
padding: 0;
-
}
-
-
.title-bar {
-
background: linear-gradient(90deg, #000080, #1084d0);
-
color: #ffffff;
-
padding: 4px 8px;
-
font-weight: bold;
-
border-bottom: 1px solid #808080;
-
font-size: 12px;
-
display: flex;
-
justify-content: space-between;
-
align-items: center;
-
}
-
-
.title-buttons {
-
display: flex;
-
gap: 2px;
-
}
-
-
.title-btn {
-
width: 16px;
-
height: 14px;
-
background: #c0c0c0;
-
border: 1px outset #ffffff;
-
font-size: 10px;
-
line-height: 12px;
-
text-align: center;
-
cursor: pointer;
-
}
-
-
.content {
-
padding: 15px;
-
background: #ffffff;
-
}
-
-
.prompt {
-
color: #000000;
-
margin: 0 0 10px 0;
-
}
-
-
.cursor {
-
background: #000000;
-
color: #ffffff;
-
animation: blink 1s infinite;
-
}
-
-
@keyframes blink {
-
-
0%,
-
50% {
-
opacity: 1;
-
}
-
-
51%,
-
100% {
-
opacity: 0;
-
}
-
}
-
-
/* Markdown rendered content styles */
-
#readme-content h3 {
-
color: #000080;
-
font-size: 20px;
-
margin: 15px 0 10px 0;
-
border-bottom: 2px solid #c0c0c0;
-
padding-bottom: 5px;
-
}
-
-
#readme-content h4 {
-
color: #000000;
-
font-size: 14px;
-
margin: 20px 0 8px 0;
-
text-transform: uppercase;
-
background: #c0c0c0;
-
padding: 4px 8px;
-
display: inline-block;
-
}
-
-
#readme-content p {
-
margin: 8px 0;
-
}
-
-
#readme-content ul {
-
margin: 8px 0;
-
padding-left: 20px;
-
list-style: none;
-
}
-
-
#readme-content ul li {
-
margin: 6px 0;
-
position: relative;
-
}
-
-
#readme-content ul li::before {
-
content: "► ";
-
color: #000080;
-
}
-
-
#readme-content a {
-
color: #000080;
-
text-decoration: underline;
-
}
-
-
#readme-content a:hover {
-
color: #0000ff;
-
background: #ffffcc;
-
}
-
-
#readme-content code {
-
background: #000080;
-
color: #ffffff;
-
padding: 1px 4px;
-
font-family: "Courier Prime", "Courier New", monospace;
-
}
-
-
#readme-content pre {
-
background: #000080;
-
color: #cbcbcb;
-
padding: 12px;
-
border: 2px inset #404040;
-
overflow-x: auto;
-
font-size: 12px;
-
line-height: 1.3;
-
}
-
-
#readme-content pre code {
-
background: transparent;
-
color: inherit;
-
padding: 0;
-
}
-
-
#readme-content strong {
-
color: #333333;
-
}
-
-
#readme-content em {
-
color: #808080;
-
font-style: italic;
-
}
-
-
.status-bar {
-
background: #c0c0c0;
-
color: #000000;
-
padding: 3px 8px;
-
border-top: 2px groove #ffffff;
-
font-size: 11px;
-
display: flex;
-
justify-content: space-between;
-
}
-
-
.separator {
-
color: #808080;
-
margin: 15px 0;
-
text-align: center;
-
}
-
-
.loading {
-
text-align: center;
-
padding: 20px;
-
color: #808080;
-
}
-
-
.loading::after {
-
content: "";
-
animation: dots 1.5s steps(4, end) infinite;
-
}
-
-
@keyframes dots {
-
-
0%,
-
20% {
-
content: "";
-
}
-
-
40% {
-
content: ".";
-
}
-
-
60% {
-
content: "..";
-
}
-
-
80%,
-
100% {
-
content: "...";
-
}
-
}
-
-
.error-box {
-
background: #ff0000;
-
color: #ffffff;
-
padding: 10px;
-
border: 2px inset #800000;
-
margin: 10px 0;
-
}
-
-
.ascii-header {
-
color: #000080;
-
font-size: 10px;
-
line-height: 1.1;
-
white-space: pre;
-
margin: 10px 0 15px 0;
-
text-align: center;
-
}
-
</style>
-
</head>
-
-
<body>
-
<div class="terminal">
-
<div class="title-bar">
-
<span>C:\KIERANK.EXE - kierank.hackclub.app</span>
-
<div class="title-buttons">
-
<div class="title-btn">_</div>
-
<div class="title-btn">□</div>
-
<div class="title-btn">×</div>
-
</div>
-
</div>
-
-
<div class="content">
-
<p class="prompt">
-
C:\KIERANK> README.EXE<span class="cursor"> </span>
-
</p>
-
-
<!-- biome-ignore format: ascii art -->
-
<pre class="ascii-header">
-
██╗ ██╗██╗███████╗██████╗ █████╗ ███╗ ██╗
-
██║ ██║██║██╔════╝██╔══██╗██╔══██╗████╗ ██║
-
█████╔╝██║█████╗ ██████╔╝███████║██╔██╗ ██║
-
██╔═██╗██║██╔══╝ ██╔══██╗██╔══██║██║╚██╗██║
-
██║ ██║██║███████╗██║ ██║██║ ██║██║ ╚████║
-
╚═╝ ╚═╝╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝
-
</pre>
-
-
<div class="separator">
-
════════════════════════════════════════════════════
-
</div>
-
-
<div id="readme-content">
-
<div class="loading" style="display: none">Loading README from GitHub</div>
-
-
<noscript>
-
<div class="error-box">
-
JavaScript is disabled so not rendering markdown.
-
</div>
-
<p>
-
View the README on GitHub:
-
<a href="https://github.com/taciturnaxolotl/taciturnaxolotl/blob/main/README.md">
-
taciturnaxolotl/README.md
-
</a>
-
</p>
-
</noscript>
-
</div>
-
-
<div class="separator">
-
════════════════════════════════════════════════════
-
</div>
-
-
<p style="font-size: 11px; color: #808080; text-align: center">
-
Hosted on <a href="https://hackclub.com/nest/">Hack Club Nest</a> |
-
<a href="https://github.com/taciturnaxolotl">GitHub</a> |
-
<a href="https://dunkirk.sh">dunkirk.sh</a>
-
</p>
-
</div>
-
-
<div class="status-bar">
-
<span id="status">Fetching README...</span>
-
<span id="time"></span>
-
</div>
-
</div>
-
-
<script>
-
const README_URL =
-
"https://raw.githubusercontent.com/taciturnaxolotl/taciturnaxolotl/refs/heads/main/README.md"
-
-
async function loadReadme() {
-
const contentDiv = document.getElementById("readme-content");
-
const statusSpan = document.getElementById("status");
-
const loadingEl = contentDiv.querySelector(".loading");
-
-
// Show loading
-
if (loadingEl) loadingEl.classList.remove("hidden");
-
-
-
try {
-
const response = await fetch(README_URL);
-
if (!response.ok) {
-
throw new Error(`HTTP ${response.status}`);
-
}
-
-
const markdown = await response.text();
-
-
// Configure marked for GFM
-
marked.setOptions({
-
gfm: true,
-
breaks: true,
-
});
-
-
contentDiv.innerHTML = marked.parse(markdown);
-
-
// Strip emojis from headers
-
contentDiv.querySelectorAll("h3, h4").forEach((header) => {
-
const text = header.textContent;
-
-
// Regex targets:
-
// - \p{Extended_Pictographic}: most modern emoji/pictographs
-
// - \p{Emoji_Presentation}: characters default-rendered as emoji
-
// - Variation Selector-16 (U+FE0F): emoji presentation modifier
-
// - Common symbol blocks that often carry emoji-like glyphs
-
const emojiRegex =
-
/[\p{Extended_Pictographic}\p{Emoji_Presentation}\uFE0F]|[\u2600-\u26FF\u2700-\u27BF]/gu;
-
-
// Strip emojis
-
let cleaned = text.replace(emojiRegex, "");
-
-
// Collapse multiple whitespace into single spaces
-
cleaned = cleaned.replace(/\s+/g, " ");
-
-
// Remove spaces before punctuation (e.g., "Hello !" -> "Hello!")
-
cleaned = cleaned.replace(/\s+([!?,.;:])/g, "$1");
-
-
// Trim leading/trailing whitespace
-
cleaned = cleaned.trim();
-
-
// Replace header content safely
-
header.textContent = cleaned;
-
});
-
-
statusSpan.textContent = "README loaded successfully";
-
} catch (error) {
-
contentDiv.innerHTML = `
-
<div class="error-box">
-
ERROR: Failed to load README<br>
-
${error.message}
-
</div>
-
<p>Try refreshing the page or visit
-
<a href="https://github.com/taciturnaxolotl">github.com/taciturnaxolotl</a> directly.</p>
-
`;
-
statusSpan.textContent = "Error loading README";
-
}
-
}
-
-
function updateTime() {
-
const now = new Date();
-
const timeStr = now.toLocaleTimeString("en-US", {
-
hour: "2-digit",
-
minute: "2-digit",
-
hour12: true,
-
});
-
document.getElementById("time").textContent = timeStr;
-
}
-
-
// Initialize
-
updateTime();
-
setInterval(updateTime, 1000);
-
loadReadme();
-
</script>
-
</body>
-
-
</html>
-
-
</html>
-
-
</html>