site generator: commands/*.md with front matter -> k8s/site/
site / generated-is-current (push) Failing after 36s
site / generated-is-current (push) Failing after 36s
- build/build.mjs: one-file-per-command content (filename = command,
underscores = spaces; help/suggestion/params/prefix/text/hidden in
front matter; ${args} ${date} ${time} ${ls} ${help} resolved at runtime)
- generates index.html (banner + chips), commands.json (the single data
source), hello.txt for curl, style.css via tailwind v4
- src/site.js is now dispatch-only over commands.json; typewriter kept
- src/telnet.py: stdlib telnet shell sharing commands.json
- k8s: python telnet sidecar in the pod + LoadBalancer service 23->2323
- .gitea/workflows/site.yml fails CI when k8s/site/ is not the built output
This commit is contained in:
+28
-53
@@ -13,81 +13,56 @@
|
||||
<link rel="canonical" href="https://momme.world/">
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
|
||||
<link rel="stylesheet" href="/style.css">
|
||||
<script>document.documentElement.classList.add("js")</script>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<body class="min-h-dvh bg-bg text-fg font-mono antialiased flex flex-col items-center justify-center p-4 sm:p-8 selection:bg-accent/30">
|
||||
|
||||
<div class="term" id="term">
|
||||
<div class="titlebar">
|
||||
<span class="dot r"></span><span class="dot y"></span><span class="dot g"></span>
|
||||
<span class="title">momme@world: ~</span>
|
||||
<main class="w-full max-w-3xl">
|
||||
|
||||
<div class="rounded-lg border border-line bg-panel shadow-[0_0_40px_rgba(0,0,0,.5)] overflow-hidden">
|
||||
<div class="flex items-center gap-2 border-b border-line bg-bar px-3 py-2">
|
||||
<span class="size-3 rounded-full bg-[#ff5f56]"></span>
|
||||
<span class="size-3 rounded-full bg-[#ffbd2e]"></span>
|
||||
<span class="size-3 rounded-full bg-[#27c93f]"></span>
|
||||
<span class="ml-2 text-xs text-dim select-none">momme@world: ~</span>
|
||||
</div>
|
||||
|
||||
<div class="screen" id="screen" tabindex="-1">
|
||||
<pre class="hello">
|
||||
_ _
|
||||
<div id="screen" tabindex="-1" class="h-[62dvh] overflow-y-auto px-4 py-4 text-[13.5px] sm:text-[15px] leading-[1.35] cursor-text">
|
||||
<pre class="text-dim overflow-x-auto not-prose"> _ _
|
||||
| | | |
|
||||
_ __ ___ ___ _ __ ___ _ __ ___ ___ __ _____ _ __| | __| |
|
||||
| '_ ` _ \ / _ \| '_ ` _ \| '_ ` _ \ / _ \ \ \ /\ / / _ \| '__| |/ _` |
|
||||
| | | | | | (_) | | | | | | | | | | | __/ _ \ V V / (_) | | | | (_| |
|
||||
|_| |_| |_|\___/|_| |_| |_|_| |_| |_|\___| (_) \_/\_/ \___/|_| |_|\__,_|
|
||||
|
||||
0110110101101111011011010110110101100101001011100111011101101111011100100110110001100100
|
||||
</pre>
|
||||
0110110101101111011011010110110101100101001011100111011101101111011100100110110001100100</pre>
|
||||
|
||||
<div id="out"></div>
|
||||
<div id="out" class="whitespace-pre-wrap break-words"></div>
|
||||
|
||||
<form id="prompt" autocomplete="off">
|
||||
<span class="ps1" aria-hidden="true">momme@world:~$</span>
|
||||
<form id="prompt" autocomplete="off" class="flex items-baseline gap-2 mt-1">
|
||||
<span aria-hidden="true" class="text-accent shrink-0">momme@world:~$</span>
|
||||
<input id="cmd" aria-label="Run a command" placeholder="type a command — try `help`"
|
||||
class="flex-1 min-w-0 bg-transparent outline-none border-0 p-0 text-fg placeholder:text-dim/60 caret-transparent"
|
||||
autocapitalize="off" autocorrect="off" spellcheck="false">
|
||||
<span class="caret" aria-hidden="true"></span>
|
||||
<span aria-hidden="true" class="cursor -ml-[0.6em]"></span>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<nav class="chips" aria-label="Commands">
|
||||
<button data-run="whoami">whoami</button>
|
||||
<button data-run="projects">projects</button>
|
||||
<button data-run="stack">stack</button>
|
||||
<button data-run="social">social</button>
|
||||
<button data-run="contact">contact</button>
|
||||
<nav class="mt-4 flex flex-wrap justify-center gap-2" aria-label="Commands">
|
||||
<button data-run="contact" class="rounded border border-line bg-panel px-3 py-1 text-xs text-dim hover:text-accent hover:border-accent transition-colors">contact</button>
|
||||
<button data-run="hello" class="rounded border border-line bg-panel px-3 py-1 text-xs text-dim hover:text-accent hover:border-accent transition-colors">hello</button>
|
||||
<button data-run="project" class="rounded border border-line bg-panel px-3 py-1 text-xs text-dim hover:text-accent hover:border-accent transition-colors">project</button>
|
||||
<button data-run="social" class="rounded border border-line bg-panel px-3 py-1 text-xs text-dim hover:text-accent hover:border-accent transition-colors">social</button>
|
||||
<button data-run="stack" class="rounded border border-line bg-panel px-3 py-1 text-xs text-dim hover:text-accent hover:border-accent transition-colors">stack</button>
|
||||
<button data-run="whoami" class="rounded border border-line bg-panel px-3 py-1 text-xs text-dim hover:text-accent hover:border-accent transition-colors">whoami</button>
|
||||
</nav>
|
||||
|
||||
<p class="curl">
|
||||
Terminal people: <code>curl momme.world</code>
|
||||
· source: <a href="https://git.momme.cloud/momme-world/momme-world">git.momme.cloud/momme-world/momme-world</a>
|
||||
<p class="mt-4 text-center text-xs text-dim">
|
||||
Terminal people: <code class="text-fg">curl momme.world</code>
|
||||
· tailnet: <code class="text-fg">telnet momme.world 23</code>
|
||||
· source: <a class="text-accent hover:underline" href="https://git.momme.cloud/momme/momme-world">git.momme.cloud/momme/momme-world</a>
|
||||
</p>
|
||||
|
||||
<!-- Readable and copy-pasteable with JavaScript turned off. The terminal
|
||||
above is the same information, delivered as a conversation. -->
|
||||
<noscript>
|
||||
<section class="facts">
|
||||
<h2>whoami</h2>
|
||||
<p>I'm <strong>Momme Jürgensen</strong>. I work on infrastructure and developer
|
||||
platforms — the kind of work where the best interface is a short command.
|
||||
Currently at <a href="https://codeanker.de">codeanker</a>.</p>
|
||||
|
||||
<h2>stack</h2>
|
||||
<ul>
|
||||
<li><strong>Kubernetes</strong> — self-hosted cluster, GitOps, the whole garden.</li>
|
||||
<li><strong>NixOS</strong> — reproducible configs for servers and laptops.</li>
|
||||
<li><strong>Observability</strong> — Prometheus, Loki, dashboards I actually read.</li>
|
||||
<li><strong>FPV drones</strong> — built, flown, crashed, rebuilt.</li>
|
||||
</ul>
|
||||
|
||||
<h2>contact</h2>
|
||||
<ul>
|
||||
<li>Mail: <a href="mailto:momme@juergensen.me">momme@juergensen.me</a></li>
|
||||
<li>Matrix: <a href="https://matrix.to/#/@momme:chaos.jetzt">@momme:chaos.jetzt</a></li>
|
||||
<li>Mastodon: <a href="https://cybre.town/@momme">@momme@cybre.town</a></li>
|
||||
<li>GitHub: <a href="https://github.com/supermomme">supermomme</a></li>
|
||||
<li>Instagram: <a href="https://instagram.com/supermommej">@supermommej</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</noscript>
|
||||
|
||||
</main>
|
||||
<script src="/site.js"></script>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user