Friend Links
Configurations for friend links
Remove Links Page#
Links page is a page for showing your friend blog links, which is enabled by default.
If you want to remove the links page for any reason, follow the steps in this section. Otherwise, you can skip ahead to the next chapter.
Set links.enable to false in src/site.config.ts:
export const integ: IntegrationUserConfig = {
// ...
links: {
enable: false
}
}tsAnd also, remember to delete the following folders & files:
src/components/links/src/pages/links/public/links.json
Basic Configurations#
A basic configuration for friend links is in src/site.config.ts. You can add your friend’s logbook or your own link info.
export const integ: IntegrationUserConfig = {
links: {
// Friend logbook
logbook: [
{ date: '2025-03-16', content: 'Is there a leakage?' },
{ date: '2025-03-16', content: 'A leakage of what?' },
{ date: '2025-03-16', content: 'I have a full seat of water, like, full of water!' },
{ date: '2025-03-16', content: 'Must be the water.' },
{ date: '2025-03-16', content: 'Let\'s add that to the words of wisdom.' },
],
// Yourself link info
applyTip: {
name: theme.title,
desc: theme.description || 'Null',
url: 'https://astro-pure.js.org/',
avatar: 'https://astro-pure.js.org/favicon/favicon.ico'
}
},
}tsFriend Links#
The friend links configurations are at public/links.json.
{
"friends": [
{
"id_name": "cf-links",
"desc": "Common links included in circle friends",
"link_list": [
{
"name": "Elysia",
"intro": "Hi, did you miss me? Anywhere and anytime, Elysia will return all your expectations.",
"link": "https://honkaiimpact3.fandom.com/wiki/Elysia",
"avatar": "https://0.gravatar.com/avatar/"
// Here you can also leave some other fields as notes
},
]
},
{
"id_name": "inactive-links",
"desc": "Inactive or rule-breaking friends",
"link_list": [] // you can temporarily leave some bad links here
},
{
"id_name": "special-links",
"desc": "Other special links",
"link_list": [] // special links which are note your friends
}
]
}jsonAutomatic Friend Link Applications#
Iris includes an optional GitHub Issue workflow that validates backlinks and writes approved
sites to public/links.json.
The automation uses these files:
.github/ISSUE_TEMPLATE/friend-link.ymlcollects the application..github/friend-link.config.jsondefines your site information and target friend group..github/workflows/friend-link-checker.ymllistens for new issues and author comments.- After approval, the checker commits the friend link and explicitly dispatches the configured Pages
workflow. GitHub does not trigger another workflow from a push made with the default
GITHUB_TOKEN. .github/scripts/process-friend-request.cjsvalidates the site with Playwright and updates the JSON file.
Before enabling it:
- Edit
.github/friend-link.config.json, replace the example site information and setsite.friendPageto your own friend-links page. - Change the automatic application URL in
src/pages/links/index.astroto your repository. - In GitHub, open Settings > Actions > General > Workflow permissions and enable Read and write permissions.
- Ensure direct pushes from GitHub Actions are allowed on the default branch.
Applicants must add your site first. If validation fails, the Issue receives a
friend-link: needs-update label. The Issue author can comment after fixing the page to trigger
validation again. A successful technical validation does not add the link immediately: it receives
the friend-link: awaiting-review label and waits for a maintainer with repository write access.
Maintainers can comment /approve to revalidate and add the link, or /reject reason to reject
and close it.
Integrated with Friend-Circle-Lite#
Friend-Circle-Lite ↗ is a stripped-down friend-link app with no backend and running only using github action.
It requires:
- A github repository with github actions enabled by cron.
- A static site server like Vercel, Netlify, GitHub Pages, etc.
This theme has not integrated it and will not provide support for it in the future. But don’t worry, this doc will guide you to integrate it.
-
Fork the Friend-Circle-Lite ↗.
-
Modify the
config.yamlin your forked repository:config.yaml
yamlspider_settings: enable: true json_url: "<your-site>/links.json" article_count: 4 -
Go to “Actions” page and run workflow “Friend Circle Lite” manually to check if it works. This will also generate server files in “page” branch.
-
Checkout docs ↗ to deploy the server files to your static site server.
-
Add fetching script file
friendCircle.ts↗ to your project at pathsrc/plugins. -
Add style file
fc.css↗ to your project at pathsrc/assets/styles. -
Add initialize code in
src/components/pages/links/index.astro:src/components/pages/links/index.astro
astro--- const headings = [ // ... { depth: 2, slug: 'small-circle', text: 'Small Circle' }, ] --- <PageLayout> {/* ... */} <h2 id='small-circle'>Small Circle</h2> <div id='friend-circle-lite-root' class='not-prose'>Loading...</div> <script> import '@/assets/styles/fc.css' import { FriendCircle } from '@/plugins/friendCircle' const fc = new FriendCircle() fc.init({ private_api_url: '<your-fc-lite-server>', page_turning_number: 10, error_img: 'https://gravatar.loli.net/avatar/57d8260dfb55501c37dde588e7c3852c' }) fc.load() </script> </PageLayout>
引用此文档
(2)知识图谱
当前文档、同目录指南与引用关系。
正在构建知识图谱...