diff --git a/README.md b/README.md new file mode 100644 index 0000000..f605bd9 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# fresh project + +### Usage + +Start the project: + +``` +deno task start +``` + +This will watch the project directory and restart as necessary. diff --git a/components/Button.tsx b/components/Button.tsx new file mode 100644 index 0000000..0d10b4b --- /dev/null +++ b/components/Button.tsx @@ -0,0 +1,11 @@ +import { JSX } from "preact"; +import { IS_BROWSER } from "$fresh/runtime.ts"; + +export function Button(props: JSX.HTMLAttributes) { + return ( + + + + ); +} diff --git a/main.ts b/main.ts new file mode 100644 index 0000000..dedce9c --- /dev/null +++ b/main.ts @@ -0,0 +1,10 @@ +/// +/// +/// +/// +/// + +import { start } from "$fresh/server.ts"; +import manifest from "./fresh.gen.ts"; + +await start(manifest); diff --git a/routes/[name].tsx b/routes/[name].tsx new file mode 100644 index 0000000..9c06827 --- /dev/null +++ b/routes/[name].tsx @@ -0,0 +1,5 @@ +import { PageProps } from "$fresh/server.ts"; + +export default function Greet(props: PageProps) { + return
Hello {props.params.name}
; +} diff --git a/routes/api/joke.ts b/routes/api/joke.ts new file mode 100644 index 0000000..a3f4243 --- /dev/null +++ b/routes/api/joke.ts @@ -0,0 +1,21 @@ +import { HandlerContext } from "$fresh/server.ts"; + +// Jokes courtesy of https://punsandoneliners.com/randomness/programmer-jokes/ +const JOKES = [ + "Why do Java developers often wear glasses? They can't C#.", + "A SQL query walks into a bar, goes up to two tables and says “can I join you?”", + "Wasn't hard to crack Forrest Gump's password. 1forrest1.", + "I love pressing the F5 key. It's refreshing.", + "Called IT support and a chap from Australia came to fix my network connection. I asked “Do you come from a LAN down under?”", + "There are 10 types of people in the world. Those who understand binary and those who don't.", + "Why are assembly programmers often wet? They work below C level.", + "My favourite computer based band is the Black IPs.", + "What programme do you use to predict the music tastes of former US presidential candidates? An Al Gore Rhythm.", + "An SEO expert walked into a bar, pub, inn, tavern, hostelry, public house.", +]; + +export const handler = (_req: Request, _ctx: HandlerContext): Response => { + const randomIndex = Math.floor(Math.random() * JOKES.length); + const body = JOKES[randomIndex]; + return new Response(body); +}; diff --git a/routes/index.tsx b/routes/index.tsx new file mode 100644 index 0000000..bd48661 --- /dev/null +++ b/routes/index.tsx @@ -0,0 +1,25 @@ +import { Head } from "$fresh/runtime.ts"; +import Counter from "../islands/Counter.tsx"; + +export default function Home() { + return ( + <> + + Fresh App + +
+ the fresh logo: a sliced lemon dripping with juice +

+ Welcome to `fresh`. Try updating this message in the ./routes/index.tsx + file, and refresh. +

+ +
+ + ); +} diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..1cfaaa2 Binary files /dev/null and b/static/favicon.ico differ diff --git a/static/logo.svg b/static/logo.svg new file mode 100644 index 0000000..ef2fbe4 --- /dev/null +++ b/static/logo.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file