Refine SEO, uploads, and deploy handling
This commit is contained in:
@@ -66,7 +66,7 @@ export default function CollectionAnalytics() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{seo.title || `${collection.title || 'Collection'} Analytics — Skinbase Nova`}</title>
|
||||
<title>{seo.title || `${collection.title || 'Collection'} Analytics — Skinbase`}</title>
|
||||
<meta name="description" content={seo.description || 'Collection analytics overview.'} />
|
||||
{seo.canonical ? <link rel="canonical" href={seo.canonical} /> : null}
|
||||
<meta name="robots" content={seo.robots || 'noindex,follow'} />
|
||||
|
||||
@@ -527,7 +527,7 @@ export default function CollectionDashboard() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{seo.title || 'Collections Dashboard — Skinbase Nova'}</title>
|
||||
<title>{seo.title || 'Collections Dashboard — Skinbase'}</title>
|
||||
<meta name="description" content={seo.description || 'Collection lifecycle and performance dashboard.'} />
|
||||
{seo.canonical ? <link rel="canonical" href={seo.canonical} /> : null}
|
||||
<meta name="robots" content={seo.robots || 'noindex,follow'} />
|
||||
|
||||
@@ -255,7 +255,7 @@ export default function CollectionFeaturedIndex() {
|
||||
const seo = props.seo || {}
|
||||
const eyebrow = props.eyebrow || 'Discovery'
|
||||
const title = props.title || 'Featured collections'
|
||||
const description = props.description || 'A rotating set of standout galleries from across Skinbase Nova. Some are meticulously hand-sequenced. Others are smart collections that stay fresh as the creator publishes new work.'
|
||||
const description = props.description || 'A rotating set of standout galleries from across Skinbase. Some are meticulously hand-sequenced. Others are smart collections that stay fresh as the creator publishes new work.'
|
||||
const collections = Array.isArray(props.collections) ? props.collections : []
|
||||
const communityCollections = Array.isArray(props.communityCollections) ? props.communityCollections : []
|
||||
const editorialCollections = Array.isArray(props.editorialCollections) ? props.editorialCollections : []
|
||||
@@ -288,7 +288,7 @@ export default function CollectionFeaturedIndex() {
|
||||
|
||||
return (
|
||||
<>
|
||||
<SeoHead seo={seo} title={seo?.title || `${title} — Skinbase Nova`} description={seo?.description || description} jsonLd={listSchema} />
|
||||
<SeoHead seo={seo} title={seo?.title || `${title} — Skinbase`} description={seo?.description || description} jsonLd={listSchema} />
|
||||
|
||||
<div className="relative min-h-screen overflow-hidden pb-16">
|
||||
<div
|
||||
|
||||
@@ -88,7 +88,7 @@ export default function CollectionHistory() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{seo.title || `${collection.title || 'Collection'} History — Skinbase Nova`}</title>
|
||||
<title>{seo.title || `${collection.title || 'Collection'} History — Skinbase`}</title>
|
||||
<meta name="description" content={seo.description || 'Collection audit history.'} />
|
||||
{seo.canonical ? <link rel="canonical" href={seo.canonical} /> : null}
|
||||
<meta name="robots" content={seo.robots || 'noindex,follow'} />
|
||||
|
||||
@@ -1766,7 +1766,7 @@ export default function CollectionManage() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{mode === 'create' ? 'Create Collection — Skinbase Nova' : `${collectionState?.title || 'Collection'} — Manage Collection`}</title>
|
||||
<title>{mode === 'create' ? 'Create Collection — Skinbase' : `${collectionState?.title || 'Collection'} — Manage Collection`}</title>
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
</Head>
|
||||
|
||||
|
||||
@@ -19,14 +19,14 @@ export default function CollectionSeriesShow() {
|
||||
const { props } = usePage()
|
||||
const seo = props.seo || {}
|
||||
const title = props.title || `Collection Series: ${props.seriesKey || ''}`
|
||||
const description = props.description || 'A connected sequence of public collections on Skinbase Nova.'
|
||||
const description = props.description || 'A connected sequence of public collections on Skinbase.'
|
||||
const collections = Array.isArray(props.collections) ? props.collections : []
|
||||
const leadCollection = props.leadCollection || null
|
||||
const stats = props.stats || {}
|
||||
|
||||
return (
|
||||
<>
|
||||
<SeoHead seo={seo} title={seo.title || `${title} — Skinbase Nova`} description={seo.description || description} />
|
||||
<SeoHead seo={seo} title={seo.title || `${title} — Skinbase`} description={seo.description || description} />
|
||||
|
||||
<div className="relative min-h-screen overflow-hidden pb-16">
|
||||
<div aria-hidden="true" className="pointer-events-none absolute inset-x-0 top-0 -z-10 h-[36rem] opacity-95" style={{ background: 'radial-gradient(circle at 10% 15%, rgba(59,130,246,0.18), transparent 28%), radial-gradient(circle at 84% 18%, rgba(34,197,94,0.16), transparent 24%), linear-gradient(180deg, #07101d 0%, #0a1220 42%, #08111f 100%)' }} />
|
||||
|
||||
@@ -552,7 +552,7 @@ export default function CollectionShow() {
|
||||
const enabledModuleKeys = new Set(enabledModules.map((module) => module?.key).filter(Boolean))
|
||||
const showIntroBlock = enabledModuleKeys.size === 0 || enabledModuleKeys.has('intro_block')
|
||||
const metaOwnerName = owner?.name || owner?.username || collection?.owner?.name || 'Skinbase Curator'
|
||||
const metaTitle = seo?.title || `${collection?.title} — Skinbase Nova`
|
||||
const metaTitle = seo?.title || `${collection?.title} — Skinbase`
|
||||
const metaDescription = seo?.description || collection?.summary || collection?.description || ''
|
||||
const collectionSchema = seo?.canonical ? {
|
||||
'@context': 'https://schema.org',
|
||||
@@ -563,7 +563,7 @@ export default function CollectionShow() {
|
||||
image: seo?.og_image || collection?.cover_image || undefined,
|
||||
isPartOf: {
|
||||
'@type': 'WebSite',
|
||||
name: 'Skinbase Nova',
|
||||
name: 'Skinbase',
|
||||
url: typeof window !== 'undefined' ? window.location.origin : undefined,
|
||||
},
|
||||
author: owner ? {
|
||||
@@ -772,7 +772,7 @@ export default function CollectionShow() {
|
||||
setCollection((current) => ({ ...current, shares_count: payload?.shares_count ?? current.shares_count }))
|
||||
await share({
|
||||
title: collection?.title,
|
||||
text: collection?.summary || collection?.description || `Explore ${collection?.title} on Skinbase Nova.`,
|
||||
text: collection?.summary || collection?.description || `Explore ${collection?.title} on Skinbase.`,
|
||||
url: collection?.public_url,
|
||||
})
|
||||
} catch (error) {
|
||||
|
||||
@@ -458,7 +458,7 @@ export default function CollectionStaffProgramming() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{seo.title || 'Collection Programming — Skinbase Nova'}</title>
|
||||
<title>{seo.title || 'Collection Programming — Skinbase'}</title>
|
||||
<meta name="description" content={seo.description || 'Staff programming tools for collections.'} />
|
||||
{seo.canonical ? <link rel="canonical" href={seo.canonical} /> : null}
|
||||
<meta name="robots" content={seo.robots || 'noindex,follow'} />
|
||||
|
||||
@@ -374,7 +374,7 @@ export default function CollectionStaffSurfaces() {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{seo.title || 'Collection Surfaces — Skinbase Nova'}</title>
|
||||
<title>{seo.title || 'Collection Surfaces — Skinbase'}</title>
|
||||
<meta name="description" content={seo.description || 'Staff tools for collection surfaces.'} />
|
||||
{seo.canonical ? <link rel="canonical" href={seo.canonical} /> : null}
|
||||
<meta name="robots" content={seo.robots || 'noindex,follow'} />
|
||||
|
||||
@@ -144,7 +144,7 @@ export default function SavedCollections() {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'CollectionPage',
|
||||
name: 'Saved collections',
|
||||
description: seo?.description || 'Your saved collections on Skinbase Nova.',
|
||||
description: seo?.description || 'Your saved collections on Skinbase.',
|
||||
url: seo.canonical,
|
||||
mainEntity: {
|
||||
'@type': 'ItemList',
|
||||
@@ -328,7 +328,7 @@ export default function SavedCollections() {
|
||||
|
||||
return (
|
||||
<>
|
||||
<SeoHead seo={seo} title={seo?.title || 'Saved Collections — Skinbase Nova'} description={seo?.description || 'Your saved collections on Skinbase Nova.'} jsonLd={listSchema} />
|
||||
<SeoHead seo={seo} title={seo?.title || 'Saved Collections — Skinbase'} description={seo?.description || 'Your saved collections on Skinbase.'} jsonLd={listSchema} />
|
||||
|
||||
<div className="relative min-h-screen overflow-hidden pb-16">
|
||||
<div aria-hidden="true" className="pointer-events-none absolute inset-x-0 top-0 -z-10 h-[34rem] opacity-95" style={{ background: 'radial-gradient(circle at 15% 14%, rgba(245,158,11,0.16), transparent 26%), radial-gradient(circle at 82% 18%, rgba(56,189,248,0.16), transparent 24%), linear-gradient(180deg, #07101d 0%, #0a1220 42%, #08111f 100%)' }} />
|
||||
|
||||
Reference in New Issue
Block a user