summaryrefslogtreecommitdiff
path: root/front/src
diff options
context:
space:
mode:
Diffstat (limited to 'front/src')
-rw-r--r--front/src/index.css6
-rw-r--r--front/src/index.js5
-rw-r--r--front/src/root.jsx3
-rw-r--r--front/src/routes/home.jsx30
-rw-r--r--front/src/routes/man_pages.jsx69
5 files changed, 95 insertions, 18 deletions
diff --git a/front/src/index.css b/front/src/index.css
index 40d45cb..f9c4620 100644
--- a/front/src/index.css
+++ b/front/src/index.css
@@ -179,6 +179,12 @@ textarea:focus {
border: 1px solid var(--gold-color);
}
+.man-page-title {
+ display: flex;
+ justify-content: space-between;
+ align-itemts: center;
+}
+
.modal {
display: flex;
flex-direction: column;
diff --git a/front/src/index.js b/front/src/index.js
index e827e0a..eb2801c 100644
--- a/front/src/index.js
+++ b/front/src/index.js
@@ -7,6 +7,7 @@ import { Root } from "./root";
import { Demo } from "./routes/demo";
import { Home } from "./routes/home";
import { Keys } from "./routes/keys";
+import { ManPages } from "./routes/man_pages";
import { Password } from "./routes/password";
import { AuthSuccessful } from "./routes/auth_successful";
@@ -35,6 +36,10 @@ const router = createBrowserRouter([
path: "auth-successful",
element: <AuthSuccessful />,
},
+ {
+ path: "man-pages",
+ element: <ManPages />,
+ },
],
},
]);
diff --git a/front/src/root.jsx b/front/src/root.jsx
index 1abc67b..3e9ea53 100644
--- a/front/src/root.jsx
+++ b/front/src/root.jsx
@@ -42,6 +42,9 @@ export const Root = () => {
</a>
</>
)}
+ <Link className="link" to="/man-pages">
+ Man Pages
+ </Link>
</div>
</div>
<div className="content">
diff --git a/front/src/routes/home.jsx b/front/src/routes/home.jsx
index 3495d20..d4ba22b 100644
--- a/front/src/routes/home.jsx
+++ b/front/src/routes/home.jsx
@@ -3,15 +3,20 @@ import { Link } from "react-router-dom";
import { useAuthContext } from "../context/auth_context";
+const generateSSHConfig = (username) => `
+Host chessh
+ Hostname ${process.env.REACT_APP_SSH_SERVER}
+ Port ${process.env.REACT_APP_SSH_PORT}
+ User "${username}"
+ PubkeyAuthentication yes
+`;
+
export const Home = () => {
const { player, signedIn } = useAuthContext();
if (signedIn) {
- const sshConfig = `Host chessh
- Hostname ${process.env.REACT_APP_SSH_SERVER}
- Port ${process.env.REACT_APP_SSH_PORT}
- User "${player?.username}"
- PubkeyAuthentication yes`;
+ const sshConfig = generateSSHConfig(player?.username);
+
return (
<>
<h2>Welcome, {player?.username}</h2>
@@ -51,7 +56,7 @@ export const Home = () => {
<li>Then, connect with:</li>
<CopyBlock
theme={dracula}
- text={"ssh -t chessh"}
+ text={"ssh chessh"}
language={"shell"}
showLineNumbers={false}
codeBlock
@@ -59,19 +64,8 @@ export const Home = () => {
</div>
<div>
<li>
- Finally, play chess! Ideally, keeping the following contols in
- mind:
+ Finally, check out the short <a href="/man-pages">man pages</a> .
</li>
-
- <ul>
- <li>Ctrl + b / Escape to return to the main menu.</li>
- <li>Ctrl + c / Ctrl + d to exit CheSSH at any point.</li>
- <li>Arrow keys to move around the board.</li>
- <li>
- Select a piece with "enter", and move it to a square by pressing
- "enter" again.
- </li>
- </ul>
</div>
</ol>
</>
diff --git a/front/src/routes/man_pages.jsx b/front/src/routes/man_pages.jsx
new file mode 100644
index 0000000..30324c8
--- /dev/null
+++ b/front/src/routes/man_pages.jsx
@@ -0,0 +1,69 @@
+export const ManPages = () => {
+ return (
+ <div>
+ <div className="man-page-title">
+ <div>CHESSH(1)</div>
+ <div>User Help</div>
+ <div>CHESSH(1)</div>
+ </div>
+ <br />
+ <div>
+ <div>
+ <b>NAME</b>
+ </div>
+ <div>
+ <ul>
+ <li>chessh - multiplayer chess over ssh</li>
+ </ul>
+ </div>
+ </div>
+
+ <div>
+ <div>
+ <b>SYNOPSIS</b>
+ </div>
+ <div>
+ <ul>
+ <li>
+ ssh <b>chessh</b>
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ <div>
+ <div>
+ <b>DESCRIPTION</b>
+ </div>
+ <div>
+ <div>
+ CheSSH uses the SSH protocol to send sequences of ANSI codes &
+ plaintext to render a chess board in your shell, and listen to I/O
+ by abusing the hell out of the{" "}
+ <a href="https://www.erlang.org/doc/man/ssh.html">
+ Erlang SSH Module
+ </a>
+ .
+ </div>
+ </div>
+ </div>
+ <br />
+ <div>
+ <div>
+ <b>INTERACTION</b>
+ </div>
+ <div>
+ <ul>
+ <li>Ctrl + b / Escape to return to the main menu.</li>
+ <li>Ctrl + c / Ctrl + d to exit CheSSH at any point.</li>
+ <li>Arrow keys / vim keybinds to move around the board.</li>
+ <li>
+ Select a piece with "enter", and move it to a square by pressing
+ "enter" again.
+ </li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ );
+};