diff --git a/web/app/layout.tsx b/web/app/layout.tsx index cdea253..23caff9 100644 --- a/web/app/layout.tsx +++ b/web/app/layout.tsx @@ -7,34 +7,52 @@ import type React from "react" const inter = Inter({ subsets: ["latin"] }) export const metadata = { - title: "ProxMenux", + title: "ProxMenux - Menu-Driven Script for Proxmox VE Management", generator: "Next.js", applicationName: "ProxMenux", referrer: "origin-when-cross-origin", - keywords: ["Proxmox VE", "VE", "ProxMenux", "MacRimi", "menu-driven", "menu", "scripts", "virtualization"], - authors: [{ name: "MacRimi" }], + keywords: [ + "Proxmox VE", + "Proxmox", + "PVE", + "ProxMenux", + "MacRimi", + "menu-driven", + "menu script", + "scripts", + "virtualization", + "automation", + "server management", + "VM management", + "container management", + "LXC", + ], + authors: [{ name: "MacRimi", url: "https://github.com/MacRimi" }], creator: "MacRimi", publisher: "MacRimi", description: - "A menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks.", + "ProxMenux is a powerful menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks. Manage VMs, containers, networking, storage, and more with an intuitive interface.", formatDetection: { email: false, address: false, telephone: false, }, - metadataBase: new URL(`https://macrimi.github.io/ProxMenux/`), + metadataBase: new URL("https://proxmenux.com"), + alternates: { + canonical: "https://proxmenux.com", + }, openGraph: { - title: "ProxMenux", + title: "ProxMenux - Menu-Driven Script for Proxmox VE Management", description: - "A menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks.", - url: "https://macrimi.github.io/ProxMenux/", + "ProxMenux is a powerful menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks. Manage VMs, containers, networking, storage, and more.", + url: "https://proxmenux.com", siteName: "ProxMenux", images: [ { - url: "https://macrimi.github.io/ProxMenux/main.png", + url: "https://proxmenux.com/main.png", width: 1363, height: 735, - alt: "ProxMenux", + alt: "ProxMenux - Proxmox VE Management Interface", }, ], locale: "en_US", @@ -42,17 +60,29 @@ export const metadata = { }, twitter: { card: "summary_large_image", - title: "ProxMenux", + title: "ProxMenux - Menu-Driven Script for Proxmox VE", description: - "A menu-driven script for Proxmox VE management, designed to simplify and streamline the execution of commands and tasks.", - images: ["https://macrimi.github.io/ProxMenux/main.png"], + "Powerful menu-driven script for Proxmox VE management. Simplify VM, container, networking, and storage management with an intuitive interface.", + images: ["https://proxmenux.com/main.png"], + creator: "@MacRimi", + }, + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + "max-video-preview": -1, + "max-image-preview": "large", + "max-snippet": -1, + }, }, icons: { icon: [ - { url: "https://macrimi.github.io/ProxMenux/favicon.ico", sizes: "any" }, - { url: "https://macrimi.github.io/ProxMenux/icon.svg", type: "image/svg+xml" }, + { url: "/favicon.ico", sizes: "any" }, + { url: "/icon.svg", type: "image/svg+xml" }, ], - apple: [{ url: "https://macrimi.github.io/ProxMenux/apple-touch-icon.png", sizes: "180x180" } as const], + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180" }], }, } @@ -60,24 +90,32 @@ export default function RootLayout({ children }: { children: React.ReactNode }) return (
- - - - - - - - - - - - {/* Favicon y Apple Icons */} - {metadata.icons.icon.map((icon, index) => ( - - ))} - {metadata.icons.apple.map((icon, index) => ( - - ))} + tags
.replace(/```[\s\S]*?```/g, (match) => {
const code = match.replace(/```/g, "").trim()
- return `\n${code}\n`
+ return `${code}
`
})
- // Convert - bullet points to •
- .replace(/^- /gm, "• ")
- // Clean up multiple newlines
- .replace(/\n{3,}/g, "\n\n")
- // Remove backslashes used for line breaks
- .replace(/\\\s*$/gm, "")
+ // Convert - bullet points to - tags
+ .replace(/^- (.+)$/gm, "
- $1
")
+ // Wrap consecutive - tags in
+ .replace(/(- .*?<\/li>\s*)+/g, (match) => `
${match}
`)
+ // Convert double newlines to
for paragraphs
+ .replace(/\n\n/g, "
")
// Clean up extra spaces
.replace(/\s+/g, " ")
.trim()
@@ -75,7 +74,7 @@ async function parseChangelog(): Promise {
currentEntry = {
version,
date,
- url: `https://macrimi.github.io/ProxMenux/changelog#${version}`,
+ url: `https://proxmenux.com/changelog#${version}`,
title: `ProxMenux ${version}`,
}
} else if (dateMatch) {
@@ -83,7 +82,7 @@ async function parseChangelog(): Promise {
currentEntry = {
version: date,
date,
- url: `https://macrimi.github.io/ProxMenux/changelog#${date}`,
+ url: `https://proxmenux.com/changelog#${date}`,
title: `ProxMenux Update ${date}`,
}
}
@@ -115,13 +114,13 @@ async function parseChangelog(): Promise {
export async function GET() {
const entries = await parseChangelog()
- const siteUrl = "https://macrimi.github.io/ProxMenux"
+ const siteUrl = "https://proxmenux.com"
const rssXml = `
-
+
ProxMenux Changelog
- Latest updates and changes in ProxMenux
+ Latest updates and changes in ProxMenux - An Interactive Menu for Proxmox VE Management
${siteUrl}/changelog
en-US
@@ -134,7 +133,7 @@ export async function GET() {
(entry) => `
-
${entry.title}
- 1000 ? entry.content.substring(0, 1000) + "..." : entry.content}]]>
+
${entry.url}
${entry.url}
${new Date(entry.date).toUTCString()}
@@ -151,4 +150,4 @@ export async function GET() {
"Cache-Control": "public, max-age=3600, s-maxage=3600",
},
})
-}
+}
\ No newline at end of file