Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 8x 8x 8x 8x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 5x 5x 5x 5x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 5x 5x 5x 5x 1x 1x 1x 1x | import type { MetadataRoute } from 'next'
import { CREATE_TOOLS } from '@/lib/create-tools/createToolList'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://abaci.one'
// Main pages
const routes = [
'',
'/arcade',
'/create',
'/guide',
'/about',
'/why-abacus',
'/for-teachers',
'/features/worksheet-parsing',
].map((route) => ({
url: `${baseUrl}${route}`,
lastModified: new Date(),
changeFrequency: 'weekly' as const,
priority: route === '' ? 1 : 0.8,
}))
// Arcade games
const games = [
'/arcade/rithmomachia',
'/arcade/complement-race',
'/arcade/matching',
'/arcade/memory-quiz',
'/arcade/card-sorting',
].map((route) => ({
url: `${baseUrl}${route}`,
lastModified: new Date(),
changeFrequency: 'monthly' as const,
priority: 0.6,
}))
// Guide pages
const guides = ['/arcade/rithmomachia/guide'].map((route) => ({
url: `${baseUrl}${route}`,
lastModified: new Date(),
changeFrequency: 'monthly' as const,
priority: 0.5,
}))
// Create tools, straight off the registry so a new tool is listed the day it
// ships. Tier drives priority the same way games sit below the top routes.
const createTools = CREATE_TOOLS.map((tool) => ({
url: `${baseUrl}${tool.href}`,
lastModified: new Date(),
changeFrequency: 'monthly' as const,
priority: tool.tier === 'primary' ? 0.8 : 0.6,
}))
return [...routes, ...games, ...guides, ...createTools]
}
|