commit e8e70a7c8ce103feda3155444907363c0995cd55 Author: Pigges Date: Mon Dec 4 19:52:18 2023 +0100 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d4c0aa --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# build output +dist/ + +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..22a1505 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d642209 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9c77f2e --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +The MIT License (MIT) + +Copyright (c) 2023 Philip Ahlqvist. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OF OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1a818ad --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# LBRY Tech + +A rewrite of the lbry.tech website, using Astro. \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 0000000..0baf00a --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,15 @@ +import { defineConfig } from 'astro/config'; +import codeblocks from "@thewebforge/astro-code-blocks"; +import preload from "astro-preload"; + +import mdx from "@astrojs/mdx"; + +// https://astro.build/config +export default defineConfig({ + prefetch: true, + integrations: [preload(), codeblocks({ + // Copy Button Options + copyButtonTitle: 'Copy', + copyButtonTooltip: 'Copied to clipboard', +}), mdx()] +}); \ No newline at end of file diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000..77e6a2c Binary files /dev/null and b/bun.lockb differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..5a094e4 --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "lbry-tech", + "version": "0.0.1", + "dependencies": { + "@astrojs/mdx": "^1.1.5", + "@astropub/md": "^0.3.0", + "@lbry/components": "^4.2.5", + "@thewebforge/astro-code-blocks": "^0.2.0", + "astro": "^3.6.1", + "astro-preload": "^1.1.2", + "rehype-autolink-headings": "^7.1.0", + "rehype-slug": "^6.0.0", + "sass": "^1.69.5" + }, + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "type": "module" +} \ No newline at end of file diff --git a/public/assets/apple-touch-icon.png b/public/assets/apple-touch-icon.png new file mode 100755 index 0000000..68839be Binary files /dev/null and b/public/assets/apple-touch-icon.png differ diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico new file mode 100644 index 0000000..5020b5b Binary files /dev/null and b/public/assets/favicon.ico differ diff --git a/public/assets/favicon.svg b/public/assets/favicon.svg new file mode 100644 index 0000000..d6289f0 --- /dev/null +++ b/public/assets/favicon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/humans.txt b/public/assets/humans.txt new file mode 100755 index 0000000..0b54fcb --- /dev/null +++ b/public/assets/humans.txt @@ -0,0 +1,18 @@ +/* TEAM */ + +Paul Anthony Webb - Creator, Designer, and Developer +…and the rest of the LBRY squad + + + +/* THANKS */ + +LBRY - https://lbry.com +Viewers like you + + + +/* SITE */ + +Standards: CSS3, HTML5, JavaScript (ES5, ES6/7) +Components: choo, fastify, NodeJS, Sass diff --git a/public/assets/media/images/background-a.jpg b/public/assets/media/images/background-a.jpg new file mode 100644 index 0000000..bd501b1 Binary files /dev/null and b/public/assets/media/images/background-a.jpg differ diff --git a/public/assets/media/images/carlsagan2.jpg b/public/assets/media/images/carlsagan2.jpg new file mode 100644 index 0000000..6cfe14a Binary files /dev/null and b/public/assets/media/images/carlsagan2.jpg differ diff --git a/public/assets/media/images/doge-meme.jpg b/public/assets/media/images/doge-meme.jpg new file mode 100644 index 0000000..a565714 Binary files /dev/null and b/public/assets/media/images/doge-meme.jpg differ diff --git a/public/assets/media/images/grid.png b/public/assets/media/images/grid.png new file mode 100644 index 0000000..0eb6d63 Binary files /dev/null and b/public/assets/media/images/grid.png differ diff --git a/public/assets/media/images/lbry-green.png b/public/assets/media/images/lbry-green.png new file mode 100644 index 0000000..ed271a1 Binary files /dev/null and b/public/assets/media/images/lbry-green.png differ diff --git a/public/assets/media/images/lbry-overview.png b/public/assets/media/images/lbry-overview.png new file mode 100644 index 0000000..b179f18 Binary files /dev/null and b/public/assets/media/images/lbry-overview.png differ diff --git a/public/assets/media/images/missing.png b/public/assets/media/images/missing.png new file mode 100644 index 0000000..52c6c6d Binary files /dev/null and b/public/assets/media/images/missing.png differ diff --git a/public/assets/media/images/og-image.png b/public/assets/media/images/og-image.png new file mode 100644 index 0000000..a85e7ba Binary files /dev/null and b/public/assets/media/images/og-image.png differ diff --git a/public/assets/media/svg/anchor.svg b/public/assets/media/svg/anchor.svg new file mode 100755 index 0000000..95b9b0d --- /dev/null +++ b/public/assets/media/svg/anchor.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/media/svg/chat.svg b/public/assets/media/svg/chat.svg new file mode 100755 index 0000000..0b79f07 --- /dev/null +++ b/public/assets/media/svg/chat.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/media/svg/discord.svg b/public/assets/media/svg/discord.svg new file mode 100644 index 0000000..9d7796b --- /dev/null +++ b/public/assets/media/svg/discord.svg @@ -0,0 +1 @@ +Discord \ No newline at end of file diff --git a/public/assets/media/svg/down.svg b/public/assets/media/svg/down.svg new file mode 100644 index 0000000..0196217 --- /dev/null +++ b/public/assets/media/svg/down.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/media/svg/flag.svg b/public/assets/media/svg/flag.svg new file mode 100755 index 0000000..cc88ec6 --- /dev/null +++ b/public/assets/media/svg/flag.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/media/svg/keyboard.svg b/public/assets/media/svg/keyboard.svg new file mode 100755 index 0000000..e338c53 --- /dev/null +++ b/public/assets/media/svg/keyboard.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/public/assets/media/svg/logo--white.svg b/public/assets/media/svg/logo--white.svg new file mode 100644 index 0000000..81c9fbe --- /dev/null +++ b/public/assets/media/svg/logo--white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/media/svg/logo.svg b/public/assets/media/svg/logo.svg new file mode 100644 index 0000000..ed4f58d --- /dev/null +++ b/public/assets/media/svg/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/media/svg/monitor.svg b/public/assets/media/svg/monitor.svg new file mode 100755 index 0000000..f8665a4 --- /dev/null +++ b/public/assets/media/svg/monitor.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/media/svg/reddit.svg b/public/assets/media/svg/reddit.svg new file mode 100644 index 0000000..7e4ddd1 --- /dev/null +++ b/public/assets/media/svg/reddit.svg @@ -0,0 +1 @@ +Reddit \ No newline at end of file diff --git a/public/assets/media/svg/slack.svg b/public/assets/media/svg/slack.svg new file mode 100644 index 0000000..df664ae --- /dev/null +++ b/public/assets/media/svg/slack.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/assets/media/svg/text-logo--white.svg b/public/assets/media/svg/text-logo--white.svg new file mode 100644 index 0000000..344ddd9 --- /dev/null +++ b/public/assets/media/svg/text-logo--white.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/media/svg/text-logo.svg b/public/assets/media/svg/text-logo.svg new file mode 100644 index 0000000..65725e0 --- /dev/null +++ b/public/assets/media/svg/text-logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/assets/media/svg/watch--green.svg b/public/assets/media/svg/watch--green.svg new file mode 100644 index 0000000..8691829 --- /dev/null +++ b/public/assets/media/svg/watch--green.svg @@ -0,0 +1,10 @@ + + + diff --git a/public/assets/media/svg/watch.svg b/public/assets/media/svg/watch.svg new file mode 100644 index 0000000..63428ed --- /dev/null +++ b/public/assets/media/svg/watch.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/svg/code.svg b/public/assets/svg/code.svg new file mode 100644 index 0000000..e0af152 --- /dev/null +++ b/public/assets/svg/code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/svg/comments.svg b/public/assets/svg/comments.svg new file mode 100644 index 0000000..fd3cbf6 --- /dev/null +++ b/public/assets/svg/comments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/svg/keyboard.svg b/public/assets/svg/keyboard.svg new file mode 100644 index 0000000..b00db91 --- /dev/null +++ b/public/assets/svg/keyboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/svg/wand-magic-sparkles.svg b/public/assets/svg/wand-magic-sparkles.svg new file mode 100644 index 0000000..d03be4f --- /dev/null +++ b/public/assets/svg/wand-magic-sparkles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..f157bd1 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/src/components/Card.astro b/src/components/Card.astro new file mode 100644 index 0000000..bd6d597 --- /dev/null +++ b/src/components/Card.astro @@ -0,0 +1,61 @@ +--- +interface Props { + title: string; + body: string; + href: string; +} + +const { href, title, body } = Astro.props; +--- + + + diff --git a/src/components/Carousel.astro b/src/components/Carousel.astro new file mode 100644 index 0000000..776ceba --- /dev/null +++ b/src/components/Carousel.astro @@ -0,0 +1,153 @@ +--- +import { Image } from "astro-preload/components"; + +interface Props { + slides: Array; +} + +const { slides } = Astro.props; +--- + +
+ {slides.map((slide: object, i: number) => ( +
+
{i+1} / {slides.length}
+ + +

{slide.title}

+

{slide.description}

+
+
+ ))} + + + + +
+
+ +
+ {slides.map((slide: object, i: number) => ( + + ))} +
+ + + \ No newline at end of file diff --git a/src/components/Contribute.astro b/src/components/Contribute.astro new file mode 100644 index 0000000..25970b6 --- /dev/null +++ b/src/components/Contribute.astro @@ -0,0 +1,62 @@ +--- +import { contributions } from "../config"; +--- + +
+
+

Contribute

+

No matter your experience or skill level, you can progress content freedom.

+
+
+ {contributions.map((contribution: object) => ( +
+
{contribution.title}/
+
+

{contribution.title}

+
+
+ ))} +
+ +
+ \ No newline at end of file diff --git a/src/components/Featured.astro b/src/components/Featured.astro new file mode 100644 index 0000000..73f0f6a --- /dev/null +++ b/src/components/Featured.astro @@ -0,0 +1,81 @@ +--- +import { Image } from "astro-preload/components"; +import { featured, AWESOME_LBRY } from '../config'; +--- + + + \ No newline at end of file diff --git a/src/components/Footer.astro b/src/components/Footer.astro new file mode 100644 index 0000000..8a89d31 --- /dev/null +++ b/src/components/Footer.astro @@ -0,0 +1,25 @@ + + \ No newline at end of file diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 0000000..a766f3f --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,41 @@ +--- +import '../styles/Header.css'; + +export interface Props extends astroHTML.JSX.AnchorHTMLAttributes {}; +const { pathname } = Astro.url; + +const links = [ + { name: "Overview", href: "/overview" }, + { name: "Playground", href: "/playground" }, + { name: "Resources", href: "/resources"}, + { name: "Tutorials", href: "/tutorials"}, + { name: "Community", href: "/community"} +] + +const isActive = (href: string)=>{ + return href === pathname || href === pathname.split('/').slice(0,2).join('/');; +} + +--- + +
+ +
\ No newline at end of file diff --git a/src/components/Hero.astro b/src/components/Hero.astro new file mode 100644 index 0000000..5c21d79 --- /dev/null +++ b/src/components/Hero.astro @@ -0,0 +1,153 @@ +
+
+
+

LBRY

+

LBRY is a free, open, and community-run digital marketplace.
+ Build the future of content freedom.

+
+
+ +
+ \ No newline at end of file diff --git a/src/components/Resources.astro b/src/components/Resources.astro new file mode 100644 index 0000000..5ae0983 --- /dev/null +++ b/src/components/Resources.astro @@ -0,0 +1,75 @@ +--- +import { resources } from '../config'; +--- + +
+
+

Study Class

+

Learn By Reading

+
+
+ {resources.map((resource: object) => ( +
+
+

{resource.title}

+

{resource.description}

+
+ +
+ ))} +
+
+ \ No newline at end of file diff --git a/src/config.js b/src/config.js new file mode 100644 index 0000000..9cb7f56 --- /dev/null +++ b/src/config.js @@ -0,0 +1,69 @@ +export const AWESOME_LBRY = "https://github.com/LBRYFoundation/Awesome-LBRY"; + +export const features = [ + { + description: "Get your head around LBRY with 3 interactive examples.", + destination: "/playground", + label: "Party in the Playground", + title: "Learn By Trying" + }, + { + description: "Dig into the formal specification of the LBRY protocol.", + destination: "/spec", + label: "Study the Spec", + title: "Learn By Reading" + } +] + +export const resources = [ + { + title: "Overview", + href: "/overview", + description: "What if anyone in the world could publish a piece of digital content, anyone else in the world could access it, for free or for payment, and that entire system worked end-to-end without any centralized authority or point of control?" + }, { + title: "Resources", + href: "/resources", + description: "Looking for API documentation, formal specifications, how-tos, resources, or the meaning of life? Find at least some of these things in the resources area." + }, { + title: "Specifications", + href: "/spec", + description: "Dig into the formal specification of the LBRY protocol." + } +] + +export const contributions = [ + { + url: "/assets/svg/code.svg", + title: "Coding" + }, { + url: "/assets/svg/wand-magic-sparkles.svg", + title: "Creating" + }, { + url: "/assets/svg/keyboard.svg", + title: "Writing" + }, { + url: "/assets/svg/comments.svg", + title: "Testing" + } +] + +export const featured = [ + { + src: "https://codeberg.org/MorsMortium/LBRY-GTK/media/branch/CRewrite/share/icons/hicolor/scalable/apps/lbry-gtk.svg", + href: "https://codeberg.org/MorsMortium/LBRY-GTK", + title: "LBRY GTK", + description: "LBRY-GTK as the name suggests is a GTK client to the LBRY network." + }, + { + src: "https://github.com/alojzjakob/LBRYworm/raw/main/lbryworm/css/lbryworm-logo.png", + href: "https://www.lbryworm.com/", + title: "Bookworm", + description: "LBRY Worm is a search engine that surfaces books from the LBRY blockchain." + }, + { + src: "https://user-images.githubusercontent.com/14793624/126025087-08fae6dd-e9d3-4eed-9f3a-aa15661553e3.png", + href: "https://github.com/Hound-fm/podcatcher", + title: "Podcatcher", + description: "Audio media crawler for lbry." + } +] \ No newline at end of file diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 0000000..f964fe0 --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro new file mode 100644 index 0000000..57636f5 --- /dev/null +++ b/src/layouts/Layout.astro @@ -0,0 +1,57 @@ +--- +import '../styles/global.scss'; +import Header from '../components/Header.astro'; +import Footer from '../components/Footer.astro'; + +import { ViewTransitions } from 'astro:transitions'; + +interface Props { + title?: string; +} + +const { title } = Astro.props; +--- + + + + + {title || 'LBRY Tech'} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+