From 3ec11999d82c118b72416d11fd0aa6b2698359f6 Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Sat, 22 Aug 2026 10:25:35 +0500 Subject: [PATCH] feat: add route pages --- web/src/routes/+page.svelte | 109 ++++++++++++++++++++++++- web/src/routes/tools/[id]/+page.svelte | 19 +++++ web/src/routes/tools/[id]/+page.ts | 13 +++ 3 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 web/src/routes/tools/[id]/+page.svelte create mode 100644 web/src/routes/tools/[id]/+page.ts diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index e840f18..47132c9 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -1,3 +1,108 @@ + + + + easy-png-tools — PNG-утилиты прямо в браузере + + +

easy-png-tools

-

Набор PNG-утилит, которые работают полностью в вашем браузере.

-

Инструменты появятся здесь по мере добавления — см. docs/mvp-plan.md.

+

+ Набор утилит для работы с PNG. Все операции выполняются локально в браузере — файлы никуда не + отправляются. +

+ +{#each CATEGORIES as category (category.id)} + {@const categoryTools = TOOLS.filter((tool) => tool.category === category.id)} + {#if categoryTools.length > 0} +
+

{category.label}

+
+ {#each categoryTools as tool (tool.id)} + + {tool.title} + {tool.description} + + {/each} +
+
+ {/if} +{/each} + + diff --git a/web/src/routes/tools/[id]/+page.svelte b/web/src/routes/tools/[id]/+page.svelte new file mode 100644 index 0000000..0e98a5b --- /dev/null +++ b/web/src/routes/tools/[id]/+page.svelte @@ -0,0 +1,19 @@ + + + + {tool?.title ?? 'Инструмент'} — easy-png-tools + {#if tool} + + {/if} + + +{#if tool} + +{/if} diff --git a/web/src/routes/tools/[id]/+page.ts b/web/src/routes/tools/[id]/+page.ts new file mode 100644 index 0000000..a2a0ac9 --- /dev/null +++ b/web/src/routes/tools/[id]/+page.ts @@ -0,0 +1,13 @@ +import { error } from '@sveltejs/kit'; +import { getTool, TOOLS } from '$lib/registry'; +import type { EntryGenerator, PageLoad } from './$types'; + +export const entries: EntryGenerator = () => TOOLS.map((tool) => ({ id: tool.id })); + +export const load: PageLoad = ({ params }) => { + const tool = getTool(params.id); + if (!tool) { + error(404, 'Инструмент не найден'); + } + return { id: tool.id }; +};