news 2026/9/16 16:39:04

如何在 FckSignups 中新增一个工具分类:完整开发流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何在 FckSignups 中新增一个工具分类:完整开发流程

如何在 FckSignups 中新增一个工具分类:完整开发流程

【免费下载链接】FckSignupsA list of tools that are open-source, in-browser, and require no-signups!项目地址: https://gitcode.com/GitHub_Trending/fc/FckSignups

FckSignups(现名 NoSignups)是一个精选开源在线工具的导航站,收录了 200+ 款无需注册、即开即用的浏览器工具。本文带你完整走一遍FckSignups 新增工具分类的开发流程:从克隆仓库、在tools.json中定义新分类,到前端筛选栏自动生效,每一步都附对应文件路径,新手也能照做完成。

一、先了解项目:工具与分类的数据驱动设计 🧭

FckSignups 是一个 React + TypeScript 项目,它最大的特点是数据与代码分离

  • 所有工具与分类都存放在根目录的 tools.json 中;
  • 前端组件不"写死"任何分类,而是读取 JSON 动态渲染。

这意味着:新增一个分类,本质上就是往tools.jsoncategories数组里加一个对象,前端筛选栏会自动出现新按钮。

分类对象的类型定义在 src/types/index.ts:

export interface Category { id: string; // 唯一标识,工具通过它关联分类 name: string; // 按钮上显示的名称 icon: string; // 图标(emoji 或符号) description: string; // 悬停提示文案 }

二、准备工作:克隆仓库并启动项目 ⚡

在终端执行以下命令,克隆仓库并启动开发服务器:

git clone https://gitcode.com/GitHub_Trending/fc/FckSignups cd FckSignups npm install npm run dev

启动后浏览器访问本地开发地址,即可看到顶部的分类筛选栏(All、Productivity、Design 等按钮)。

三、核心步骤:在 tools.json 中定义新分类 ✏️

打开 tools.json,文件开头就是categories数组。在数组中新增一个对象即可,例如添加一个"视频剪辑"分类:

{ "id": "video", "name": "Video Editing", "icon": "🎞️", "description": "Cut and edit video clips right in the browser" }

4 个字段说明:

字段作用建议
id分类唯一标识,工具靠它关联分类用简短小写英文,如video
name筛选按钮上显示的名称简洁直观
icon按钮图标选一个贴切的 emoji
description鼠标悬停时的提示一句话说明分类范围

💡注意id是整个关联体系的"钥匙"。每个工具的category字段必须与某个分类的id完全一致,否则该工具不会出现在筛选结果中(参考 src/data/schema.js 了解数据结构的 SEO 约定,字段规范见 README.md 中的 Tool schema 表格)。

四、数据流解析:新分类如何出现在页面上 🔍

保存tools.json后刷新页面,新按钮就会出现在筛选栏。背后的数据流如下:

  1. 加载数据:src/hooks/useTools.ts 中的load()会优先读取开发环境的本地 tools.json(DEV_JSON_URL),生产环境则读取远端 JSON;
  2. 兜底注入allhydrate()函数(useTools.ts)会自动检查是否存在idall的分类,没有就补一个,保证"全部"筛选永远可用;
  3. 自动渲染:src/components/Home/ToolFilters/ToolFilters.tsx 对categories数组做map渲染,同时为每个分类自动统计工具数量并显示在按钮角标上——你不需要写任何组件代码。
tools.json ──fetch──▶ useTools() ──categories──▶ ToolFilters.tsx │ (按钮 + 数量角标) └──tools──▶ 分类筛选 + 搜索排序

五、可选增强:同步兜底数据 🛟

当远端 JSON 加载失败时,站点会使用内置的兜底数据 src/constants/fallbackData.ts 渲染页面。如果你的新分类很重要,可以同步在该文件的categories数组里添加一条相同结构的记录,保证断网或拉取失败时筛选栏依然完整。

六、为新分类添加工具:使用 addTool.py 📝

分类建好后,把工具归入其中。项目提供了管理脚本 management_tools/addTool.py:

cd management_tools python addTool.py

脚本会交互式询问 name、url、category、tags 等字段,并自动完成两件事:

  • slugify()把工具名转成 URL 友好的id
  • 把新工具追加到 tools.json 的tools数组。

运行时脚本会先打印所有分类id供你选择,填入上一步定义的id(如video)即可。每个工具建议配 3~5 个 tags、描述控制在 140 字符以内(贡献规范见 README.md)。

七、验证清单 ✅

提交前逐项确认:

  • tools.json中新分类的id唯一且无拼写错误
  • 归入该分类的工具category字段与id完全一致
  • 本地npm run dev下新按钮显示正常、角标数量正确
  • 搜索关键词时新分类的工具能被命中(匹配逻辑在 useTools.ts 的matchScore

小结

FckSignups 的分类系统完全由 tools.json 驱动:改一份 JSON,前端自动更新。核心链路只有三个文件——tools.json(数据源)、src/hooks/useTools.ts(加载与筛选)、src/components/Home/ToolFilters/ToolFilters.tsx(按钮渲染)。掌握了这条链路,无论是新增分类还是维护工具列表,都能事半功倍。

【免费下载链接】FckSignupsA list of tools that are open-source, in-browser, and require no-signups!项目地址: https://gitcode.com/GitHub_Trending/fc/FckSignups

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 16:37:56

用Hermes框架打造自然语言驱动的多智能体实验室调度系统

1. 起点:一个偶然,改变了实验室的运转方式1.1 先说下“剑的AI实验室”原本是怎么跑的熟悉我的朋友知道,我有个个人项目叫“剑的AI实验室”。名字听着挺唬人,实际上就是在自己家里一台小服务器上,把各种大模型API、自动…

作者头像 李华
网站建设 2026/9/16 16:36:36

ThinkPHP6微信第三方平台验证票据全链路实现

简介:本资源是一套基于ThinkPHP6框架开发的微信第三方平台验证票据(ComponentVerifyTicket)获取解决方案,面向PHP中高级开发者及微信开放平台接入实践者,解决在构建第三方平台时如何安全、规范地接收并解析微信服务器推…

作者头像 李华
网站建设 2026/9/16 16:36:34

Spring Boot端口管理与终端操作实战指南

1. Spring Boot 终端操作全指南作为Java开发者,我们每天都要和Spring Boot应用打交道。但你是否遇到过这些问题:启动应用时端口被占用导致报错?想快速检查某个端口是否被占用?或者需要强制释放被占用的端口?今天我就结…

作者头像 李华
网站建设 2026/9/16 16:33:03

FiftyOne 插件生态系统完全指南:从发现、安装到开发与共享

FiftyOne 插件生态系统完全指南:从发现、安装到开发与共享 【免费下载链接】fiftyone Refine high-quality datasets and visual AI models 项目地址: https://gitcode.com/GitHub_Trending/fi/fiftyone FiftyOne 插件(Plugins)是扩展…

作者头像 李华
网站建设 2026/9/16 16:32:34

WPF DataGrid仿Excel筛选:ICollectionView.Filter实战指南

简介:本资源是一个基于WPF与.NET 6.0实现DataGrid仿Excel筛选功能的完整可运行实例,面向WPF桌面应用开发者及中高级C#学习者,解决数据表格交互中缺乏原生多条件筛选能力的痛点,适用于需高效处理结构化数据的管理类、报表类桌面软件…

作者头像 李华