Implement meta tags
This commit is contained in:
BIN
public/meta/img1.png
Normal file
BIN
public/meta/img1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
BIN
public/meta/img2.png
Normal file
BIN
public/meta/img2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
BIN
public/meta/img3.png
Normal file
BIN
public/meta/img3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
BIN
public/meta/img4.png
Normal file
BIN
public/meta/img4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
BIN
public/meta/img5.png
Normal file
BIN
public/meta/img5.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 107 KiB |
BIN
public/meta/img6.png
Normal file
BIN
public/meta/img6.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
18
src/components/Meta.jsx
Normal file
18
src/components/Meta.jsx
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
export default function Meta({ title, description, image, url = "https://fluttershub.com" }) {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<title>{title}</title>
|
||||||
|
<meta property="og:url" content={url} />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:title" content={title} />
|
||||||
|
<meta property="og:description" content={description} />
|
||||||
|
<meta property="og:image" content={image} />
|
||||||
|
<meta property="og:image:secure_url" content={image} />
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
<meta name="twitter:title" content={title} />
|
||||||
|
<meta name="twitter:description" content={description} />
|
||||||
|
<meta name="twitter:image" content={image} />
|
||||||
|
<meta name="theme-color" content="#00ff99" />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
0
src/components/ogp.jsx
Normal file
0
src/components/ogp.jsx
Normal file
@@ -1,16 +1,19 @@
|
|||||||
---
|
---
|
||||||
|
import Meta from "../layouts/Meta.astro";
|
||||||
import CenteredImage from "../components/CenteredImage.jsx";
|
import CenteredImage from "../components/CenteredImage.jsx";
|
||||||
import ButtonGrid from "../components/ButtonGrid.jsx";
|
import ButtonGrid from "../components/ButtonGrid.jsx";
|
||||||
import TypewriterLoader from "../components/TypewriterLoader.jsx";
|
import TypewriterLoader from "../components/TypewriterLoader.jsx";
|
||||||
import Greeting from "../components/Greeting.jsx";
|
import Greeting from "../components/Greeting.jsx";
|
||||||
import ConsoleArt from '../components/Console.jsx';
|
import ConsoleArt from '../components/Console.jsx';
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<html lang="en" class="h-full bg-gray-900 text-white">
|
<html lang="en" class="h-full bg-gray-900 text-white">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
<title>Landing Page</title>
|
<Meta />
|
||||||
</head>
|
</head>
|
||||||
<body
|
<body
|
||||||
class="relative h-full min-h-screen overflow-hidden flex items-center justify-center"
|
class="relative h-full min-h-screen overflow-hidden flex items-center justify-center"
|
||||||
|
|||||||
55
src/layouts/Meta.astro
Normal file
55
src/layouts/Meta.astro
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
const images = [
|
||||||
|
"/meta/img1.png",
|
||||||
|
"/meta/img2.png",
|
||||||
|
"/meta/img3.png",
|
||||||
|
"/meta/img4.png",
|
||||||
|
"/meta/img5.png",
|
||||||
|
"/meta/img6.png",
|
||||||
|
];
|
||||||
|
|
||||||
|
const titles = [
|
||||||
|
"Phoenix's Hacker Den",
|
||||||
|
"404: Privacy Not Found",
|
||||||
|
"Uplink: British Edition",
|
||||||
|
"The Cookie Exploiter Zone",
|
||||||
|
"Gacha Addiction Headquarters",
|
||||||
|
"Kasane Teto Left Her VPN On",
|
||||||
|
"Sniffing Your WiFi Packets...",
|
||||||
|
"Miku's Secret LAN Party",
|
||||||
|
"Debugging Your Fridge...",
|
||||||
|
"Terminal Overlord Vibes",
|
||||||
|
];
|
||||||
|
|
||||||
|
const descriptions = [
|
||||||
|
"We got cookies, milk, and highly suspicious scripts 👀",
|
||||||
|
"Accessing your fridge in dark mode... 🍪",
|
||||||
|
"Decrypting your browser history for maximum dopamine.",
|
||||||
|
"Injecting pizza delivery payloads into your router.",
|
||||||
|
"I swear I'm just rolling *one* more gacha pull...",
|
||||||
|
"Kasane Teto left some suspicious .exe files here.",
|
||||||
|
"Miku is streaming your WiFi logs to the moon 🌕",
|
||||||
|
"Currently hacking your WiFi. Buffering... 🔥",
|
||||||
|
"Just an idiot building pity, nothing else.",
|
||||||
|
"Installing vocaloid drivers on your toaster...",
|
||||||
|
];
|
||||||
|
|
||||||
|
const image = images[Math.floor(Math.random() * images.length)];
|
||||||
|
const title = titles[Math.floor(Math.random() * titles.length)];
|
||||||
|
const description = descriptions[Math.floor(Math.random() * descriptions.length)];
|
||||||
|
---
|
||||||
|
|
||||||
|
<title>{title}</title>
|
||||||
|
<meta property="og:url" content="https://fluttershub.com" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:title" content={title} />
|
||||||
|
<meta property="og:description" content={description} />
|
||||||
|
<meta property="og:image" content={image} />
|
||||||
|
<meta property="og:image:secure_url" content={image} />
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
<meta name="twitter:title" content={title} />
|
||||||
|
<meta name="twitter:description" content={description} />
|
||||||
|
<meta name="twitter:image" content={image} />
|
||||||
|
|
||||||
|
<meta name="theme-color" content="#b00b69" />
|
||||||
Reference in New Issue
Block a user