diff --git a/.github/workflows/indexnow.yml b/.github/workflows/indexnow.yml new file mode 100644 index 00000000..5fc382b8 --- /dev/null +++ b/.github/workflows/indexnow.yml @@ -0,0 +1,32 @@ +name: Notify IndexNow + +on: + deployment_status: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.deployment.environment || 'Production' }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + submit: + if: >- + github.event_name == 'workflow_dispatch' || + (github.event.deployment_status.state == 'success' && + github.event.deployment.environment == 'Production') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + - uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.2.19 + - name: Submit canonical sitemap URLs + env: + INDEXNOW_KEY: ${{ secrets.INDEXNOW_KEY }} + INDEXNOW_SITE_URL: https://limeplay.winoffrg.dev + run: bun apps/www/scripts/submit-indexnow.ts diff --git a/apps/www/app/(home)/page.tsx b/apps/www/app/(home)/page.tsx index 1383a27d..62aed175 100644 --- a/apps/www/app/(home)/page.tsx +++ b/apps/www/app/(home)/page.tsx @@ -1,3 +1,5 @@ +import type { Metadata } from "next" + import { FeatureTrailSection } from "@/components/feature-trail-section" import { FeatureGrid } from "@/components/features" import { Hero } from "@/components/hero" @@ -6,6 +8,12 @@ import { AudioPlayerHover } from "@/components/players/audio-player/hover-player import { VideoPlayerContainer } from "@/components/players/video-player/player-container" import { ScrollIndicator } from "@/components/scroll-indicator" +export const metadata: Metadata = { + alternates: { + canonical: "/", + }, +} + export default function Home() { return ( <> diff --git a/apps/www/app/blocks/[[...slug]]/page.tsx b/apps/www/app/blocks/[[...slug]]/page.tsx index 1dcd4375..9ecddb5b 100644 --- a/apps/www/app/blocks/[[...slug]]/page.tsx +++ b/apps/www/app/blocks/[[...slug]]/page.tsx @@ -8,6 +8,7 @@ import { BlockPageShell } from "@/components/blocks/block-page-shell" import { getBlockShowcase } from "@/components/blocks/block-showcase" import { BlockInfoPane } from "@/components/blocks/info-pane" import { getMDXComponents } from "@/components/mdx-components" +import { PageJsonLd } from "@/components/page-json-ld" import { blocksSource } from "@/lib/blocks-source" export const revalidate = false @@ -28,6 +29,9 @@ export default async function BlockPage(props: BlockPageProps) { } const showcase = getBlockShowcase(page.data.preview) + const description = + page.data.description ?? + `Install and customize the ${page.data.title} block for Limeplay.` const MDXContent = page.data.body const PreviewComponent = showcase.component @@ -65,6 +69,17 @@ export default async function BlockPage(props: BlockPageProps) { tree={blocksSource.getPageTree()} >
+ {/* TODO: Point this breadcrumb to /blocks once the blocks index page exists. */} +