diff --git a/.eleventy.js b/.eleventy.js index 993f930..b12cb06 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -6,6 +6,19 @@ module.exports = function (eleventyConfig) { .sort((a, b) => b.date - a.date); }); + // Collection: about window content + eleventyConfig.addCollection("aboutContent", (api) => + api.getFilteredByGlob("src/about.md") + ); + + // Collection: projects, sorted alphabetically by title + eleventyConfig.addCollection("projects", (api) => + api + .getFilteredByGlob("src/projects/**/*.md") + .filter((p) => !p.fileSlug.startsWith("_")) + .sort((a, b) => a.data.title.localeCompare(b.data.title)) + ); + // Filter: human-readable date, e.g. "March 24, 2026" eleventyConfig.addFilter("readableDate", function (date) { return new Date(date).toLocaleDateString("en-US", { @@ -31,7 +44,7 @@ module.exports = function (eleventyConfig) { }); // Pass through static assets - eleventyConfig.addPassthroughCopy("assets"); + eleventyConfig.addPassthroughCopy("src/assets"); return { dir: { diff --git a/README.md b/README.md index 2d6b212..fc67a84 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,13 @@ # www-lordnet-sh -Least creative name award \ No newline at end of file +## About +Repo with the least creative name award. +This is my website. It exists as a fun way to present my projects and work I really care about. Unfortunately, this repo doesn't really fit that bill, and it will probably accumulate a fair amount of rot and dust. But if it displays my work, so be it! + +## Aesthetics + +The design is a love-letter to retro machines of the 80s. It's a fun mix of an interface inspired by AT&Ts unix PC (the 3b1), but with a phosphor screen, and some higher quality interface buttons. I had thought about making it more faithful, but that interface is dreadful to actually use. + +## Functionality + +The window manager works and properly embeds markdown files as they're needed. Each "program" on the desktop is a display-able markdown file. They're really just glorified page sections with a frame. \ No newline at end of file diff --git a/src/about.md b/src/about.md index 4ec3336..fa7a7a9 100644 --- a/src/about.md +++ b/src/about.md @@ -2,29 +2,17 @@ permalink: false --- -## $ ./about.sh +## $whoami -Hi, I'm **{{ site.author }}**. +Hi, I'm **lordtet**. -{{ site.bio }} +I pick apart systems for vulnerabilities, and collect old ones for fun. I have a particular affinity for UNIX and derivatives. + +Reach out if you want to chat about exploit dev, vulnerability research, or retro machines. ## Skills -- Systems & low-level programming -- Web development (front + back) -- Open source / UNIX tooling -- Whatever interesting problem is in front of me - -## Setup - -``` -OS: Gentoo Linux -Shell: zsh -Editor: neovim -WM: dwm -``` - -## Contact - -- **GitHub:** [{{ site.github }}]({{ site.github }}) -- **Email:** [{{ site.email }}](mailto:{{ site.email }}) +- Anything \*NIX. Practically, mostly Linux. Ask me about old UNIX or BSD. +- Systems programming, reverse engineering, exploitation +- Network services and architecture +- Rather familiar with Windows internals as well \ No newline at end of file diff --git a/src/assets/css/phosphor.css b/src/assets/css/phosphor.css index 68a1708..e62a97e 100644 --- a/src/assets/css/phosphor.css +++ b/src/assets/css/phosphor.css @@ -447,7 +447,8 @@ body { animation: flicker 12s infinite; } margin-bottom: 14px; } -.blog-tag { +.blog-tag, +.project-tag { appearance: none; -webkit-appearance: none; border: 1px solid var(--p-dim); @@ -460,8 +461,10 @@ body { animation: flicker 12s infinite; } cursor: pointer; transition: all 0.06s; } -.blog-tag:hover { border-color: var(--p); color: var(--p); } -.blog-tag.active { background: var(--p); border-color: var(--p); color: #000; } +.blog-tag:hover, +.project-tag:hover { border-color: var(--p); color: var(--p); } +.blog-tag.active, +.project-tag.active { background: var(--p); border-color: var(--p); color: #000; } .tag-count { opacity: 0.65; font-size: 10px; } /* Back button inside post view */ diff --git a/src/assets/js/blog.js b/src/assets/js/blog.js index 2b594de..2c243bf 100644 --- a/src/assets/js/blog.js +++ b/src/assets/js/blog.js @@ -38,3 +38,47 @@ }); }); }()); + +// ── Projects panel ───────────────────────────── +(function () { + var listing = document.getElementById('projects-listing'); + var content = document.getElementById('projects-window-content'); + var panels = document.querySelectorAll('.project-detail-panel'); + var tagBtns = document.querySelectorAll('.project-tag'); + var items = document.querySelectorAll('.project-list-item'); + + if (!listing) return; + + // ── Tag filtering ──────────────────────────── + tagBtns.forEach(function (btn) { + btn.addEventListener('click', function () { + tagBtns.forEach(function (b) { b.classList.remove('active'); }); + btn.classList.add('active'); + var tag = btn.dataset.tag; + items.forEach(function (li) { + var tags = li.dataset.tags ? li.dataset.tags.split(' ') : []; + li.style.display = (tag === '*' || tags.indexOf(tag) !== -1) ? '' : 'none'; + }); + }); + }); + + // ── Open a project ─────────────────────────── + document.querySelectorAll('.project-open-item').forEach(function (link) { + link.addEventListener('click', function (e) { + e.preventDefault(); + listing.classList.add('hidden'); + panels.forEach(function (p) { p.classList.add('hidden'); }); + var panel = document.getElementById('project-item-' + link.dataset.projectIdx); + if (panel) { panel.classList.remove('hidden'); content.scrollTop = 0; } + }); + }); + + // ── Back to listing ────────────────────────── + document.querySelectorAll('.project-back').forEach(function (btn) { + btn.addEventListener('click', function () { + panels.forEach(function (p) { p.classList.add('hidden'); }); + listing.classList.remove('hidden'); + content.scrollTop = 0; + }); + }); +}()); diff --git a/src/boring.md b/src/boring.md index 76a4e99..ec81036 100644 --- a/src/boring.md +++ b/src/boring.md @@ -4,9 +4,9 @@ title: "plain index" permalink: /boring/ --- -# {{ site.author }} +# Jake "lordtet" Holtham -{{ site.tagline }} +Unix Philosopher, Disassembly Miner, Computing Historian --- diff --git a/src/boring/projects.md b/src/boring/projects.md index 5267d4e..c66b20c 100644 --- a/src/boring/projects.md +++ b/src/boring/projects.md @@ -6,35 +6,18 @@ permalink: /boring/projects/ # Projects -A selection of things I've built or am currently building. +{% if collections.projects.length %} +{% for project in collections.projects %} +### {{ project.data.title }} +{% if project.data.tags %}`{{ project.data.tags | join('` `') }}`{% endif %} + +{{ project.templateContent | safe }} --- -### project-alpha - -A CLI tool for doing X. Written in Rust. - -**Tags:** `rust` `cli` -**Links:** [github](#) · [docs](#) - ---- - -### project-beta - -A web app for Y. TypeScript front-to-back. - -**Tags:** `typescript` `web` -**Links:** [github](#) · [live](#) - ---- - -### project-gamma - -Open source tooling. Because the world needs more of it. - -**Tags:** `python` `oss` -**Links:** [github](#) - ---- +{% endfor %} +{% else %} +*(no projects yet)* +{% endif %} [← back](/boring/) diff --git a/src/index.njk b/src/index.njk index 7c0a321..4dc228e 100644 --- a/src/index.njk +++ b/src/index.njk @@ -8,19 +8,19 @@ permalink: /
[i]
-
about
+
about_me.txt
[/]
blog/
-
[*]
-
projects
+
[/]
+
projects/
[@]
-
contact
+
contact.vcf
@@ -30,26 +30,11 @@ permalink: /