mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
docs: update to slug - id changes
This commit is contained in:
+18
-29
@@ -72,28 +72,17 @@
|
||||
- [ ] для keep Aspect field - пересчитывать второе поле, учитывать какое было
|
||||
изменено
|
||||
- [ ] обновить страницу kit или сделать storybook
|
||||
- [ ] Слаги инструментов (`*-png`) — **развести `id` и адрес страницы.**
|
||||
Инструменты работают с любым форматом, но называются `crop-png`,
|
||||
`resize-png`; имя в коде, пайплайнах и i18n должно быть `crop`, `resize`,
|
||||
а адрес и имя скачиваемого файла — прежними (`/tools/crop-png` →
|
||||
`crop-png.png`). Решение и его SEO-последствия: `docs/plan-seo.md` §0;
|
||||
текущее состояние (поля `slug` нет, роут — `tools/[id]`) —
|
||||
`docs/architecture.md`, раздел 3. Порядок работ: 1. добавить `slug` в
|
||||
`ToolEntry` + `toolSlug()` / `getToolBySlug()` в `registry/index.ts`,
|
||||
проверку уникальности `slug` в `registry.test.ts`; 2. перевести
|
||||
`routes/tools/[id]` → `[slug]` (`entries()`, `load()`, `+page.svelte`),
|
||||
`ToolCard`, крошку в `+layout.svelte` и имя файла download в
|
||||
`SchemaToolView` на `toolSlug(tool)`; старые адреса продолжают работать,
|
||||
редиректы не нужны; 3. переименовать `id` волнами по группам реестра
|
||||
(`convert`, `alpha`, `color`, `geometry`, `filters`, `analyze`,
|
||||
`generate`, `text`); в каждой волне — `registry/<group>.ts`, ключи
|
||||
`tools.*` в `en.ts`/`ru.ts`, `tool-icons.ts`, захардкоженные id в тестах и
|
||||
e2e (`smoke-i18n.test.ts`, `kit/+page.svelte`); 4. `docs/tools-map.md` при
|
||||
этом **не меняется**: карта перечисляет id, а они остаются прежними как
|
||||
адреса. Обратной совместимости не делаем: формат пайплайна ещё не
|
||||
устоялся, старые экспорты и записи в localStorage после переименования
|
||||
просто перестают открываться — это осознанно, миграция усложнила бы код
|
||||
ради пары пользователей.
|
||||
- [ ] Свести convert-страницы на один инструмент `convert` — реализация уже
|
||||
умеет «скопировать пиксели, декодировать вход, отдать в заданном формате»,
|
||||
а страницы различаются только форматом вывода. **Зависит от S1f**
|
||||
(`docs/plan-seo.md` §1): пока `quality` живёт в схеме страницы, у
|
||||
`convert-png-to-bmp` и `convert-png-to-jpg` разные наборы полей, и один
|
||||
инструмент на них не сойдётся. Качество — настройка кнопки Download
|
||||
(«Download as JPEG»), а не поле страницы; после его переезда пресеты схемы
|
||||
не нужны, страницы различаются только `output` и `params` шага. Модель
|
||||
страницы к этому готова: `Page.steps` — список инструментов, один
|
||||
инструмент может обслуживать много страниц (`docs/architecture.md`, раздел
|
||||
3).
|
||||
- [ ] придумать процесс редактирования и настройки pipeline - drag-n-drop,
|
||||
удаление, добавление инструментов. переход один инструмент - pipeline без
|
||||
перезагрузки
|
||||
@@ -193,21 +182,21 @@ UI. Оценки (S/M/L) — оценка труда, не приоритет.
|
||||
|
||||
5. **Избранные инструменты (fav tools)** — оценка S/M. Тоггл-звёздочка на
|
||||
карточках каталога, результатах поиска и в шапке страницы инструмента; список
|
||||
id в localStorage. Избранное показывается отдельной секцией сверху каталога и
|
||||
поднимается в выдаче поиска (бонус к popularity при скоринге).
|
||||
slug в localStorage. Избранное показывается отдельной секцией сверху каталога
|
||||
и поднимается в выдаче поиска (бонус к popularity при скоринге).
|
||||
|
||||
6. **Конвертация формата — НЕ отдельный инструмент, а выбор в кнопке Download**
|
||||
— оценка M/L. Решение и продуктовое обоснование: `docs/plan-seo.md` §0 и
|
||||
задача **S1f**; почему селектор не заменяет существующие convert-страницы —
|
||||
`docs/plan-seo.md` §5. Механическая часть уже есть: `ToolEntry.output`
|
||||
`docs/plan-seo.md` §5. Механическая часть уже есть: `Tool.output`
|
||||
(`OutputFormat`: mime/ext/qualityParamId) и кодирование по нему в
|
||||
`SchemaToolView.download()` — `docs/architecture.md`, раздел 3. Что осталось
|
||||
сверх S1f:
|
||||
- экспорт с лимитом размера → закрывает отложенный `reduce-to-size-png`
|
||||
(целевой KB, бинарный поиск по k из квантования). Проработать вместе с
|
||||
достройкой download-флоу.
|
||||
- экспорт с лимитом размера → закрывает отложенную страницу
|
||||
`reduce-to-size-png` (целевой KB, бинарный поиск по k из квантования).
|
||||
Проработать вместе с достройкой download-флоу.
|
||||
|
||||
7. **`watermark-image-png` (водяной знак картинкой)** — оценка M. Нужна
|
||||
7. **Страница `watermark-image-png` (водяной знак картинкой)** — оценка M. Нужна
|
||||
overlay-механика: второй источник изображения (getOverlay/store), параметры
|
||||
scale/opacity/position/margin/aspect. Решается вместе с вопросом, как второй
|
||||
источник картинки вписывается в schema-driven preview (`SchemaToolView`).
|
||||
|
||||
Reference in New Issue
Block a user