友情链接
友情链接的配置
移除链接页面#
链接页面是用于展示你的友链的页面,默认是启用的。
如果你想出于任何原因移除链接页面,请按照本部分的步骤操作。否则,你可以跳到下一章。
在 src/site.config.ts 中将 links.enable 设置为 false:
src/site.config.ts
export const integ: IntegrationUserConfig = {
// ...
links: {
enable: false
}
}ts同时,记得删除以下文件夹和文件:
src/components/links/src/pages/links/public/links.json
基本配置#
友情链接的基本配置在 src/site.config.ts 中。你可以添加朋友的日志或你自己的链接信息。
src/site.config.ts
export const integ: IntegrationUserConfig = {
links: {
// 朋友日志
logbook: [
{ date: '2025-03-16', content: '是不是漏水了?' },
{ date: '2025-03-16', content: '漏什么水?' },
{ date: '2025-03-16', content: '我坐了一屁股水,全是水!' },
{ date: '2025-03-16', content: '那一定是水。' },
{ date: '2025-03-16', content: '把这个加到名言录里吧。' },
],
// 你自己的链接信息
applyTip: {
name: theme.title,
desc: theme.description || '无',
url: 'https://astro-pure.js.org/',
avatar: 'https://astro-pure.js.org/favicon/favicon.ico'
}
},
}ts友情链接#
友情链接的配置位于 public/links.json。
public/links.json
{
"friends": [
{
"id_name": "cf-links",
"desc": "圈内朋友包含的常用链接",
"link_list": [
{
"name": "Elysia",
"intro": "嗨,想我了吗?无论何时何地,爱莉希雅都会回应你所有的期待。",
"link": "https://honkaiimpact3.fandom.com/wiki/Elysia",
"avatar": "https://0.gravatar.com/avatar/"
// 这里你也可以留下其他字段作为备注
}
]
},
{
"id_name": "inactive-links",
"desc": "不活跃或违反规则的朋友",
"link_list": []
},
{
"id_name": "special-links",
"desc": "其他特殊链接",
"link_list": []
}
]
}json与 Friend-Circle-Lite 集成#
Friend-Circle-Lite ↗ 是一个精简版的友链朋友圈,无后端,仅使用 github action 运行。
它需要:
- 一个启用了 github actions(通过 cron)的 github 仓库。
- 一个静态站点服务器,如 Vercel、Netlify、GitHub Pages 等。
本主题未集成它,将来也不会提供支持。但别担心,本文档将指导你进行集成。
-
Fork Friend-Circle-Lite ↗ 仓库。
-
在你 fork 的仓库中修改
config.yaml:config.yaml
yamlspider_settings: enable: true json_url: "<你的站点>/links.json" article_count: 4 -
进入 “Actions” 页面,手动运行工作流 “Friend Circle Lite” 以检查是否正常工作。这也会在 “page” 分支生成服务器文件。
-
查看 文档 ↗ 将服务器文件部署到你的静态站点服务器。
-
将 获取脚本文件
friendCircle.ts↗ 添加到你的项目路径src/plugins。 -
将 样式文件
fc.css↗ 添加到你的项目路径src/assets/styles。 -
在
src/components/pages/links/index.astro中添加初始化代码:src/components/pages/links/index.astro
astro--- const headings = [ // ... { depth: 2, slug: 'small-circle', text: '小圈子' }, ] --- <PageLayout> {/* ... */} <h2 id='small-circle'>小圈子</h2> <div id='friend-circle-lite-root' class='not-prose'>加载中...</div> <script> import { FriendCircle } from '@/plugins/friendCircle' const fc = new FriendCircle() fc.init({ private_api_url: '<your-fc-lite>', page_turning_number: 10, error_img: 'https://gravatar.loli.net/avatar/57d8260dfb55501c37dde588e7c3852c' }) fc.load() </script> </PageLayout>