Merge pull request #10 from MealCraft/feature/moredeployments
Feature/moredeployments
This commit is contained in:
commit
870bb1b31c
10 changed files with 2370 additions and 18 deletions
|
|
@ -1,3 +1,26 @@
|
|||
export default function About() {
|
||||
return <h1>Everything you need to know about me will be here</h1>;
|
||||
return (
|
||||
<>
|
||||
<h1 className="text-2xl font-bold mb-4">Under construction</h1>
|
||||
|
||||
<div className="flex flex-col space-y-2">
|
||||
<a
|
||||
href="https://www.linkedin.com/in/juntekim"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-blue-500 underline"
|
||||
>
|
||||
LinkedIn
|
||||
</a>
|
||||
<a
|
||||
href="https://www.youtube.com/@ThePragmaticAutomator"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-red-500 underline"
|
||||
>
|
||||
YouTube
|
||||
</a>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
23
juntekim_frontend/app/Learning/Todo.md
Normal file
23
juntekim_frontend/app/Learning/Todo.md
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
- Engineering management for the rest of us
|
||||
- Next.js Pages Router Tutorial — <https://nextjs.org/learn/pages-router>
|
||||
- Next.js Dashboard App Tutorial — <https://nextjs.org/learn/dashboard-app>
|
||||
- MDN: Using Promises — <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises>
|
||||
- TCP/IP Illustrated, Volume 1 — Create a GitHub repo summarizing each chapter
|
||||
- CPU/Memory FreeBSD Optimization Article — <https://people.freebsd.org/~lstewart/articles/cpumemory.pdf>
|
||||
- Operating Systems: Three Easy Pieces (OSTEP) — <https://pages.cs.wisc.edu/~remzi/OSTEP/>
|
||||
- cURL Man Page — <https://curl.se/docs/manpage.html>
|
||||
- How Linux Works — <https://www.amazon.com/How-Linux-Works-3rd-Superuser/dp/1718500408>
|
||||
- Linux Bible — <https://www.amazon.com/Linux-Bible-Christopher-Negus/dp/1119578884>
|
||||
- Linux Journey — <https://linuxjourney.com/>
|
||||
- btop Documentation — <https://github.com/aristocratos/btop>
|
||||
- k9s Documentation — <https://k9scli.io/>
|
||||
- JSConf: Event Loop — <https://www.youtube.com/watch?v=8aGhZQkoFbQ>
|
||||
- Event Loop Playlist — <https://www.youtube.com/watch?v=HjneAhCy2N4&list=PL9vTTBa7QaQOoMfpP3ztvgyQkPWDPfJez>
|
||||
- JavaScript Visualized — <https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif>
|
||||
- RealPython: Async IO — <https://realpython.com/async-io-python/>
|
||||
- AWS Documentation — <https://docs.aws.amazon.com/>
|
||||
- SVG Animations (Book) — <https://www.amazon.com/SVG-Animations-Implementations-Responsive-Animation/dp/1491939702>
|
||||
- Antifrafile
|
||||
- Re read pragmatic automator
|
||||
- unix and linux system adminstration handbook
|
||||
- pandas text book i bought
|
||||
17
juntekim_frontend/app/Learning/page.tsx
Normal file
17
juntekim_frontend/app/Learning/page.tsx
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import fs from "fs";
|
||||
import path from "path";
|
||||
import MarkdownRenderer from "../components/MardownRenderer";
|
||||
|
||||
export default function LearningPage() {
|
||||
const filePath = path.join(process.cwd(), "app/Learning/Todo.md");
|
||||
const markdown = fs.readFileSync(filePath, "utf8");
|
||||
|
||||
return (
|
||||
<div className="p-8">
|
||||
<h1 className="text-3xl font-bold mb-6 text-zinc-900 dark:text-zinc-100">
|
||||
📘 Learning To Do List:
|
||||
</h1>
|
||||
<MarkdownRenderer content={markdown} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
@ -1,13 +1,18 @@
|
|||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
export default function FilePage({ params }: { params: { path?: string[] } }) {
|
||||
const filePath = params.path?.join("/") || "";
|
||||
export default async function FilePage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ path?: string[] }>;
|
||||
}) {
|
||||
const { path: segments = [] } = await params; // <-- FIXED
|
||||
const filePath = segments.join("/") || "";
|
||||
|
||||
// Resolve to actual file in public folder
|
||||
// Resolve to actual file in /public
|
||||
const fullPath = path.join(process.cwd(), "public", filePath);
|
||||
|
||||
// If folder or file missing
|
||||
// 404
|
||||
if (!fs.existsSync(fullPath)) {
|
||||
return (
|
||||
<div className="p-6 font-mono text-red-400">
|
||||
|
|
@ -16,7 +21,7 @@ export default function FilePage({ params }: { params: { path?: string[] } }) {
|
|||
);
|
||||
}
|
||||
|
||||
// If it's a folder, list its contents
|
||||
// Directory → list contents
|
||||
if (fs.lstatSync(fullPath).isDirectory()) {
|
||||
const files = fs.readdirSync(fullPath);
|
||||
|
||||
|
|
@ -30,7 +35,7 @@ export default function FilePage({ params }: { params: { path?: string[] } }) {
|
|||
);
|
||||
}
|
||||
|
||||
// Read file contents
|
||||
// File → read contents
|
||||
const content = fs.readFileSync(fullPath, "utf8");
|
||||
|
||||
return (
|
||||
|
|
|
|||
13
juntekim_frontend/app/components/MardownRenderer.tsx
Normal file
13
juntekim_frontend/app/components/MardownRenderer.tsx
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import React from "react";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import remarkGfm from "remark-gfm";
|
||||
|
||||
export default function MarkdownRenderer({ content }: { content: string }) {
|
||||
return (
|
||||
<div className="prose prose-zinc dark:prose-invert max-w-none">
|
||||
<ReactMarkdown remarkPlugins={[remarkGfm]}>
|
||||
{content}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
@ -101,16 +101,19 @@ Available commands:
|
|||
cd <path> Playful message about not leaving
|
||||
pwd Print working directory
|
||||
whoami Identify yourself
|
||||
motivation Generate motivation (may crash)
|
||||
motivation Generate motivation
|
||||
vibecheck Check the vibe
|
||||
clear I will not clear your history :)
|
||||
clear Clears the screen
|
||||
history Look into the past
|
||||
exit You can't exit, it's a website
|
||||
`,
|
||||
|
||||
pwd: () => "/home/juntekim/site",
|
||||
whoami: () => "juntekim",
|
||||
whoami: () => "I suspect you know who you are.",
|
||||
|
||||
clear: () => "no ❤️ you need to face your past commands.",
|
||||
history: () => "If we keep looking back, we won't see the glory of now",
|
||||
|
||||
clear: () => "no takebacks, face your past commands.",
|
||||
|
||||
motivation: () => [
|
||||
"Compiling motivation…",
|
||||
|
|
|
|||
|
|
@ -4,4 +4,5 @@ export const QUOTES = [
|
|||
'"Nothing like a health problem to turn up the contrast dial on the rest of life." - Naval Ravikant',
|
||||
'"If you want to go fast, go alone; if you want to go far, go together" - Unknown',
|
||||
'“I don’t know if it happened for the best — but I know I’ll make the best out of whatever happens.” - Unknown',
|
||||
'"I\'m a idiot! I\m a genius!" - Jun-te Kim',
|
||||
];
|
||||
|
|
|
|||
2270
juntekim_frontend/package-lock.json
generated
2270
juntekim_frontend/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -9,9 +9,13 @@
|
|||
"lint": "eslint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@uiw/react-markdown-preview": "^5.1.5",
|
||||
"@uiw/react-md-editor": "^4.0.11",
|
||||
"next": "16.0.7",
|
||||
"react": "19.2.0",
|
||||
"react-dom": "19.2.0"
|
||||
"react-dom": "19.2.0",
|
||||
"react-syntax-highlighter": "^16.1.0",
|
||||
"rehype-sanitize": "^6.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/postcss": "^4",
|
||||
|
|
|
|||
5
juntekim_frontend/tailwind.config.js
Normal file
5
juntekim_frontend/tailwind.config.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
content: ["./app/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}"],
|
||||
theme: { extend: {} },
|
||||
plugins: [require("@tailwindcss/typography")],
|
||||
};
|
||||
Loading…
Add table
Reference in a new issue