final content hopefully, and fixed routing
This commit is contained in:
@@ -4,7 +4,6 @@ import { QueryClientProvider } from "@tanstack/react-query";
|
||||
import { Toaster } from "@/components/ui/toaster";
|
||||
import { TooltipProvider } from "@/components/ui/tooltip";
|
||||
import Home from "@/pages/home";
|
||||
import NotFound from "@/pages/not-found";
|
||||
|
||||
import Docs from "@/pages/docs";
|
||||
|
||||
@@ -13,21 +12,6 @@ function Router() {
|
||||
<Switch>
|
||||
<Route path="/" component={Home} />
|
||||
<Route path="/docs" component={Docs} />
|
||||
<Route path="/webshell">
|
||||
<div className="min-h-screen bg-black flex flex-col items-center justify-center p-8 font-mono">
|
||||
<div className="text-destructive text-4xl mb-4">
|
||||
404: Web Shell Not Found
|
||||
</div>
|
||||
<p className="text-muted-foreground text-center max-w-md">
|
||||
The web-based shell environment is currently unavailable. Please use
|
||||
your native terminal for the full experience.
|
||||
</p>
|
||||
<a href="/" className="mt-8 text-primary hover:underline">
|
||||
$ exit
|
||||
</a>
|
||||
</div>
|
||||
</Route>
|
||||
<Route component={NotFound} />
|
||||
</Switch>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -51,10 +51,11 @@ function CommandReference() {
|
||||
|
||||
return (
|
||||
<div className="relative group p-6 rounded-xl border border-border/30 bg-surface/40 backdrop-blur-sm mb-12">
|
||||
<AnimatedSection title="What is it?" delay={200}>
|
||||
<div className="flex items-center gap-4 mb-4">
|
||||
<Terminal className="w-5 h-5 text-primary" />
|
||||
<span className="text-xs text-muted-foreground uppercase tracking-widest font-mono">
|
||||
Reference Command
|
||||
Terminal Command:
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex items-center justify-between gap-4">
|
||||
@@ -74,6 +75,7 @@ function CommandReference() {
|
||||
)}
|
||||
</Button>
|
||||
</div>
|
||||
</AnimatedSection>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -93,24 +95,27 @@ export default function Docs() {
|
||||
Documentation
|
||||
</h1>
|
||||
<p className="text-muted-foreground">
|
||||
Technical architecture and connection manual.
|
||||
The who, what, when, where, why
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<CommandReference />
|
||||
|
||||
<div className="space-y-12 md:space-y-20">
|
||||
<AnimatedSection title="What is it?" delay={200}>
|
||||
<AnimatedSection title="What is it?" delay={500}>
|
||||
<p className="text-muted-foreground leading-relaxed text-sm md:text-base">
|
||||
When executed in your terminal, this command renders a fully
|
||||
interactive shell portfolio experience. Much like a digital resume
|
||||
or personal site, it allows you to explore my work and background
|
||||
through a safe, secure, and purely text-based interface. It is
|
||||
completely harmless to your system.
|
||||
through a safe, <strong>secure</strong>, and purely text-based
|
||||
interface.{" "}
|
||||
<span className="text-foreground font-bold">
|
||||
It is completely harmless to your system.
|
||||
</span>{" "}
|
||||
</p>
|
||||
</AnimatedSection>
|
||||
|
||||
<AnimatedSection title="Command Breakdown" delay={400}>
|
||||
<AnimatedSection title="Command Breakdown" delay={800}>
|
||||
<div className="space-y-8">
|
||||
<div className="relative p-4 md:p-6 bg-surface/20 rounded-lg border border-border/10">
|
||||
<div className="text-primary text-base md:text-xl mb-6 font-mono text-center tracking-widest break-all">
|
||||
@@ -137,8 +142,8 @@ export default function Docs() {
|
||||
</div>
|
||||
<p className="text-[11px] md:text-xs text-muted-foreground leading-relaxed">
|
||||
<span className="text-foreground font-bold">User:</span> A
|
||||
passwordless, restricted user profile specifically
|
||||
provisioned for public access.
|
||||
passwordless, restricted user on my homeserver meant for
|
||||
public access.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -149,7 +154,7 @@ export default function Docs() {
|
||||
<p className="text-[11px] md:text-xs text-muted-foreground leading-relaxed">
|
||||
<span className="text-foreground font-bold">Domain:</span>{" "}
|
||||
Points to a web record that directs your request to my
|
||||
server's public gateway.
|
||||
server's public IP (gateway).
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -157,7 +162,7 @@ export default function Docs() {
|
||||
</div>
|
||||
</AnimatedSection>
|
||||
|
||||
<AnimatedSection title="Execution Guide" delay={600}>
|
||||
<AnimatedSection title="How to Run" delay={1100}>
|
||||
<div className="space-y-4 text-muted-foreground text-sm md:text-base">
|
||||
<div className="flex gap-4">
|
||||
<span className="text-primary shrink-0">01</span>
|
||||
@@ -185,7 +190,7 @@ export default function Docs() {
|
||||
<span className="text-primary shrink-0">05</span>
|
||||
<p>
|
||||
Terminate the process at any time by pressing{" "}
|
||||
<kbd className="px-1 py-0.5 rounded bg-surface/80 border border-border/30 text-foreground text-[10px]">
|
||||
<kbd className="px-1 py-0.5 rounded bg-surface/80 border border-border/30 text-foreground text-[16px]">
|
||||
Ctrl + C
|
||||
</kbd>
|
||||
.
|
||||
@@ -194,19 +199,14 @@ export default function Docs() {
|
||||
</div>
|
||||
</AnimatedSection>
|
||||
|
||||
<AnimatedSection title="Technical Summary" delay={800}>
|
||||
<AnimatedSection title="Code Logic" delay={1400}>
|
||||
<div className="space-y-6">
|
||||
<p className="text-muted-foreground leading-relaxed text-sm md:text-base">
|
||||
This command facilitates authenticated access to the{" "}
|
||||
This command gives authenticated access to the{" "}
|
||||
<span className="text-foreground font-bold">'portfolio'</span>{" "}
|
||||
user account on my private home infrastructure. No password is
|
||||
required, as the user environment is strictly isolated.
|
||||
</p>
|
||||
<div className="p-4 md:p-6 bg-surface/20 rounded-lg border border-border/10 space-y-4">
|
||||
<p className="text-xs md:text-sm text-muted-foreground italic">
|
||||
"The portfolio user is a specialized account with no
|
||||
system-level permissions and a modified shell."
|
||||
user account on my private home server.
|
||||
</p>
|
||||
|
||||
<p className="text-muted-foreground leading-relaxed text-sm md:text-base">
|
||||
Instead of a standard bash or zsh shell, the user session
|
||||
triggers a custom-coded{" "}
|
||||
@@ -219,10 +219,9 @@ export default function Docs() {
|
||||
handle real-time rendering and input.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</AnimatedSection>
|
||||
|
||||
<AnimatedSection title="Resources" delay={1000}>
|
||||
<AnimatedSection title="Resources" delay={1700}>
|
||||
<div className="flex flex-col md:flex-row gap-4">
|
||||
<a
|
||||
href="https://git.keshavanand.net/KeshavAnandCode/terminal-portfolio"
|
||||
@@ -248,9 +247,9 @@ export default function Docs() {
|
||||
<ArrowRight className="w-4 h-4 opacity-0 group-hover:opacity-100 transition-opacity" />
|
||||
</a>
|
||||
</div>
|
||||
<p className="mt-4 text-[10px] text-muted-foreground/60 text-center">
|
||||
Note: Web shell is a simulated environment. Native terminal is
|
||||
recommended for optimal performance.
|
||||
<p className="mt-4 text-[12px] text-muted-foreground/60 text-center">
|
||||
Note: Web shell is a simulated environment, and native terminal is
|
||||
recommended
|
||||
</p>
|
||||
</AnimatedSection>
|
||||
</div>
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
import { Card, CardContent } from "@/components/ui/card";
|
||||
import { AlertCircle } from "lucide-react";
|
||||
|
||||
export default function NotFound() {
|
||||
return (
|
||||
<div className="min-h-screen w-full flex items-center justify-center bg-gray-50">
|
||||
<Card className="w-full max-w-md mx-4">
|
||||
<CardContent className="pt-6">
|
||||
<div className="flex mb-4 gap-2">
|
||||
<AlertCircle className="h-8 w-8 text-red-500" />
|
||||
<h1 className="text-2xl font-bold text-gray-900">404 Page Not Found</h1>
|
||||
</div>
|
||||
|
||||
<p className="mt-4 text-sm text-gray-600">
|
||||
Did you forget to add the page to the router?
|
||||
</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user