Browse Source

data: add more projects

master
Muthu Kumar 4 days ago
parent
commit
f154d656d1
  1. 4
      bun.lock
  2. 2
      package.json
  3. 9
      src/pages/main/Work.tsx
  4. 79
      src/pages/main/data/project.ts

4
bun.lock

@ -20,7 +20,7 @@
"marked": "^9.1.6", "marked": "^9.1.6",
"rollup-plugin-visualizer": "^5.14.0", "rollup-plugin-visualizer": "^5.14.0",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"vite": "^6.2.5", "vite": "^6.2.6",
}, },
}, },
}, },
@ -745,7 +745,7 @@
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
"vite": ["vite@6.2.5", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA=="], "vite": ["vite@6.2.6", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw=="],
"webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="],

2
package.json

@ -32,6 +32,6 @@
"marked": "^9.1.6", "marked": "^9.1.6",
"rollup-plugin-visualizer": "^5.14.0", "rollup-plugin-visualizer": "^5.14.0",
"typescript": "^5.8.3", "typescript": "^5.8.3",
"vite": "^6.2.5" "vite": "^6.2.6"
} }
} }

9
src/pages/main/Work.tsx

@ -174,16 +174,19 @@ const Exp: React.FC = () => {
`}> `}>
<a <a
className={cx( className={cx(
unit.wip && (unit.wip || unit.private) &&
css` css`
color: var(--text-subdued); color: var(--text-subdued);
cursor: default; cursor: default;
`, `,
)} )}
href={unit.wip ? undefined : unit.url} href={unit.wip || unit.private ? undefined : unit.url}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
title={unit.title + (unit.wip ? " (WIP)" : "")}> title={
unit.title +
(unit.wip ? " (WIP)" : unit.private ? " (private)" : "")
}>
{unit.title} {unit.title}
</a> </a>
</td> </td>

79
src/pages/main/data/project.ts

@ -5,6 +5,7 @@ export type Project = {
cat: string; cat: string;
tags: string[]; tags: string[];
wip?: boolean; wip?: boolean;
private?: boolean;
}; };
export const projects: Project[] = [ export const projects: Project[] = [
@ -21,7 +22,7 @@ export const projects: Project[] = [
description: "Suite of fast, reactive web-app development libraries.", description: "Suite of fast, reactive web-app development libraries.",
url: "https://github.com/codefeathers/hyperactive", url: "https://github.com/codefeathers/hyperactive",
cat: "lib", cat: "lib",
tags: ["reactive", "ui-framework"], tags: ["reactive", "ui-framework", "typescript"],
}, },
{ {
title: "deno shims", title: "deno shims",
@ -49,16 +50,6 @@ export const projects: Project[] = [
tags: ["hyperactive", "calendar"], tags: ["hyperactive", "calendar"],
}, },
{ {
title: "Telecraft",
description: "Pluggable Minecraft server administration toolkit.",
url: "https://github.com/MadrasMC/telecraft",
cat: "cli",
tags: ["minecraft", "node"],
},
];
export const otherProjects: Project[] = [
{
title: "true-pg", title: "true-pg",
description: description:
"The most complete PostgreSQL schema generator for TypeScript, Kysely, Zod, and others.", "The most complete PostgreSQL schema generator for TypeScript, Kysely, Zod, and others.",
@ -66,13 +57,54 @@ export const otherProjects: Project[] = [
cat: "lib", cat: "lib",
tags: ["postgresql", "schema", "typescript", "kysely", "zod"], tags: ["postgresql", "schema", "typescript", "kysely", "zod"],
}, },
];
export const otherProjects: Project[] = [
{
title: "Telecraft",
description: "Pluggable Minecraft server administration toolkit.",
url: "https://github.com/MadrasMC/telecraft",
cat: "cli",
tags: ["deno", "minecraft"],
},
{ {
title: "wiretap", title: "wiretap",
description: description:
"Extremely tiny debug logging utility for all JavaScript runtimes. Published as npm/yarn.", "Extremely tiny universal debug logging utility for all JavaScript runtimes. Published as npm/w.",
url: "https://github.com/feathers-studio/wiretap", url: "https://github.com/feathers-studio/wiretap",
cat: "lib", cat: "lib",
tags: ["debug", "logging", "typescript"], tags: ["typescript", "debug", "logging"],
},
{
title: "hyperweb",
description:
"An implementation of WebMentions and a self-hosted microblog. A distributed social hyperweb!",
url: "https://github.com/feathers-studio/hyperweb",
cat: "web",
tags: ["typescript", "webmentions", "microblog"],
},
{
title: "ts-parser",
description:
"A TypeScript definitions (d.ts) parser from scratch using parser-generators.",
url: "https://github.com/feathers-studio/ts-parser",
cat: "lib",
tags: ["typescript", "parser"],
},
{
title: "hypercss",
description: "A perfectly spec-compliant CSS parser for TypeScript.",
url: "https://github.com/feathers-studio/hypercss",
cat: "lib",
tags: ["typescript", "parser", "css"],
},
{
title: "zappymail",
description:
"A tiny proxy email server to reformat emails from a thirdparty utility.",
cat: "cli",
tags: ["typescript", "proxy", "email"],
private: true,
}, },
{ {
title: "storymap", title: "storymap",
@ -80,7 +112,7 @@ export const otherProjects: Project[] = [
"Reverse-engineered thirdparty map renderer for Vintage Story in Zig ⚡️", "Reverse-engineered thirdparty map renderer for Vintage Story in Zig ⚡️",
url: "https://github.com/MadrasMC/storymap", url: "https://github.com/MadrasMC/storymap",
cat: "cli", cat: "cli",
tags: ["vintage-story", "zig"], tags: ["zig", "map-renderer", "vintage-story"],
wip: true, wip: true,
}, },
{ {
@ -88,16 +120,31 @@ export const otherProjects: Project[] = [
description: "TypeScript bindings for the i3 window manager.", description: "TypeScript bindings for the i3 window manager.",
url: "https://github.com/feathers-studio/i3-ts", url: "https://github.com/feathers-studio/i3-ts",
cat: "lib", cat: "lib",
tags: ["i3", "typescript", "bindings"], tags: ["typescript", "bindings", "i3"],
},
{
title: "mkr/mail",
description:
"A personal utility to fetch new emails from an IMAP server and send them to Telegram.",
url: "https://github.com/MKRhere/mail",
cat: "bot",
tags: ["typescript", "imap", "telegram"],
}, },
{ {
title: "pg-extract", title: "pg-extract",
description: "Extract data from PostgreSQL tables into a JSON array.", description: "Extract data from PostgreSQL tables into a JSON collection.",
url: "https://github.com/feathers-studio/pg-extract", url: "https://github.com/feathers-studio/pg-extract",
cat: "lib", cat: "lib",
tags: ["postgresql", "json", "data-extraction"], tags: ["postgresql", "json", "data-extraction"],
}, },
{ {
title: "mkr/bin",
description: "A small personal bin.",
url: "https://github.com/MKRhere/bin",
cat: "web",
tags: ["typescript", "bin"],
},
{
title: window.location.hostname.split(".").slice(0, 2).join("."), title: window.location.hostname.split(".").slice(0, 2).join("."),
description: "Did you find all the easter eggs? Keep looking.", description: "Did you find all the easter eggs? Keep looking.",
url: "https://github.com/MKRhere/pw2", url: "https://github.com/MKRhere/pw2",

Loading…
Cancel
Save