手写代码
每个页面都是手写的HTML、CSS和原生JavaScript,没有框架,也没有打包工具。本站的每个工具都是一个独立的HTML文件,可以单独运行。
构建脚本
有一个小脚本build.js,负责把源文件变成上线的网站。它会:
- 把简历从Markdown文件渲染成HTML
- 为每个已翻译的页面生成中文版本
- 生成网站地图
- 检查每一个内部链接,链接失效就让构建失败
这背后没有用静态网站生成器。本站大约有30个页面,改动不频繁,在文件之间复制一点标记,比换一套新工具更省事。
中文页面
每个中文页面都是在构建时生成的。构建脚本会把页面里的英文文本和一个翻译文件做匹配,然后换成中文。这些翻译是借助机器完成的,还没有请母语是中文的人检查过。
测试与代码检查
测试用Jest运行,代码检查和格式化用ESLint、Prettier、Stylelint和HTMLHint。Git钩子会在提交前运行检查工具,在推送前运行测试,只有构建、测试和检查全部通过,网站才会部署到GitHub Pages。
设计
主题切换器可以在浅色、深色和跟随系统之间切换。全站支持键盘快捷键——按?可以查看快捷键列表。文字用的是你系统自带的字体,不是额外下载的字体。