liano3/justafish

★ 0Forks 0JavaScriptGitHub ↗Compare

Project website ↗

README

Just A Fish 🐟

支持中英文的个人主页:简历、书签、实用工具与小游戏。无第三方 npm 依赖。

运行与部署

需要 Node.js 22+;本地预览还需 Python 3。

npm run build      # 生成 dist/,覆盖旧输出
npm run preview    # 构建并预览:http://localhost:8080

Vercel 直接导入仓库并设置环境变量。.env.local 不上传,线上需单独配置。

配置

本地配置写入 .env.local,值为 JSON:

PAGES_JSON='{"home":true,"resume":true,"bookmarks":true,"apps":true,"language":true,"footer":true,"showDomain":true,"showLastUpdated":true,"showVisitorCount":true}'
PROFILE_JSON='{"name":"Alex Chen","nickname":"Alex","email":"[email protected]","domain":"example.com"}'
INTERNSHIPS_JSON='[{"title":"正在寻找机会..."}]'

优先级:系统环境变量 → .env.local → 默认配置。JSON 含英文单引号时,可用反引号包裹整个值。启用部分的无效 JSON 会终止构建。

PAGES_JSON 的字段默认启用,设为 false 关闭;全部页面关闭时保留首页。language: false 关闭英文版,默认中文路径为 /、英文为 /en/。

footer 控制整个页脚;showDomain、showLastUpdated、showVisitorCount 分别控制页脚域名、更新时间、访问统计,中英文共用。关闭页脚或访问统计时,不加载统计脚本。旧的 PROFILE_JSON.footer 显示开关需移到 PAGES_JSON;Vercel 环境变量也需同步调整。

变量 内容与字段
PAGES_JSON 页面:home、resume、bookmarks、apps;显示开关:language、footer、showDomain、showLastUpdated、showVisitorCount
PROFILE_JSON 个人信息、首页链接、页脚;完整示例见默认配置
ANNOUNCEMENTS_JSON 公告数组:content,可选 icon、link: {label, url}、expiresAt: YYYY-MM-DD
EDUCATION_JSON、INTERNSHIPS_JSON、STUDENT_WORK_JSON、AWARDS_JSON 教育、实习、学生工作、奖项数组:title、subtitle、date、description、descriptionUrl
PAPERS_JSON、PROJECTS_JSON 论文、项目数组:title、author、description、tag(数组)、result、url
BOOKMARKS_JSON 书签分组数组:name、links;链接包含 url、label,可选 description、tags

英文配置在 _JSON 前加 _EN(如 INTERNSHIPS_EN_JSON、BOOKMARKS_EN_JSON)。未设置时继承中文;个人信息按字段覆盖,数组整体替换。简历区块设为 [] 即隐藏。

name 用于简历,nickname 用于首页;首页链接图标支持 blog、github、scholar、email。PROFILE_JSON.footer 只放页脚内容:startYear、text。工具数据保存在当前浏览器。

文件

  • src/config/:默认内容与工具入口;src/build/:构建与中英文文案。
  • src/templates/、src/css/、src/js/:页面模板、样式、交互。
  • 根目录 avatar.png、BingSiteAuth.xml 在存在时复制到构建输出。
  • resume.pdf、resume-en.pdf 在启用对应简历页面时复制并显示下载入口。

License

MIT。2048 核心逻辑改编自 Gabriele Cirulli 的 2048,保留其 MIT 声明。

Contributors

liano3

Issues