From 0ed005779c4326fb0f58c724904795fe05ea1d8d Mon Sep 17 00:00:00 2001 From: rand777 Date: Mon, 10 Mar 2025 00:08:44 +0800 Subject: [PATCH 1/2] docs: contribute.md --- docs/notes/contribute.md | 126 ++++++++++++++++----------------------- 1 file changed, 53 insertions(+), 73 deletions(-) diff --git a/docs/notes/contribute.md b/docs/notes/contribute.md index 16b532a..a8e235f 100644 --- a/docs/notes/contribute.md +++ b/docs/notes/contribute.md @@ -5,34 +5,34 @@ permalink: /contribute/ --- 首先感谢您的无私奉献,项导文档基于Vuepress的[plume主题构建](https://theme-plume.vuejs.press/) -,由多名成员共同维护,内容完全开源免费,并且承诺保障时效性和准确性。 +,由多名成员共同维护,内容完全开源。 -在参与合作开发之前,需要您学习一些基础知识: - ## 我是文档的编写者 -- [markdown基础语法](/csdiy/tools-must/markdown/) +项导文档使用markdown语法进行编写,首先得大概掌握下[markdown基础语法](/csdiy/tools-must/markdown/) 在您完成markdown类型文档编写后可以 - 通过github创建合并请求 -- 直接发送到[我们的邮箱](mailto:losmosga@foxmail.com) +- email到[我们的邮箱](mailto:losmosga@foxmail.com) +- QQ发送给 [rand777](https://qm.qq.com/cgi-bin/qm/qr?k=9s5V15fEzwzHuawmc-QQZ615NPTp9oEZ) ### 我想直接写一篇文档 -不想这样麻烦也可以的,联系[rand777](https://qm.qq.com/q/2iLBaNcsnO)并获取语雀编辑权限,或将word文档发送给[rand777](https://qm.qq.com/q/2iLBaNcsnO)。 +不想这样麻烦也可以的,联系[rand777](https://qm.qq.com/q/2iLBaNcsnO)并获取语雀编辑权限,或将word文档/PDF文档/PPT发送给[rand777](https://qm.qq.com/q/2iLBaNcsnO) ### 其他注意事项 请参考`文档编写规范` ## 我是文档站的开发者 +在参与合作开发之前,需要您学习一些基础知识: -- [git的使用](/csdiy/tools-must/git/) -- [VuePress Plume主题](https://theme-plume.vuejs.press/guide/intro/) -- [Typescript基础语法](https://www.runoob.com/typescript/ts-basic-syntax.html) -- [markdown基础语法](/csdiy/tools-must/markdown/) +- [:[material-icon-theme:git]:git的使用](/csdiy/tools-must/git/) +- [:[https://theme-plume.vuejs.press/plume.png]:VuePress Plume主题](https://theme-plume.vuejs.press/guide/intro/) +- [:[devicon:typescript]:Typescript基础语法](https://www.runoob.com/typescript/ts-basic-syntax.html) +- [:[octicon:markdown-16]:markdown基础语法](/csdiy/tools-must/markdown/) 随后,联系 [rand777](mailto:losmosga@foxmail.com) 加入项导文档加入github开发组。 @@ -78,7 +78,7 @@ NVM(全名:Node.js Version Manager)可以帮助我们更高效地管理不 ```shell git clone https://github.com/MultipledMe/PGuide-Docs.git ``` -也可以使用SSH协议导入,需要[配置SSH](/csdiy/tools-must/git/#设置ssh密钥) +也可以使用SSH协议导入,需要[配置SSH](/csdiy/tools-must/git/#设置ssh密钥)和[github设置](/csdiy/tools-must/git/#github设置) ```shell git clone git@github.com:MultipledMe/PGuide-Docs.git @@ -111,31 +111,65 @@ pnpm run docs:dev 打开[http://localhost:8080](http://localhost:8080)即可访问本地的开发环境了。代码修改时,内容也会一起跟着改。 -6. 阅读开发规范章 +6. 项目设置 -请合作开发者依次阅读`Git规范`、`静态资源管理规范`、`文档编写规范`、`其他注意事项`、`常见问题及解决方案` +将 .cache .temp .public 文件夹设置为排除 + +7. 阅读开发规范章 + +请合作开发者依次阅读 [`Git规范`](/contribute/#git规范)、`静态资源管理规范`、`文档编写规范`、`其他注意事项`、`常见问题及解决方案` ::: +## Git规范 + +项导文档开发Git规范采用 [:[logos:angular-icon]:Angular 规范](https://zj-git-guide.readthedocs.io/zh-cn/latest/message/Angular%E6%8F%90%E4%BA%A4%E4%BF%A1%E6%81%AF%E8%A7%84%E8%8C%83/) + +### + +### 合并请求 + +### ## 文档编写规范 俗话说,无规矩,不成方圆。一个优秀的团队离不开统一的规范,项导文档开发也是如此。 -## 静态资源规范 +## 静态资源管理规范 -这里是为了规范您的图片引用方法,Plume Vuepress推荐你引用静态资源的方式如下: +这里是为了规范您的**图片、视频、PDF、矢量图**引用方法,Plume Vuepress推荐你引用静态资源的方式如下: + +:::info 静态资源类型、大小规范 +- 图片文件:70%分辨率jpg或png图片,放入 `PGuide-Docs/.docs/.vuepress/public/` +- 视频文件:.mp4文件,帧率16/24FPS +- PDF文件:请尽量精简,不需要的页面不上传 +::: +### 截图工具设置 -截图工具 +::: steps +1. 下载pixpin -## 对象存储 +前往 +2. +::: +### 对象存储 -下载[pixpin](https://pixpin.cn/) +所有**PDF、.mp4视频**放在项导腾讯云对象存储上,如有此类文件,将其发送给 rand777,链接处留空,并留下以下格式的TODO + +> 今天天气多么好呀,于是我打开了书 +> 这里==需要PDF文件== + +然后写上TODO: 需要{文件名.pdf},并`ctrl`+`/`注释,在代码里看起来是这样的: + +```text +高数,即高等数学,比初等数学高一些。教材如下: +#TODO: 需要高等数学.pdf +``` --- ## 项目结构 @@ -181,65 +215,11 @@ pnpm run docs:dev - README.md #中文项导文档介绍 - README-en.md #英文项导文档介绍 - … - ::: +::: --- -## 🎬 快速启航指南 - -### 🏗️ 搭建脚手架 - -```bash -# 零基础同学建议安装nvm -nvm install lts - -# 选择镜像源(顺风车时间) -nvm node_mirror https://mirrors.cernet.edu.cn/nodejs-release/ # 校园专线 -nvm node_mirror https://mirrors.aliyun.com/nodejs-release/ # 阿里云快车 - -# 装备新时代工具箱 -npm install -g pnpm # 速度更快的npm替代品 -pnpm i # 一键安装所有魔法原料 -pnpm run docs:dev # 打开传送门进本地预览 -``` - -### ✨ 热更新小技巧 - -修改导航栏配置后记得`Ctrl+C`重启服务,看到"VuePress dev server listening"才算开启新世界大门哦~ - ---- - -## 🌉 开发分支规范 - -### 代码地铁乘坐指南 - -1. 在本地开设`dev/[你的名字]`新线路 -2. 完成精彩修改后:(快捷操作指南) - - `Ctrl+Shift+K` 召唤提交魔法阵 - - - 推荐消息格式:(让代码会说话,代码规范为 [Angular Commit](https://zj-git-guide.readthedocs.io/zh-cn/latest/message/Angular%E6%8F%90%E4%BA%A4%E4%BF%A1%E6%81%AF%E8%A7%84%E8%8C%83/)) - ``` - docs: README新增星空导航 - fix: 修复404星际迷航问题 - feat: 新增宇宙超链接模块 - ``` -3. 前往[Github站台](https://github.com/xxxx)点击「New pull request」提交专属班列 - ---- - -## 📍 避坑手册精选 - -### 资源位面法则 - -- 🎨 所有矢量图请存入`/public/*`,引用时直接`/AI.svg`即可 -- 📹 视频资源统一放在`src/video`,播放代码示范: -- - ```markdown - ``` - ---- - ## 🆘 常见问题及解决方案 ### 遇到git推送异常?(SSL ERROR) From 596b847d6cf6c5a8f29a30a6194353ad30fbe879 Mon Sep 17 00:00:00 2001 From: rand777 Date: Mon, 10 Mar 2025 00:40:08 +0800 Subject: [PATCH 2/2] refactor: icons refactor from src2src/icon --- docs/.vuepress/navbar.ts | 72 +++++++++--------- docs/.vuepress/public/{ => icon}/AI.svg | 0 docs/.vuepress/public/{ => icon}/OAuth2.svg | 0 docs/.vuepress/public/{ => icon}/analyse.svg | 0 docs/.vuepress/public/{ => icon}/baoyan.svg | 0 docs/.vuepress/public/{ => icon}/cert.svg | 0 docs/.vuepress/public/{ => icon}/cloud.svg | 0 docs/.vuepress/public/{ => icon}/code.svg | 0 .../public/{ => icon}/command_block.gif | Bin .../public/{ => icon}/competition.svg | 0 .../.vuepress/public/{ => icon}/container.svg | 0 docs/.vuepress/public/{ => icon}/control.svg | 0 .../public/{ => icon}/data-center.svg | 0 .../public/{ => icon}/dev-standard.svg | 0 docs/.vuepress/public/{ => icon}/email.svg | 0 .../public/{ => icon}/english_table.webp | Bin docs/.vuepress/public/{ => icon}/friend.svg | 0 docs/.vuepress/public/{ => icon}/hgt.jpg | Bin docs/.vuepress/public/{ => icon}/hpc.svg | 0 docs/.vuepress/public/{ => icon}/huawei.svg | 0 .../public/{ => icon}/internship.svg | 0 .../public/{ => icon}/jetbrains-edu.png | Bin docs/.vuepress/public/{ => icon}/kaogong.svg | 0 docs/.vuepress/public/{ => icon}/kaoyan.svg | 0 docs/.vuepress/public/{ => icon}/link.svg | 0 docs/.vuepress/public/{ => icon}/liuxue.svg | 0 docs/.vuepress/public/{ => icon}/logo.svg | 0 docs/.vuepress/public/{ => icon}/lwj.jpg | Bin docs/.vuepress/public/{ => icon}/maintain.svg | 0 docs/.vuepress/public/{ => icon}/manage.svg | 0 docs/.vuepress/public/{ => icon}/match.svg | 0 .../.vuepress/public/{ => icon}/minecraft.svg | 0 docs/.vuepress/public/{ => icon}/mirror.svg | 0 docs/.vuepress/public/{ => icon}/note.svg | 0 docs/.vuepress/public/{ => icon}/openai.svg | 0 docs/.vuepress/public/{ => icon}/orcid.svg | 0 docs/.vuepress/public/{ => icon}/organ.svg | 0 docs/.vuepress/public/{ => icon}/overleaf.svg | 0 docs/.vuepress/public/{ => icon}/path.svg | 0 docs/.vuepress/public/{ => icon}/project.svg | 0 .../public/{ => icon}/public-service.svg | 0 docs/.vuepress/public/{ => icon}/robot.png | Bin docs/.vuepress/public/{ => icon}/teacher.svg | 0 docs/.vuepress/public/{ => icon}/typora.svg | 0 .../.vuepress/public/{ => icon}/univ-town.svg | 0 docs/.vuepress/public/{ => icon}/vpn.svg | 0 docs/.vuepress/public/{ => icon}/wechat.svg | 0 docs/.vuepress/public/{ => icon}/wiki.svg | 0 docs/.vuepress/public/{ => icon}/yuque.png | Bin docs/.vuepress/public/{ => icon}/yuque.svg | 0 docs/.vuepress/public/{ => icon}/yuxiaoyi.png | Bin docs/.vuepress/public/{ => icon}/zhiyu.png | Bin docs/.vuepress/public/{ => icon}/zhuanli.svg | 0 docs/.vuepress/public/{ => icon}/zotero.svg | 0 docs/.vuepress/public/{ => icon}/zzfy.svg | 0 docs/.vuepress/public/{ => icon}/zzx.png | Bin 56 files changed, 36 insertions(+), 36 deletions(-) rename docs/.vuepress/public/{ => icon}/AI.svg (100%) rename docs/.vuepress/public/{ => icon}/OAuth2.svg (100%) rename docs/.vuepress/public/{ => icon}/analyse.svg (100%) rename docs/.vuepress/public/{ => icon}/baoyan.svg (100%) rename docs/.vuepress/public/{ => icon}/cert.svg (100%) rename docs/.vuepress/public/{ => icon}/cloud.svg (100%) rename docs/.vuepress/public/{ => icon}/code.svg (100%) rename docs/.vuepress/public/{ => icon}/command_block.gif (100%) rename docs/.vuepress/public/{ => icon}/competition.svg (100%) rename docs/.vuepress/public/{ => icon}/container.svg (100%) rename docs/.vuepress/public/{ => icon}/control.svg (100%) rename docs/.vuepress/public/{ => icon}/data-center.svg (100%) rename docs/.vuepress/public/{ => icon}/dev-standard.svg (100%) rename docs/.vuepress/public/{ => icon}/email.svg (100%) rename docs/.vuepress/public/{ => icon}/english_table.webp (100%) rename docs/.vuepress/public/{ => icon}/friend.svg (100%) rename docs/.vuepress/public/{ => icon}/hgt.jpg (100%) rename docs/.vuepress/public/{ => icon}/hpc.svg (100%) rename docs/.vuepress/public/{ => icon}/huawei.svg (100%) rename docs/.vuepress/public/{ => icon}/internship.svg (100%) rename docs/.vuepress/public/{ => icon}/jetbrains-edu.png (100%) rename docs/.vuepress/public/{ => icon}/kaogong.svg (100%) rename docs/.vuepress/public/{ => icon}/kaoyan.svg (100%) rename docs/.vuepress/public/{ => icon}/link.svg (100%) rename docs/.vuepress/public/{ => icon}/liuxue.svg (100%) rename docs/.vuepress/public/{ => icon}/logo.svg (100%) rename docs/.vuepress/public/{ => icon}/lwj.jpg (100%) rename docs/.vuepress/public/{ => icon}/maintain.svg (100%) rename docs/.vuepress/public/{ => icon}/manage.svg (100%) rename docs/.vuepress/public/{ => icon}/match.svg (100%) rename docs/.vuepress/public/{ => icon}/minecraft.svg (100%) rename docs/.vuepress/public/{ => icon}/mirror.svg (100%) rename docs/.vuepress/public/{ => icon}/note.svg (100%) rename docs/.vuepress/public/{ => icon}/openai.svg (100%) rename docs/.vuepress/public/{ => icon}/orcid.svg (100%) rename docs/.vuepress/public/{ => icon}/organ.svg (100%) rename docs/.vuepress/public/{ => icon}/overleaf.svg (100%) rename docs/.vuepress/public/{ => icon}/path.svg (100%) rename docs/.vuepress/public/{ => icon}/project.svg (100%) rename docs/.vuepress/public/{ => icon}/public-service.svg (100%) rename docs/.vuepress/public/{ => icon}/robot.png (100%) rename docs/.vuepress/public/{ => icon}/teacher.svg (100%) rename docs/.vuepress/public/{ => icon}/typora.svg (100%) rename docs/.vuepress/public/{ => icon}/univ-town.svg (100%) rename docs/.vuepress/public/{ => icon}/vpn.svg (100%) rename docs/.vuepress/public/{ => icon}/wechat.svg (100%) rename docs/.vuepress/public/{ => icon}/wiki.svg (100%) rename docs/.vuepress/public/{ => icon}/yuque.png (100%) rename docs/.vuepress/public/{ => icon}/yuque.svg (100%) rename docs/.vuepress/public/{ => icon}/yuxiaoyi.png (100%) rename docs/.vuepress/public/{ => icon}/zhiyu.png (100%) rename docs/.vuepress/public/{ => icon}/zhuanli.svg (100%) rename docs/.vuepress/public/{ => icon}/zotero.svg (100%) rename docs/.vuepress/public/{ => icon}/zzfy.svg (100%) rename docs/.vuepress/public/{ => icon}/zzx.png (100%) diff --git a/docs/.vuepress/navbar.ts b/docs/.vuepress/navbar.ts index e4527bb..2f73ce6 100644 --- a/docs/.vuepress/navbar.ts +++ b/docs/.vuepress/navbar.ts @@ -5,11 +5,11 @@ import {defineNavbarConfig} from 'vuepress-theme-plume' export const navbar = defineNavbarConfig([ {text: '首页', link: '/'}, { - icon: '/note.svg', + icon: '/icon/note.svg', text: '学习笔记', items: [ - {icon: '/note.svg',text: '前言',link: '/learning-notes/'}, - {icon: '/AI.svg', text: '机器学习', link: '/learning-notes/ml/'}, + {icon: '/icon/note.svg',text: '前言',link: '/learning-notes/'}, + {icon: '/icon/AI.svg', text: '机器学习', link: '/learning-notes/ml/'}, {icon: 'logos:google-developers', text: '前端开发', link: '/learning-notes/frontend-dev/'}, {icon: 'fluent-color:data-scatter-32', text: '后端开发', link: '/learning-notes/backend-dev/'}, {icon: 'devicon:ros', text: 'ROS2', link: '/learning-notes/ROS2/'}, @@ -17,16 +17,16 @@ export const navbar = defineNavbarConfig([ ] }, { - icon: '/project.svg', + icon: '/icon/project.svg', text: '项目文档', items: [ {icon: 'carbon:license-third-party', text: '项目知识产权', link: '/project-docs/project-intellectual-property/'}, {icon: 'hugeicons:add-team', text: '全国大学生竞赛组队系统', link: '/project-docs/match-competitions/'}, - {icon: '/zhiyu.png', text: '植愈:AI情绪小帮手', link: '/project-docs/plant-cure/'}, - {icon: '/robot.png', text: '智慧中草药生态养护平台', link: '/project-docs/smart-car/'}, - {icon: '/univ-town.svg', text: '像素大学城', link: '/project-docs/pixel-university-town/'}, - {icon: '/command_block.gif', text: 'CQMUA服务器中心', link: '/project-docs/cqmua-center/'}, - {icon: '/analyse.svg',text: '学情分析系统',link: '/project-docs/study-analytic-system/'}, + {icon: '/icon/zhiyu.png', text: '植愈:AI情绪小帮手', link: '/project-docs/plant-cure/'}, + {icon: '/icon/robot.png', text: '智慧中草药生态养护平台', link: '/project-docs/smart-car/'}, + {icon: '/icon/univ-town.svg', text: '像素大学城', link: '/project-docs/pixel-university-town/'}, + {icon: '/icon/command_block.gif', text: 'CQMUA服务器中心', link: '/project-docs/cqmua-center/'}, + {icon: '/icon/analyse.svg',text: '学情分析系统',link: '/project-docs/study-analytic-system/'}, {icon: 'line-md:speed-twotone-loop',text: '掌中方圆',link: '/project-docs/control-my-panel/'}, {icon: 'icon-park:transport', text: 'SPD智能医疗耗材管理系统', link: '/project-docs/spd/'}, {icon: 'material-symbols:dropper-eye-outline-sharp', text: '医智慧眼', link: '/project-docs/see-the-components/'}, @@ -38,25 +38,25 @@ export const navbar = defineNavbarConfig([ ] }, { - icon: '/code.svg', + icon: '/icon/code.svg', text: 'CS-DIY', items: [ - {icon: '/code.svg',text: '前言', link: '/cs-diy/'}, + {icon: '/icon/code.svg',text: '前言', link: '/cs-diy/'}, {icon: 'mdi:tools', text:'必学工具', link: '/csdiy/tools-must/'}, {icon: 'carbon:cics-program', text:'编程入门', link: '/csdiy/program-begin/'}, - {icon:'/dev-standard.svg', text: '开发规范' , link: '/csdiy/dev-rules/'}, - {icon: '/path.svg', text: '学习路线', link: '/csdiy/study-path/'}, + {icon: '/icon/dev-standard.svg', text: '开发规范' , link: '/csdiy/dev-rules/'}, + {icon: '/icon/path.svg', text: '学习路线', link: '/csdiy/study-path/'}, {icon: 'fa6-solid:computer',text: '计算机常识', link: '/csdiy/computer-common-knowledge/'} ] }, { - icon: '/public-service.svg', + icon: '/icon/public-service.svg', text: '公共服务', items: [ - {icon: '/openai.svg',text: '生成式人工智能',link: '/public-service/GPT/'}, + {icon: '/icon/openai.svg',text: '生成式人工智能',link: '/public-service/GPT/'}, {icon: 'fluent-color:data-area-20', text: '数据中心', link: '/public-service/data-center/'}, - {icon: '/mirror.svg', text: '重庆医科大学开源软件镜像站', link: '/public-service/cqmu-mirror/'}, - {icon: '/overleaf.svg', text: 'Overleaf LaTeX协作编辑器', link: '/public-service/overleaf/'}, + {icon: '/icon/mirror.svg', text: '重庆医科大学开源软件镜像站', link: '/public-service/cqmu-mirror/'}, + {icon: '/icon/overleaf.svg', text: 'Overleaf LaTeX协作编辑器', link: '/public-service/overleaf/'}, {icon: 'fluent-emoji-flat:medical-symbol', text: '全球医学公开数据网', link: '/public-service/global-medical-open-data-web/'}, {icon: 'vscode-icons:file-type-word' ,text: '文书及申报资料网', link: '/public-service/official-documents-web/'}, {text: '', link: ''}, @@ -64,40 +64,40 @@ export const navbar = defineNavbarConfig([ ] }, { - icon: '/wiki.svg', + icon: '/icon/wiki.svg', text: '大学百科', items: [ - {icon: '/email.svg', text: '申请学生邮箱', link: '/campus-wiki/apply-student-email/'}, - {icon: '/teacher.svg', text: '老师们说', link: '/campus-wiki/teacher-talks/'}, + {icon: '/icon/email.svg', text: '申请学生邮箱', link: '/campus-wiki/apply-student-email/'}, + {icon: '/icon/teacher.svg', text: '老师们说', link: '/campus-wiki/teacher-talks/'}, {icon: 'carbon:container-software', text: '常用软件', link: '/campus-wiki/common-softwares/'}, - {icon: '/cert.svg', text: '证书及技能考试', link: '/campus-wiki/credential-skillful-exams/'}, + {icon: '/icon/cert.svg', text: '证书及技能考试', link: '/campus-wiki/credential-skillful-exams/'}, {icon: 'ic:baseline-school',text: '校内生活', link: '/campus-wiki/campus-life/'}, - {icon: '/competition.svg', text:'竞赛篇', link: '/campus-wiki/competition/'}, - {icon: '/kaoyan.svg', text:'考研篇', link: ''}, - {icon: '/kaogong.svg', text:'考公篇', link: ''}, - {icon: '/baoyan.svg', text:'保研篇', link: ''}, - {icon: '/liuxue.svg', text:'留学篇', link: ''}, - {icon: '/internship.svg', text:'实习篇', link: ''}, + {icon: '/icon/competition.svg', text:'竞赛篇', link: '/campus-wiki/competition/'}, + {icon: '/icon/kaoyan.svg', text:'考研篇', link: ''}, + {icon: '/icon/kaogong.svg', text:'考公篇', link: ''}, + {icon: '/icon/baoyan.svg', text:'保研篇', link: ''}, + {icon: '/icon/liuxue.svg', text:'留学篇', link: ''}, + {icon: '/icon/internship.svg', text:'实习篇', link: ''}, ] }, { - icon: '/manage.svg', + icon: '/icon/manage.svg', text: '后台管理', items: [ - {icon: '/OAuth2.svg', text: 'OAuth登录(测试版)', link: 'https://hrtcsm.logto.app/demo-app'}, + {icon: '/icon/OAuth2.svg', text: 'OAuth登录(测试版)', link: 'https://hrtcsm.logto.app/demo-app'}, {icon: 'icon-park:data-lock', text: '数据中心', link: ''}, - {icon: '/control.svg', text: '项导运维控制中台', link: ''}, - {icon: '/vpn.svg', text: 'VPN服务', link: ''}, - {icon: '/cloud.svg', text: '云计算资源调度中心', link: ''}, - {icon: '/maintain.svg', text: '服务器维护', link: '/backend-manage/server-maintainance/'}, + {icon: '/icon/control.svg', text: '项导运维控制中台', link: ''}, + {icon: '/icon/vpn.svg', text: 'VPN服务', link: ''}, + {icon: '/icon/cloud.svg', text: '云计算资源调度中心', link: ''}, + {icon: '/icon/maintain.svg', text: '服务器维护', link: '/backend-manage/server-maintainance/'}, ], }, { - icon: '/link.svg', + icon: '/icon/link.svg', text: '友情链接', items: [ - {icon: '/friend.svg', text: '个人', link: '/friends/persons/'}, - {icon: '/organ.svg', text: '组织', link: '/friends/organizations/'}, + {icon: '/icon/friend.svg', text: '个人', link: '/friends/persons/'}, + {icon: '/icon/organ.svg', text: '组织', link: '/friends/organizations/'}, {icon: 'fa-solid:quote-left', text: 'Q&A', link: '/friends/quotes/'}, ] }, diff --git a/docs/.vuepress/public/AI.svg b/docs/.vuepress/public/icon/AI.svg similarity index 100% rename from docs/.vuepress/public/AI.svg rename to docs/.vuepress/public/icon/AI.svg diff --git a/docs/.vuepress/public/OAuth2.svg b/docs/.vuepress/public/icon/OAuth2.svg similarity index 100% rename from docs/.vuepress/public/OAuth2.svg rename to docs/.vuepress/public/icon/OAuth2.svg diff --git a/docs/.vuepress/public/analyse.svg b/docs/.vuepress/public/icon/analyse.svg similarity index 100% rename from docs/.vuepress/public/analyse.svg rename to docs/.vuepress/public/icon/analyse.svg diff --git a/docs/.vuepress/public/baoyan.svg b/docs/.vuepress/public/icon/baoyan.svg similarity index 100% rename from docs/.vuepress/public/baoyan.svg rename to docs/.vuepress/public/icon/baoyan.svg diff --git a/docs/.vuepress/public/cert.svg b/docs/.vuepress/public/icon/cert.svg similarity index 100% rename from docs/.vuepress/public/cert.svg rename to docs/.vuepress/public/icon/cert.svg diff --git a/docs/.vuepress/public/cloud.svg b/docs/.vuepress/public/icon/cloud.svg similarity index 100% rename from docs/.vuepress/public/cloud.svg rename to docs/.vuepress/public/icon/cloud.svg diff --git a/docs/.vuepress/public/code.svg b/docs/.vuepress/public/icon/code.svg similarity index 100% rename from docs/.vuepress/public/code.svg rename to docs/.vuepress/public/icon/code.svg diff --git a/docs/.vuepress/public/command_block.gif b/docs/.vuepress/public/icon/command_block.gif similarity index 100% rename from docs/.vuepress/public/command_block.gif rename to docs/.vuepress/public/icon/command_block.gif diff --git a/docs/.vuepress/public/competition.svg b/docs/.vuepress/public/icon/competition.svg similarity index 100% rename from docs/.vuepress/public/competition.svg rename to docs/.vuepress/public/icon/competition.svg diff --git a/docs/.vuepress/public/container.svg b/docs/.vuepress/public/icon/container.svg similarity index 100% rename from docs/.vuepress/public/container.svg rename to docs/.vuepress/public/icon/container.svg diff --git a/docs/.vuepress/public/control.svg b/docs/.vuepress/public/icon/control.svg similarity index 100% rename from docs/.vuepress/public/control.svg rename to docs/.vuepress/public/icon/control.svg diff --git a/docs/.vuepress/public/data-center.svg b/docs/.vuepress/public/icon/data-center.svg similarity index 100% rename from docs/.vuepress/public/data-center.svg rename to docs/.vuepress/public/icon/data-center.svg diff --git a/docs/.vuepress/public/dev-standard.svg b/docs/.vuepress/public/icon/dev-standard.svg similarity index 100% rename from docs/.vuepress/public/dev-standard.svg rename to docs/.vuepress/public/icon/dev-standard.svg diff --git a/docs/.vuepress/public/email.svg b/docs/.vuepress/public/icon/email.svg similarity index 100% rename from docs/.vuepress/public/email.svg rename to docs/.vuepress/public/icon/email.svg diff --git a/docs/.vuepress/public/english_table.webp b/docs/.vuepress/public/icon/english_table.webp similarity index 100% rename from docs/.vuepress/public/english_table.webp rename to docs/.vuepress/public/icon/english_table.webp diff --git a/docs/.vuepress/public/friend.svg b/docs/.vuepress/public/icon/friend.svg similarity index 100% rename from docs/.vuepress/public/friend.svg rename to docs/.vuepress/public/icon/friend.svg diff --git a/docs/.vuepress/public/hgt.jpg b/docs/.vuepress/public/icon/hgt.jpg similarity index 100% rename from docs/.vuepress/public/hgt.jpg rename to docs/.vuepress/public/icon/hgt.jpg diff --git a/docs/.vuepress/public/hpc.svg b/docs/.vuepress/public/icon/hpc.svg similarity index 100% rename from docs/.vuepress/public/hpc.svg rename to docs/.vuepress/public/icon/hpc.svg diff --git a/docs/.vuepress/public/huawei.svg b/docs/.vuepress/public/icon/huawei.svg similarity index 100% rename from docs/.vuepress/public/huawei.svg rename to docs/.vuepress/public/icon/huawei.svg diff --git a/docs/.vuepress/public/internship.svg b/docs/.vuepress/public/icon/internship.svg similarity index 100% rename from docs/.vuepress/public/internship.svg rename to docs/.vuepress/public/icon/internship.svg diff --git a/docs/.vuepress/public/jetbrains-edu.png b/docs/.vuepress/public/icon/jetbrains-edu.png similarity index 100% rename from docs/.vuepress/public/jetbrains-edu.png rename to docs/.vuepress/public/icon/jetbrains-edu.png diff --git a/docs/.vuepress/public/kaogong.svg b/docs/.vuepress/public/icon/kaogong.svg similarity index 100% rename from docs/.vuepress/public/kaogong.svg rename to docs/.vuepress/public/icon/kaogong.svg diff --git a/docs/.vuepress/public/kaoyan.svg b/docs/.vuepress/public/icon/kaoyan.svg similarity index 100% rename from docs/.vuepress/public/kaoyan.svg rename to docs/.vuepress/public/icon/kaoyan.svg diff --git a/docs/.vuepress/public/link.svg b/docs/.vuepress/public/icon/link.svg similarity index 100% rename from docs/.vuepress/public/link.svg rename to docs/.vuepress/public/icon/link.svg diff --git a/docs/.vuepress/public/liuxue.svg b/docs/.vuepress/public/icon/liuxue.svg similarity index 100% rename from docs/.vuepress/public/liuxue.svg rename to docs/.vuepress/public/icon/liuxue.svg diff --git a/docs/.vuepress/public/logo.svg b/docs/.vuepress/public/icon/logo.svg similarity index 100% rename from docs/.vuepress/public/logo.svg rename to docs/.vuepress/public/icon/logo.svg diff --git a/docs/.vuepress/public/lwj.jpg b/docs/.vuepress/public/icon/lwj.jpg similarity index 100% rename from docs/.vuepress/public/lwj.jpg rename to docs/.vuepress/public/icon/lwj.jpg diff --git a/docs/.vuepress/public/maintain.svg b/docs/.vuepress/public/icon/maintain.svg similarity index 100% rename from docs/.vuepress/public/maintain.svg rename to docs/.vuepress/public/icon/maintain.svg diff --git a/docs/.vuepress/public/manage.svg b/docs/.vuepress/public/icon/manage.svg similarity index 100% rename from docs/.vuepress/public/manage.svg rename to docs/.vuepress/public/icon/manage.svg diff --git a/docs/.vuepress/public/match.svg b/docs/.vuepress/public/icon/match.svg similarity index 100% rename from docs/.vuepress/public/match.svg rename to docs/.vuepress/public/icon/match.svg diff --git a/docs/.vuepress/public/minecraft.svg b/docs/.vuepress/public/icon/minecraft.svg similarity index 100% rename from docs/.vuepress/public/minecraft.svg rename to docs/.vuepress/public/icon/minecraft.svg diff --git a/docs/.vuepress/public/mirror.svg b/docs/.vuepress/public/icon/mirror.svg similarity index 100% rename from docs/.vuepress/public/mirror.svg rename to docs/.vuepress/public/icon/mirror.svg diff --git a/docs/.vuepress/public/note.svg b/docs/.vuepress/public/icon/note.svg similarity index 100% rename from docs/.vuepress/public/note.svg rename to docs/.vuepress/public/icon/note.svg diff --git a/docs/.vuepress/public/openai.svg b/docs/.vuepress/public/icon/openai.svg similarity index 100% rename from docs/.vuepress/public/openai.svg rename to docs/.vuepress/public/icon/openai.svg diff --git a/docs/.vuepress/public/orcid.svg b/docs/.vuepress/public/icon/orcid.svg similarity index 100% rename from docs/.vuepress/public/orcid.svg rename to docs/.vuepress/public/icon/orcid.svg diff --git a/docs/.vuepress/public/organ.svg b/docs/.vuepress/public/icon/organ.svg similarity index 100% rename from docs/.vuepress/public/organ.svg rename to docs/.vuepress/public/icon/organ.svg diff --git a/docs/.vuepress/public/overleaf.svg b/docs/.vuepress/public/icon/overleaf.svg similarity index 100% rename from docs/.vuepress/public/overleaf.svg rename to docs/.vuepress/public/icon/overleaf.svg diff --git a/docs/.vuepress/public/path.svg b/docs/.vuepress/public/icon/path.svg similarity index 100% rename from docs/.vuepress/public/path.svg rename to docs/.vuepress/public/icon/path.svg diff --git a/docs/.vuepress/public/project.svg b/docs/.vuepress/public/icon/project.svg similarity index 100% rename from docs/.vuepress/public/project.svg rename to docs/.vuepress/public/icon/project.svg diff --git a/docs/.vuepress/public/public-service.svg b/docs/.vuepress/public/icon/public-service.svg similarity index 100% rename from docs/.vuepress/public/public-service.svg rename to docs/.vuepress/public/icon/public-service.svg diff --git a/docs/.vuepress/public/robot.png b/docs/.vuepress/public/icon/robot.png similarity index 100% rename from docs/.vuepress/public/robot.png rename to docs/.vuepress/public/icon/robot.png diff --git a/docs/.vuepress/public/teacher.svg b/docs/.vuepress/public/icon/teacher.svg similarity index 100% rename from docs/.vuepress/public/teacher.svg rename to docs/.vuepress/public/icon/teacher.svg diff --git a/docs/.vuepress/public/typora.svg b/docs/.vuepress/public/icon/typora.svg similarity index 100% rename from docs/.vuepress/public/typora.svg rename to docs/.vuepress/public/icon/typora.svg diff --git a/docs/.vuepress/public/univ-town.svg b/docs/.vuepress/public/icon/univ-town.svg similarity index 100% rename from docs/.vuepress/public/univ-town.svg rename to docs/.vuepress/public/icon/univ-town.svg diff --git a/docs/.vuepress/public/vpn.svg b/docs/.vuepress/public/icon/vpn.svg similarity index 100% rename from docs/.vuepress/public/vpn.svg rename to docs/.vuepress/public/icon/vpn.svg diff --git a/docs/.vuepress/public/wechat.svg b/docs/.vuepress/public/icon/wechat.svg similarity index 100% rename from docs/.vuepress/public/wechat.svg rename to docs/.vuepress/public/icon/wechat.svg diff --git a/docs/.vuepress/public/wiki.svg b/docs/.vuepress/public/icon/wiki.svg similarity index 100% rename from docs/.vuepress/public/wiki.svg rename to docs/.vuepress/public/icon/wiki.svg diff --git a/docs/.vuepress/public/yuque.png b/docs/.vuepress/public/icon/yuque.png similarity index 100% rename from docs/.vuepress/public/yuque.png rename to docs/.vuepress/public/icon/yuque.png diff --git a/docs/.vuepress/public/yuque.svg b/docs/.vuepress/public/icon/yuque.svg similarity index 100% rename from docs/.vuepress/public/yuque.svg rename to docs/.vuepress/public/icon/yuque.svg diff --git a/docs/.vuepress/public/yuxiaoyi.png b/docs/.vuepress/public/icon/yuxiaoyi.png similarity index 100% rename from docs/.vuepress/public/yuxiaoyi.png rename to docs/.vuepress/public/icon/yuxiaoyi.png diff --git a/docs/.vuepress/public/zhiyu.png b/docs/.vuepress/public/icon/zhiyu.png similarity index 100% rename from docs/.vuepress/public/zhiyu.png rename to docs/.vuepress/public/icon/zhiyu.png diff --git a/docs/.vuepress/public/zhuanli.svg b/docs/.vuepress/public/icon/zhuanli.svg similarity index 100% rename from docs/.vuepress/public/zhuanli.svg rename to docs/.vuepress/public/icon/zhuanli.svg diff --git a/docs/.vuepress/public/zotero.svg b/docs/.vuepress/public/icon/zotero.svg similarity index 100% rename from docs/.vuepress/public/zotero.svg rename to docs/.vuepress/public/icon/zotero.svg diff --git a/docs/.vuepress/public/zzfy.svg b/docs/.vuepress/public/icon/zzfy.svg similarity index 100% rename from docs/.vuepress/public/zzfy.svg rename to docs/.vuepress/public/icon/zzfy.svg diff --git a/docs/.vuepress/public/zzx.png b/docs/.vuepress/public/icon/zzx.png similarity index 100% rename from docs/.vuepress/public/zzx.png rename to docs/.vuepress/public/icon/zzx.png