🚀基于 Astro 构建的超轻量个人导航站项目,支持纯静态部署,无需数据库 / 后端,仅编辑数据文件即可更新页面。主打新手友好 & 极速上线,适配Vercel、Cloudflare Pages 等平台
src/data/navLinks.js
,所有功能都会自动更新,极大简化了维护工作git clone https://github.com/zywe03/astro-xwnav.git
(或者下载压缩包源码解压)corepack enable
corepack prepare pnpm@latest --activate
# 安装依赖
pnpm i
# 浏览器实时看效果
pnpm dev
# 自动下载图标
npx tsx .\icon-system\0icon.ts
# 打包构建生成/dist目录
pnpm build
列出想要生成的网站所属分类,名称或网站,短和长描述让AI生成,节省工作量
AI提示词:
统一分类opensource
网站:
github
baidu.com
谷歌
具体按照以下样式生成,使用“JavaScript风格格式+单引号”,不要添加"icon字段"和"[]""
{
id: 'github',
title: 'GitHub',
description: '全球最大的开源代码托管平台,支持 Git 版本控制,适用于协作开发、项目管理和自动化工作流,是开发者共享与协作的核心工具。'
shortDesc: '代码托管平台。',
url: 'https://github.com/',
category: 'opensource',
},
描述根据网站实际内容,专业,准确,介绍背景独特优势等等,不要太刻板,臃肿,重复
插入数据文件navLinks.js
后
执行npx tsx .\icon-system\0icon.ts
自动下载图标,即可完成大量导航网站的导入工作
vscode更新数据文件,执行图标下载脚本,同步更新到仓库即可
2.1:使用rsync
,配置一键脚本上传
2.2:更新文件,执行脚本,构建,设置好nginx,压缩dist目录,上传后解压,每次更新删除服务器的dist,再传新的压缩包
Astro-xwnav 会不定期发布 新功能,修复BUG,维护功能
git remote add upstream https://github.com/zywe03/astro-xwnav.git
git pull upstream main
即可更新(⚠️ 注意写好.gitignore文件
避免覆盖数据)dh_web/
├── icon-system/ # 图标管理系统
├── public/ # 静态资源目录
│ ├── icons/ # 导航网站和分类图标目录
│ └── images/ # 网站图标
├── src/ # 源代码目录
│ ├── components/ # 组件目录
│ │ ├── Card.astro # 网站卡片组件
│ │ ├── Footer.astro # 页脚组件
│ │ ├── Header.astro # 页眉组件
│ │ ├── LogoName.astro # Logo和网站名称组件
│ │ └── Sidebar.astro # 侧边栏组件
│ ├── Island/ # React岛屿组件目录
│ │ ├── ThemeIsland.jsx # 主题切换岛屿
│ │ ├── WeatherIsland.jsx # 天气显示岛屿
│ │ ├── quicklyup.jsx # 快速回到顶部岛屿
│ │ └── searchlsland.jsx # 搜索功能岛屿
│ ├── data/ # 数据目录
│ │ └── navLinks.js # 导航网站核心数据
│ ├── layouts/ # 布局目录
│ │ └── MainLayout.astro # 主布局
│ └── pages/ # 页面目录
│ ├── index.astro # 首页
│ ├── 404.astro # 404错误页面
│ └── robots.txt.ts # 生成robots.txt文件
├── astro.config.mjs # Astro配置文件
└── package.json # 项目依赖配置
修改 src/data/navLinks.js
文件即可管理所有网站和分类
在 categories
数组中添加新分类:
⚠️ 注意:不要手动添加icon字段,不要icon""字段留空,会导致无法自动下载添加icon字段,手动自定义图标除外
最好直接不写icon省心,简单
export const categories = [
{
id: new, //分类ID
name: '新分类名称',icon: '/icons/category/new-category.svg'
// 分类图标也支持自动生成,基于模糊搜索分类名字和ID,找到合适的图标
}
];
在 sites
数组中添加新网站:
export const sites = [
{
id: 'github', // 网站ID
title: 'GitHub', // 网站名称
description: '全球最大代码托管平台。', // 长描述
shortDesc: '代码托管平台。', // 短描述
url: 'https://github.com/', // 网站链接(包含完整协议(`http://`或`https://`))
category: 'opensource', // 所属分类 ID(必须对应分类中的id)
// 注意:不需要添加icon字段,脚本会自动处理
},
];
categories
数组中分类的顺序即可改变分类的显示顺序sites
数组中网站的顺序即可改变网站的显示顺序✅ navLinks.js
使用“JavaScript风格格式+单引号”,不要添加"icon字段"
由于是静态网站,建议全部图标在构建时下载图标引用
src/data/navLinks.js
中添加好新网站或分类# 终端复制粘贴回车
npx tsx .\icon-system\0icon.ts
记得修改
可快速找到全部需要自定义的内容(强烈建议已经全部标注好)位于页脚组件中,修改 src/components/Footer.astro
文件:
修改src\components\LogoName.astro
default.svg
导航网站三级回退机制保底图标logo.png
网站社交媒体分享图片logo.svg
网站主图标public\images
目录即可只需要向搜索引擎提交 https://xxx.com/sitemap-index.xml
这一个文件
感谢项目使用的全部API
Feather,Simple,Iconify,DuckDuckGo,Unavatar,myip.la,openweathermap.org,Clearbit,Logo
🌟 Zywe导航站 - 让您的网络世界更有序、更高效!
意见与反馈可使用📧 联系我:电子邮箱