友链维护指南
概述
本站使用自定义友链页面,支持以下能力:
- 分类展示
- 响应式布局
- 深色 / 浅色主题切换
- 星标推荐展示
- 置顶优先排序
- 强推卡片差异化样式
友链页面源码位于:
src/pages/friends.jssrc/pages/friends.module.css
数据结构说明
当前友链数据存储在 src/pages/friends.js 的 friendsData 中,采用“按分类分组”的结构:
const friendsData = [
{
category: '技术博客',
links: [
{
name: 'React',
url: 'https://react.dev/',
description: '用于构建用户界面的 JavaScript 库',
isPinned: false,
isStarred: true,
isFeatured: false
}
]
}
]
顶层字段
每个分类对象包含:
- category:分类名称
- links:该分类下的友链数组
单个友链字段
每个友链对象支持以下字段:
- name(必填):网站名称
- url(必填):网站链接
- description(必填):网站简短描述,建议 50 字以内
- isPinned(可选):是否置顶,
true表示优先展示 - isStarred(可选):是否星标推荐,
true时标题旁显示星标 - isFeatured(可选):是否强推卡片,
true时使用差异化高亮卡片样式
建议没有特殊需求时显式写出这 3 个布尔字段,便于后续维护。
如何添加新的友链
1. 找到对应分类
在 friendsData 中找到要添加友链的分类对象,例如:
{
category: '好友博客',
links: [
{
name: 'SysNow的博客',
url: 'https://sysnow.xyz/',
description: '理工的PWM_King的博客',
isPinned: false,
isStarred: false,
isFeatured: false
}
]
}
2. 向 links 中追加对象
示例:
{
name: '新的友链',
url: 'https://example.com/',
description: '这里填写一段简短描述',
isPinned: false,
isStarred: false,
isFeatured: false
}
如何添加新的分类
直接在 friendsData 中新增一个分类对象:
{
category: '学习资源',
links: [
{
name: '示例站点',
url: 'https://example.com/',
description: '高质量学习资源整理',
isPinned: false,
isStarred: false,
isFeatured: false
}
]
}
注意:
category名称应清晰可读- 不需要额外手动维护分类标签数组
- 页面会根据
friendsData.map(item => item.category)自动生成分类标签
推荐字段使用建议
isPinned
用于需要固定优先展示的站点。
适用场景:
- 重点合作站点
- 自己长期关注的网站
- 希望在“全部”视图中始终排在前面的链接
isStarred
用于给友链标题增加星标提示。
适用场景:
- 推荐程度较高
- 想让用户快速识别重点站点
- 不一定要整张卡片特殊高亮,但希望有明确标记
isFeatured
用于强推卡片样式高亮。
适用场景:
- 强烈推荐
- 对自己帮助很大的网站
- 希望在视觉上与普通卡片形成明显差异
排序规则
页面中的“全部”视图和分类视图都会执行统一排序,优先级如下:
isPinned: trueisStarred: trueisFeatured: true- 其余项目保持原有顺序
这意味着:
- 置顶友链会优先排到最前
- 星标友链会比普通友链更靠前
- 强推友链会进一步获得排序与样式强化
维护示例
普通友链
{
name: '普通站点',
url: 'https://normal-example.com/',
description: '一个普通展示的友链',
isPinned: false,
isStarred: false,
isFeatured: false
}
星标友链
{
name: '推荐站点',
url: 'https://star-example.com/',
description: '值得优先关注的网站',
isPinned: false,
isStarred: true,
isFeatured: false
}
置顶 + 强推友链
{
name: '强推站点',
url: 'https://featured-example.com/',
description: '重点推荐,并希望始终靠前展示',
isPinned: true,
isStarred: true,
isFeatured: true
}
页面访问
友链页面访问路径:
/friends
设计特点
- 分类筛选:点击分类标签可快速切换友链分组
- 统一排序:全部和分类视图都按优先级自动排序
- 星标展示:标题旁显示星标徽记
- 置顶高亮:置顶卡片带有“置顶”标签并优先排列
- 强推差异化:强推卡片使用独立配色
- 响应式设计:自动适配桌面、平板、手机
- 主题适配:支持深色 / 浅色主题
注意事项
- 链接有效性:定期检查友链链接是否可访问
- 分类合理:分类名称应准确反映网站性质
- 描述简洁:描述尽量简洁,避免卡片过长
- 优先级克制使用:
isPinned和isFeatured不宜滥用,否则会削弱重点信息 - HTTPS 优先:优先填写 HTTPS 链接
- 字段保持完整:新增友链时建议把 3 个布尔字段都写全,避免后续理解成本上升
常见问题
Q: 为什么我的友链没有显示?
A: 请检查:
- 是否添加在正确的
links数组中 - 对象字段名是否拼写正确
url是否以http://或https://开头- JavaScript 对象逗号和括号是否完整
Q: 为什么排序和我写入的顺序不一致?
A: 页面会先按以下优先级排序:
isPinnedisStarredisFeatured
如果这些字段不同,展示顺序会优先按优先级处理,而不是单纯按照书写顺序。
Q: 如何删除友链?
A: 直接在对应分类的 links 数组中删除对应对象即可。
Q: 如何修改友链显示重点?
A: 修改以下字段即可:
isPinnedisStarredisFeatured
更新日志
- 2025-04-26:初始版本,支持基础友链功能
- 2026-03-28:更新为按分类分组的数据结构说明
- 2026-03-28:新增星标、置顶、强推卡片维护说明
- 2026-03-28:补充统一排序规则与维护示例