友链制作记录:从页面入口到回链验证
这次把博客里的友链系统完整整理了一遍,也顺手把它从“自己手动维护”升级成了更清晰、更好扩展的结构。最开始,友链只是一个静态页面,后来慢慢加上了申请说明、数据结构、回链验证和入口样式,才变成现在这个样子。
这次友链改了什么
这次友链相关的调整,主要集中在三个方向:
- 友链数据结构更清楚了。
- 友链页的申请方式更明确了。
- 关于页里的友链入口也做了重新设计。
原来友链更偏向“先想到再补”,现在则是一个比较完整的小流程:页面上能看到本站信息、知道该怎么申请,也能更清楚地区分“我自己的友链页”和“别人来申请友链”的路径。
友链数据怎么组织
现在友链数据不再是一大块混在一起,而是改成了单独文件的方式管理。每一个友链都对应一个独立的 JSON 文件,这样后面增加、删除、修改都更直观,也不容易把别人的信息改乱。
当前使用的字段包括:
name:网站名称url:网站地址avatar:头像地址description:网站简介backlink:对方展示本站友链的页面地址
这种结构还有一个很大的好处:以后如果要继续扩展,比如增加站点状态、RSS 地址、标签、站点类型,也能很自然地加进去。
申请方式是怎么做出来的
这次还把友链页上的“申请方式”重新整理了一下。之前更偏向说明文字,现在变成了更明确的流程式写法:先加回链,再提交信息,再等待校验和确认。
页面里现在保留了本站的基础信息,别人如果想交换友链,可以直接照着填:
- 网站名称
- 网站地址
- 网站描述
- 网站头像
同时,申请说明里也补充了目标分支、JSON 文件位置和校验逻辑。这样别人不需要读很多额外文档,打开友链页就能知道大概怎么做。
关于页也一起改了
这次我还顺手把关于页里的友链入口重新做了一遍。
之前友链只是常用入口里的一枚文字按钮,现在把它移到了日历卡片下面,换成了图标卡片的形式。这样做有两个原因:
第一,关于页的入口层级会更清楚。像 B 站、GitHub、工具、留言板这些本来就偏“常用跳转”,而友链更像一个独立的小区域,用图标卡片承接会更自然。
第二,视觉上也更容易一眼认出来。访客不需要在一排按钮里再找“友链”两个字,而是能直接看到一个明确的图标入口。
如果想添加别人的友链,怎么做
如果是我自己想把别人加进友链页,流程其实已经很简单了:
- 先拿到对方网站的基本信息。
- 在友链数据目录里新建一个 JSON 文件。
- 填好名称、地址、头像、描述和回链页。
- 构建并部署博客。
通常需要准备的信息有:
- 网站名称
- 网站地址
- 头像地址
- 网站描述
- 对方的友链页面地址
只要这些信息齐全,就可以把对方正式加进友链列表里。
如果别人想把我加进他们的友链,怎么做
这次整理过程中,我也顺手把“如何申请加入别人的友链”这件事梳理明白了。
很多博客会要求双向友链,也就是:
- 你先把对方加到自己的网站里
- 再去对方仓库或页面提交申请
如果对方是 GitHub PR 流程,通常要填写这些信息:
- 网站名称:小呆呆的博客
- 网站地址:
https://xiaodaidai.site/ - 头像地址:
https://xiaodaidai.site/img/avatar.png - 网站描述:分享技术,记录生活,顺手做点小工具。
- 友链页面:
https://xiaodaidai.site/links/
这里有一个特别容易忽略的点:提交申请时,填写的一定要是自己的网站信息,不是对方的网站信息。这个地方如果填错,对方的自动校验就会把回链页和站点链接检查错对象,导致申请失败。
这次踩到的一个坑
这次实际操作里还有一个挺典型的小坑:有些友链机器人不是执行页面里的 JavaScript 再看最终内容,而是直接抓取 /links/ 页面的原始 HTML。
这意味着,如果友链只是“浏览器运行后才动态出现”,对方的校验程序未必能看到。后来我把需要展示的友链真正写进静态页面之后,回链验证才顺利通过。
这个细节也提醒我:博客里的很多功能,尤其是会被外部机器人、搜索引擎或校验程序读取的内容,还是要优先考虑静态可见性,而不是只在浏览器里“看起来正常”。
现在的友链状态
整理完成之后,友链相关的体验终于比较顺了:
- 友链页有了清楚的申请说明
- 友链数据结构更规整了
- 关于页有了更明显的友链入口
- 回链验证的逻辑也更容易理解了
它不算一个特别大的功能,但确实让整个博客更像一个愿意和别人互相连接的小站,而不是只顾自己往外发内容的地方。
后面如果继续折腾,友链页还可以再补一些东西,比如:
- 站点卡片的分组
- 友链排序规则
- 失效链接提醒
- 更完整的自动化校验流程
不过对现在来说,这一版已经够用了,也终于把“友链怎么做、怎么加、怎么申请”这件事理顺了。