我把技术博主名单做成了一个可检索网站:React 数据建模与 SEO 实践
做技术内容项目久了手里自然会积累不少博主资料。最初这些资料都放在表格里博主名称、粉丝数、CSDN 主页、知乎、掘金、公众号再加几列合作记录。表格自己看没问题一旦要给别人看事情就麻烦了。品牌方经常会问“有没有长期写 Java 的博主”“这位作者除了 CSDN还在哪些平台更新”“公众号矩阵能不能单独看”每次收到问题我都要打开文件、筛选、复制链接再重新整理一份。名单一多同一个博主可能在几个项目表里重复出现粉丝数的写法也五花八门。所以我做了一个小改造把部分公开的技术博主资料放进网站做成可以搜索、排序和直接访问主页的页面。它现在是 Dream 工作室合作博主矩阵 的一部分。这件事看着像“把 Excel 搬到网页”真正动手后却涉及数据清洗、React 交互、页面路由和 SEO。更有意思的是技术实现和内容运营在这里刚好接上了。为什么不直接发一张名单截图名单截图是最快的做法。我以前也这么发过但很快就发现几个问题。第一截图里的链接点不了。看到感兴趣的博主后品牌方还得手动搜索名字重名时不一定找得准。第二名单会变。粉丝数增加、主页地址调整、新博主加入都意味着重新截图。旧图片已经散落在聊天记录里很难统一更新。还有一个问题与搜索有关。图片里的名字和平台信息搜索引擎未必能稳定识别。即使识别到了也不知道每个名字对应哪个链接。网页中的文本、标题和超链接更容易被理解也更方便后续维护。我最后保留了表格作为内部工作文件网站只展示适合公开的部分。两者用途不一样表格负责项目执行网页负责浏览、检索和建立基本认知。先把博主资料变成结构化数据页面第一版没有接数据库而是把资料整理成 TypeScript 数据。对于更新频率不高的展示型网站这种方案够直接也减少了后台和接口的维护。每位博主的结构大致如下exporttypeCreator{name:string;followers:string;csdn?:string;juejin?:string;zhihu?:string;wechat?:string;xiaohongshu?:string;};除了名称和粉丝数其他字段都是可选的。原因很简单并不是每位作者都运营全部平台。有的人主要写 CSDN 和掘金有的人把精力放在公众号还有作者会同步知乎或小红书。数据结构必须允许这些差异存在。一条实际数据是这样的{name:一只牛博,followers:2.8W,csdn:https://blog.csdn.net/Mrxiao_bo,juejin:https://juejin.cn/user/1722263248317024,zhihu:https://www.zhihu.com/people/zhong-xian-sen-51-54/posts,wechat:https://mp.weixin.qq.com/s/ZFB23O8Bll-N60l8p87S_g}这里没有存作者的私人联系方式。网页只放公开主页或公开文章链接合作沟通仍通过工作室统一进行。这样既能让品牌方查看作者内容也不会把内部资料直接暴露在网上。粉丝数排序比想象中麻烦我希望主理人 Dream 固定显示在第一位其余博主按粉丝数从高到低排列。问题是原始数据不是统一的数字20W、2.8w、8000、5047都存在中英文大小写也不完全一致。如果直接按字符串排序8000可能会排在20W前面因为程序比较的是字符不是实际人数。于是我写了一个很小的转换函数functionfollowerValue(value:string){constnumberNumber.parseFloat(value.replace(/[^\d.]/g,))||0;return/w/i.test(value)?number*10000:number;}这段代码先去掉数字和小数点以外的字符再判断是否包含W。2.8W会转成280008000则是8000之后才能正常排序。主理人固定在首位的逻辑单独处理const[dream,...others]creators;constrankedCreators[dream,...others.sort((a,b)followerValue(b.followers)-followerValue(a.followers)),];这不是多高级的算法但它解决了真实数据里的脏格式。很多内容项目的技术工作都类似难点不在算法本身而在输入数据从来没有想象中整齐。当前转换方式也有边界。如果以后出现“1.2 万”“约 3k”或区间数据就需要继续补规则。更稳妥的长期方案是同时保存展示文本和标准数值例如{followersLabel:2.8W,followersCount:28000}页面显示followersLabel排序使用followersCount。现在的数据量还能人工检查所以暂时没有为了规范而做一次大迁移。搜索功能先做最小版本品牌方查看名单时最常见的动作不是复杂筛选而是输入一个名字确认作者是否在列表中。因此第一版搜索只支持按博主名称匹配。const [query, setQuery] useState(); const visible useMemo( () creators.filter(item item.name .toLowerCase() .includes(query.trim().toLowerCase()) ), [creators, query] );输入变化后页面在已有数组中进行过滤。trim()用来处理前后空格转成小写则方便匹配英文名称。技术博主数量在当前规模下这种前端过滤已经足够快没有必要为了一个输入框单独搭搜索服务。渲染平台链接时我没有给每位博主写一套判断而是先定义平台字段与名称的对应关系constplatforms[[csdn,CSDN],[juejin,掘金],[zhihu,知乎],[wechat,公众号],[xiaohongshu,小红书],];组件遍历这个数组字段存在就生成链接不存在就跳过。以后增加 51CTO 或华为云只要扩展数据类型和平台映射不用重写整行 UI。这里我刻意没有一开始就做十几个筛选项。方向标签、平台组合、粉丝区间都可以继续加但筛选条件越多维护数据的成本越高。先把名称搜索和公开主页做好比堆一排暂时用不到的下拉框实际。为什么公众号矩阵要单独放在前面技术社区博主和公众号作者有一部分重合但用户查看它们时关注点不同。选择 CSDN 博主时品牌方常会看技术方向、历史教程和搜索表现。选择公众号时更关心账号定位、订阅读者以及是否长期写 AI 或 IT 技术。两类数据混在一个超长列表里公众号很容易被埋在后面。所以我把公众号矩阵拆成独立区域放在技术博主名单之前。公众号数据也使用单独的类型exporttypeWechatCreator{name:string;followers:string;wechat:string;category:AI/人工智能|IT技术;};目前页面精选展示部分公众号作者整个合作矩阵是 100。技术内容平台的合作博主矩阵是 500网页同样只展示其中一部分。这个说明必须写清楚否则访问者容易把“当前展示数量”和“全部资源数量”混为一谈。粉丝数据也不是永久不变的。我在页面底部加了提示说明数据来自整理时的公开信息后续可能随平台变化。这句话不够漂亮但比把历史数字当成实时数据更诚实。案例不能只剩一句“我们做过”博主名单解决的是“可以找谁”案例页面要回答“具体做过什么”。早期的网站文案只有项目名称和一两行结果用户看完仍然无法判断内容质量。后来我把重点项目做成独立路由例如飞算 JavaAI、华为昇腾及鲲鹏、ToDesk 长期内容项目并补上公开文章链接。案例数据同样结构化保存{slug:huawei-kunpeng-ascend,client:华为昇腾及鲲鹏,tag:国产算力生态,result:150 位,resultLabel:万粉博主参与,metrics:[150 位万粉博主统一组织,300 篇技术文章规模化交付,覆盖 16 个核心技术专题]}slug用来生成固定网址项目结果与公开内容在详情页呈现。这样做有两个好处品牌方可以直接把某个案例链接发给同事搜索引擎也能把每个项目当成独立页面理解而不是只看到首页上一张信息卡片。我越来越不喜欢“服务过众多知名品牌”这种写法。它听起来很满信息却很少。把参与规模、文章数量和公开链接放出来读者能自己判断这比再加几个形容词有用。SEO 没有神秘开关先把页面关系讲清楚网站上线后我补了 Metadata、站点地图、robots.txt和 JSON-LD。它们都不复杂作用也各不相同。Metadata 告诉搜索结果页面该显示什么标题和描述。例如博主名单页的配置是export const metadata { title: 合作博主名单, description: Dream内容推广工作室合作技术博主名单覆盖 CSDN、掘金、知乎、微信公众号等平台。, alternates: { canonical: /creators }, };站点地图负责列出首页、服务页和案例页robots.txt再把站点地图地址告诉搜索引擎。JSON-LD 则用结构化方式说明网站名称、业务类型和服务范围。这些配置只能帮助搜索引擎理解页面不能替代内容。真正决定页面有没有价值的还是里面是否提供了明确的信息。博主名单有公开主页案例页有项目结果和文章链接服务页说明具体执行方式。关键词自然出现在这些内容中不需要把“CSDN KOL 投放”机械地重复十几遍。内链也很重要。首页可以进入服务、案例和博主矩阵案例页能返回其他项目名单页则连接到各平台公开主页。页面不再是一座孤岛访问者和搜索引擎都能顺着链接继续浏览。为什么我暂时没有接数据库和后台从开发角度看给博主资料做一个后台很自然登录、增删改查、批量导入再配一套数据库。问题是系统复杂度会立刻上升。现在网站展示的是精选公开资料更新由我统一整理。使用 TypeScript 文件的优点是改动可审查、可以跟随 Git 版本记录部署后也没有数据库连接和后台安全问题。缺点同样明显批量更新不如表格方便非开发人员也不适合直接修改代码。什么时候值得接数据库我给自己定了几个判断条件需要多人维护、更新频率明显增加、网页要展示全部 500 博主或者需要按技术方向和合作状态做组合检索。到了那一步表格可以作为导入源网站通过后台管理标准化数据。目前还没到那个阶段。过早做后台最后可能花很多时间维护一套没人使用的系统。技术页面本身也是内容做完这个页面后我对“内容”有了一个更具体的理解。内容不一定都是长文章。一份能搜索的博主目录、一页带公开链接的项目案例、一个解释服务流程的页面本身也是内容而且比泛泛的品牌介绍更耐看。这与技术产品推广的逻辑很接近。开发者搜索问题时希望尽快看到可验证的信息代码、过程、数据或真实链接。品牌网站也一样。把资料组织清楚比首页堆满口号更容易建立信任。Dream 内容推广工作室 现在主要提供技术内容策划、CSDN KOL 投放、公众号博主推广和多平台内容分发。网站没有把所有内容压在首页而是把服务、创作者和案例拆开。对访客来说更好找对搜索收录也更友好。这次改造留下的几个实际结论第一先定义数据再设计页面。原始名单没有统一字段时界面画得再漂亮也会被各种缺失值拖住。第二展示文本和计算数据最好分开保存。2.8W适合人看28000适合排序。项目早期可以做转换数据继续增长后应当从源头标准化。第三公开页面只放公开资料。主页和文章链接足够用于初步筛选私人联系方式没有必要进入前端数据。最后是一个偏内容的判断少写无法验证的形容词多放能点开的链接。一个网站是否可信往往不取决于它说自己有多专业而在于用户能不能顺着页面找到真实的人和真实的内容。这套页面还会继续更新。下一步可能加入技术方向标签和更细的平台筛选但我不会急着把它做成一个庞大的系统。先让现有资料更容易查、更容易读已经解决了最常见的问题。

相关新闻

基于Open5GS的实验室方案及技术实现

基于Open5GS的实验室方案及技术实现

根据中国知网平台显示,武汉旭达安科技有限公司和武汉理工大学在国家级期刊《广播电视网络》联合发表了论文《基于Open5GS的实验室方案及技术实现》。论文刊号为2025, 32(12): 48-51,知网平台在线公开时间为2026-01-04 13:46。论文摘要:随着5G…

2026/10/16 17:09:25 阅读更多 →
极简产品实验失败后:怎样判断该删功能还是改假设

极简产品实验失败后:怎样判断该删功能还是改假设

极简产品实验失败后:怎样判断该删功能还是改假设 一次实验失败,不等于整个产品方向失败。先检查假设、样本和验收标准,再判断删功能、改交互还是换目标用户。记录“为何停止”比补一段励志总结更有用。 1. 为什么高 Recall 换不来用户留存 RA…

2026/10/19 1:30:10 阅读更多 →
DeepSeek V4 Pro/Flash 才能发挥出真正的水平

DeepSeek V4 Pro/Flash 才能发挥出真正的水平

一边,是不少人狂夸 DeepSeek 的新模型 V4 Pro 正式版真牛,是 Fable 5 级别的发布、核弹被吓得瘫坐在了奥特曼身上。另一边是网友们吐槽涨价、模型能力似乎不及预期、甚至被怀疑部署错了模型。。。DeepSeek V4 Pro 正式版的这一次更新,虽然不是…

2026/10/17 8:34:16 阅读更多 →

最新新闻

逆滤波越除越崩?维纳滤波如何在频域稳住图像复原的PSNR

逆滤波越除越崩?维纳滤波如何在频域稳住图像复原的PSNR

简介:面向图像处理课程作业与实验场景,这份资源提供了一套完整的大气湍流退化图像复原方案。主要内容是使用大气湍流模型对原始图像进行退化,并叠加高斯噪声,随后分别通过维纳滤波和逆滤波实现复原对比,最终以PSNR和MS…

2026/10/19 17:43:52 阅读更多 →
Linux上用MinGW-w64交叉编译VLC插件DLL实战指南

Linux上用MinGW-w64交叉编译VLC插件DLL实战指南

1. 这不是“换个编译器跑通就行”的事:VLC DLL 在 MinGWLinux 环境下的真实定位很多人看到“vlc dll 编译 MinGW on Linux”这个标题,第一反应是:“哦,就是用 Linux 上的 MinGW 工具链把 VLC 的某个动态库编译出来”。但实际动手前…

2026/10/19 17:43:52 阅读更多 →
STM32CubeMX配置HAL库串口通信:从基础到DMA空闲中断

STM32CubeMX配置HAL库串口通信:从基础到DMA空闲中断

简介:基于STM32F103C8T6与HAL库、STM32CubeMX的UART串口通信完整例程包,主要面向嵌入式初学者、单片机爱好者以及需要快速搭建串口收发功能的开发者。压缩包共146个文件,大小4.31MB,源码以c/h文件为主,同时包含ioc工程…

2026/10/19 17:43:52 阅读更多 →
Java+YOLOv5食品包装缺陷检测实战:从模型导出到Spring Boot API对接

Java+YOLOv5食品包装缺陷检测实战:从模型导出到Spring Boot API对接

JavaYOLOv5食品包装缺陷检测实战:从模型导出到Spring Boot API对接前几个月在做一个食品产线的质检项目,需求很朴素:检测包装袋的封口是否平整、有无漏气皱褶、印刷字符是否错位、包装表面有没有污渍。算法那边用YOLOv5训练了一版模型&#x…

2026/10/19 17:43:52 阅读更多 →
COMSOL两相流THM热流固耦合模型:从物理原理到收敛性优化

COMSOL两相流THM热流固耦合模型:从物理原理到收敛性优化

简介:面向COMSOL仿真用户的THM热流固耦合两相流模型资源,适用于石油工程、地热开发等领域中饱和水与油流动的数值模拟,也可扩展至水与超临界二氧化碳两相流场景。模型完整涵盖热-流-固三场耦合,用户可根据实际需求自由修改几何、材…

2026/10/19 17:42:49 阅读更多 →
手写识别数据集.pot文件解析:从笔迹坐标到深度学习训练样本

手写识别数据集.pot文件解析:从笔迹坐标到深度学习训练样本

做中文手写识别,不管你是研究路线,还是已经被业务需求按着头写代码,大概率都会碰到 CASIA OLHWDB 这个名字。数据集虽好,.pot 这套文件格式对新人极其不友好——它不是图片,不是 JSON,不是官方给好读接口的…

2026/10/19 17:42:49 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →