mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
refactor: better typing for tool icons
This commit is contained in:
+12
-12
@@ -222,18 +222,18 @@ i18n-подписи → тест в `registry-schema.test.ts`.
|
||||
|
||||
## 7. Точки расширения
|
||||
|
||||
| Задача | Где править |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Новый инструмент | `registry/tools/<group>.ts` + страница в `registry/pages/<group>.ts` + i18n + тесты (рецепт ниже) |
|
||||
| Новая страница на готовом инструменте | запись `Page` со своим `slug` и текстами; новый код не нужен |
|
||||
| Смена `id` | `registry/tools/*` + ключи `tools.*` в словарях + хардкод id в тестах; адреса, имена файлов, иконки и карта не меняются |
|
||||
| Смена `slug` | `registry/pages/*` + `pages.*` в словарях + `tool-icons.ts` + `docs/tools-map.md` + хардкод slug в тестах и e2e; меняется адрес страницы — операция с SEO-последствиями, не часть обычной задачи |
|
||||
| Новый вид поля | `registry-schema.ts` + контрол + `FIELDS` (раздел 4) |
|
||||
| Новый маршрут/страница | `web/src/routes/**` + ссылка в каталоге |
|
||||
| Новый визуальный элемент | компонент в `components/**` по образцу `ui/` или `layout/` |
|
||||
| Новый дизайн-токен | `web/src/app.css` (только там) + потребитель сразу |
|
||||
| Тяжёлая операция → worker/wasm | `executor/**`, без правок компонентов |
|
||||
| Мультифайловый результат | `result: "files"` + `zip.ts` |
|
||||
| Задача | Где править |
|
||||
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Новый инструмент | `registry/tools/<group>.ts` + страница в `registry/pages/<group>.ts` + i18n + тесты (рецепт ниже) |
|
||||
| Новая страница на готовом инструменте | запись `Page` со своим `slug` и текстами; новый код не нужен |
|
||||
| Смена `id` | `registry/tools/*` + ключи `tools.*` в словарях + хардкод id в тестах; адреса, имена файлов, иконки и карта не меняются |
|
||||
| Смена `slug` | `registry/pages/*` + `pages.*` в словарях + `docs/tools-map.md` + хардкод slug в тестах и e2e; иконки править не нужно — `TOOL_ICONS` типизирован `Record<PageSlug, _>` и ломает компиляцию; меняется адрес страницы — операция с SEO-последствиями, не часть обычной задачи |
|
||||
| Новый вид поля | `registry-schema.ts` + контрол + `FIELDS` (раздел 4) |
|
||||
| Новый маршрут/страница | `web/src/routes/**` + ссылка в каталоге |
|
||||
| Новый визуальный элемент | компонент в `components/**` по образцу `ui/` или `layout/` |
|
||||
| Новый дизайн-токен | `web/src/app.css` (только там) + потребитель сразу |
|
||||
| Тяжёлая операция → worker/wasm | `executor/**`, без правок компонентов |
|
||||
| Мультифайловый результат | `result: "files"` + `zip.ts` |
|
||||
|
||||
## 8. Рецепт: добавить инструмент
|
||||
|
||||
|
||||
Reference in New Issue
Block a user