fix: use trailing slashes

This commit is contained in:
Oleg Proskurin 2026-01-02 19:13:31 +07:00
parent fcbb5396b3
commit 5d7da9e59c
14 changed files with 67 additions and 69 deletions

View File

@ -47,21 +47,21 @@ export default function FlowsAPIPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'API Reference', href: '/docs/api' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'API Reference', href: '/docs/api/' },
{ label: 'Flows' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/generation',
href: '/docs/generation/',
title: 'Image Generation Guide',
description: 'Learn about chaining generations with flows.',
accent: 'primary',
},
{
href: '/docs/api/generations',
href: '/docs/api/generations/',
title: 'Generations API',
description: 'Create generations within flows.',
accent: 'secondary',

View File

@ -44,21 +44,21 @@ export default function GenerationsAPIPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'API Reference', href: '/docs/api' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'API Reference', href: '/docs/api/' },
{ label: 'Generations' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/generation',
href: '/docs/generation/',
title: 'Image Generation Guide',
description: 'Concepts and examples for image generation.',
accent: 'primary',
},
{
href: '/docs/api/images',
href: '/docs/api/images/',
title: 'Images API',
description: 'Upload and manage images.',
accent: 'secondary',

View File

@ -45,21 +45,21 @@ export default function ImagesAPIPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'API Reference', href: '/docs/api' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'API Reference', href: '/docs/api/' },
{ label: 'Images' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/images',
href: '/docs/images/',
title: 'Working with Images Guide',
description: 'Concepts and examples for image management.',
accent: 'primary',
},
{
href: '/docs/api/generations',
href: '/docs/api/generations/',
title: 'Generations API',
description: 'Create AI-generated images.',
accent: 'secondary',

View File

@ -46,21 +46,21 @@ export default function LiveScopesAPIPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'API Reference', href: '/docs/api' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'API Reference', href: '/docs/api/' },
{ label: 'Live Scopes' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/live-urls',
href: '/docs/live-urls/',
title: 'Live URLs Guide',
description: 'Learn about live URL generation.',
accent: 'primary',
},
{
href: '/docs/api/generations',
href: '/docs/api/generations/',
title: 'Generations API',
description: 'Full control via the generations API.',
accent: 'secondary',

View File

@ -44,20 +44,20 @@ export default function APIOverviewPage() {
<JsonLd data={API_REFERENCE_SCHEMA} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'API Reference' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/api/generations',
href: '/docs/api/generations/',
title: 'Generations API',
description: 'Create and manage image generations.',
accent: 'primary',
},
{
href: '/docs/api/images',
href: '/docs/api/images/',
title: 'Images API',
description: 'Upload and organize images.',
accent: 'secondary',
@ -97,7 +97,7 @@ export default function APIOverviewPage() {
/>
<p className="text-gray-300 leading-relaxed mt-6">
See <a href="/docs/authentication" className="text-purple-400 hover:underline">Authentication</a> for details on obtaining and using API keys.
See <a href="/docs/authentication/" className="text-purple-400 hover:underline">Authentication</a> for details on obtaining and using API keys.
</p>
</section>
@ -227,25 +227,25 @@ export default function APIOverviewPage() {
<LinkCardGrid columns={2}>
<LinkCard
href="/docs/api/generations"
href="/docs/api/generations/"
title="Generations"
description="Create and manage AI image generations"
accent="primary"
/>
<LinkCard
href="/docs/api/images"
href="/docs/api/images/"
title="Images"
description="Upload and organize images"
accent="secondary"
/>
<LinkCard
href="/docs/api/flows"
href="/docs/api/flows/"
title="Flows"
description="Manage generation chains"
accent="primary"
/>
<LinkCard
href="/docs/api/live-scopes"
href="/docs/api/live-scopes/"
title="Live Scopes"
description="Control live URL generation"
accent="secondary"

View File

@ -38,20 +38,20 @@ export default function AuthenticationPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'Authentication' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/generation',
href: '/docs/generation/',
title: 'Start Generating',
description: 'Create your first AI-generated image.',
accent: 'primary',
},
{
href: '/docs/api',
href: '/docs/api/',
title: 'API Reference',
description: 'Full endpoint documentation.',
accent: 'secondary',

View File

@ -42,20 +42,20 @@ export default function GenerationPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'Image Generation' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/api/generations',
href: '/docs/api/generations/',
title: 'API Reference: Generations',
description: 'Full endpoint documentation for generations.',
accent: 'primary',
},
{
href: '/docs/images',
href: '/docs/images/',
title: 'Working with Images',
description: 'Upload your own images and organize with aliases.',
accent: 'secondary',
@ -214,7 +214,7 @@ export default function GenerationPage() {
<div className="mt-6">
<TipBox variant="compact" type="info">
<strong>Pro Tip:</strong> Use aliases like <InlineCode>@logo</InlineCode> instead of UUIDs. See <a href="/docs/images" className="text-purple-400 hover:underline">Working with Images</a> to learn about aliases.
<strong>Pro Tip:</strong> Use aliases like <InlineCode>@logo</InlineCode> instead of UUIDs. See <a href="/docs/images/" className="text-purple-400 hover:underline">Working with Images</a> to learn about aliases.
</TipBox>
</div>

View File

@ -40,20 +40,20 @@ export default function ImagesPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'Working with Images' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/api/images',
href: '/docs/api/images/',
title: 'API Reference: Images',
description: 'Full endpoint documentation for images.',
accent: 'primary',
},
{
href: '/docs/generation',
href: '/docs/generation/',
title: 'Image Generation',
description: 'Use your images as references in generations.',
accent: 'secondary',

View File

@ -42,20 +42,20 @@ export default function LiveUrlsPage() {
<JsonLd data={articleSchema} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'Live URLs' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/api/live-scopes',
href: '/docs/api/live-scopes/',
title: 'API Reference: Live Scopes',
description: 'Manage scopes and generation limits.',
accent: 'primary',
},
{
href: '/docs/generation',
href: '/docs/generation/',
title: 'Image Generation',
description: 'Full control via the generations API.',
accent: 'secondary',

View File

@ -41,32 +41,32 @@ export default function GettingStartedPage() {
<JsonLd data={HOW_TO_SCHEMA} />
<DocPage
breadcrumbItems={[
{ label: 'Documentation', href: '/docs' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'Getting Started' },
]}
tocItems={tocItems}
nextSteps={{
links: [
{
href: '/docs/generation',
href: '/docs/generation/',
title: 'Image Generation',
description: 'Aspect ratios, prompt templates, using references.',
accent: 'primary',
},
{
href: '/docs/images',
href: '/docs/images/',
title: 'Working with Images',
description: 'Upload your own, organize with aliases.',
accent: 'secondary',
},
{
href: '/docs/live-urls',
href: '/docs/live-urls/',
title: 'Live URLs',
description: 'Generate images directly from URL parameters.',
accent: 'primary',
},
{
href: '/docs/api',
href: '/docs/api/',
title: 'API Reference',
description: 'Full endpoint documentation.',
accent: 'secondary',
@ -186,7 +186,7 @@ export default function GettingStartedPage() {
</TipBox>
<p className="text-gray-300 leading-relaxed mt-6">
<a href="/docs/live-urls" className="text-purple-400 hover:underline">Learn more about Live URLs </a>
<a href="/docs/live-urls/" className="text-purple-400 hover:underline">Learn more about Live URLs </a>
</p>
</section>

View File

@ -12,62 +12,62 @@ export default function sitemap(): MetadataRoute.Sitemap {
},
// Documentation - Guides
{
url: `${baseUrl}/docs`,
url: `${baseUrl}/docs/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.9,
},
{
url: `${baseUrl}/docs/generation`,
url: `${baseUrl}/docs/generation/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.8,
},
{
url: `${baseUrl}/docs/images`,
url: `${baseUrl}/docs/images/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.8,
},
{
url: `${baseUrl}/docs/live-urls`,
url: `${baseUrl}/docs/live-urls/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.8,
},
{
url: `${baseUrl}/docs/authentication`,
url: `${baseUrl}/docs/authentication/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.8,
},
// Documentation - API Reference
{
url: `${baseUrl}/docs/api`,
url: `${baseUrl}/docs/api/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.8,
},
{
url: `${baseUrl}/docs/api/generations`,
url: `${baseUrl}/docs/api/generations/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.7,
},
{
url: `${baseUrl}/docs/api/images`,
url: `${baseUrl}/docs/api/images/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.7,
},
{
url: `${baseUrl}/docs/api/flows`,
url: `${baseUrl}/docs/api/flows/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.7,
},
{
url: `${baseUrl}/docs/api/live-scopes`,
url: `${baseUrl}/docs/api/live-scopes/`,
lastModified: new Date(),
changeFrequency: 'weekly',
priority: 0.7,

View File

@ -40,33 +40,33 @@ interface DocsSidebarProps {
const navigationItems: NavItem[] = [
{
label: 'Getting Started',
href: '/docs',
href: '/docs/',
},
{
label: 'Image Generation',
href: '/docs/generation',
href: '/docs/generation/',
},
{
label: 'Working with Images',
href: '/docs/images',
href: '/docs/images/',
},
{
label: 'Live URLs',
href: '/docs/live-urls',
href: '/docs/live-urls/',
},
{
label: 'Authentication',
href: '/docs/authentication',
href: '/docs/authentication/',
},
{
label: 'API Reference',
href: '/docs/api',
href: '/docs/api/',
children: [
{ label: 'Overview', href: '/docs/api' },
{ label: 'Generations', href: '/docs/api/generations' },
{ label: 'Images', href: '/docs/api/images' },
{ label: 'Flows', href: '/docs/api/flows' },
{ label: 'Live Scopes', href: '/docs/api/live-scopes' },
{ label: 'Overview', href: '/docs/api/' },
{ label: 'Generations', href: '/docs/api/generations/' },
{ label: 'Images', href: '/docs/api/images/' },
{ label: 'Flows', href: '/docs/api/flows/' },
{ label: 'Live Scopes', href: '/docs/api/live-scopes/' },
],
},
];

View File

@ -1,7 +1,7 @@
'use client';
import Image from 'next/image';
import { /* footerLinks, */ footerCopyright } from '@/config/footer';
import { footerLinks, footerCopyright } from '@/config/footer';
export const Footer = () => {
return (
@ -20,7 +20,6 @@ export const Footer = () => {
/>
</div>
{/* Navigation - hidden until sections are ready
<nav aria-label="Footer navigation">
<div className="grid grid-cols-2 gap-x-4 gap-y-3 sm:flex sm:flex-wrap sm:justify-center sm:gap-6 md:gap-8 text-sm text-gray-400">
{footerLinks.map((link) => (
@ -34,7 +33,6 @@ export const Footer = () => {
))}
</div>
</nav>
*/}
</div>
<div className="mt-8 md:mt-10 text-center text-sm text-gray-500">

View File

@ -1,6 +1,6 @@
export const footerLinks = [
{ label: 'Documentation', href: '#' },
{ label: 'API Reference', href: '#' },
{ label: 'Documentation', href: '/docs/' },
{ label: 'API Reference', href: '/docs/api/' },
{ label: 'Pricing', href: '#' },
{ label: 'Contact', href: '#' },
];