main
以内联 SVG 内嵌 Font Awesome copy/check 字形(viewBox 0 0 448 512),复制成功后切换为对勾;不再为单个图标引入整个 Font Awesome 依赖。
VenomWebSite
Venom 官网(venom.gvsds.com)源码。
Venom 是 Viper 语言的包管理器:覆盖包从发布到安装、依赖解析,并接入 TransPyC 的两阶段编译链路。
技术栈
- Vue 3(
<script setup>+ TypeScript) - Vite 8(rolldown)
- 零 UI 框架:手写 CSS 设计系统(src/assets/base.css)
- Lenis 平滑惯性滚动
目录结构
src/
├─ App.vue 页面装配 + Lenis 实例 + 滚动揭示观察器
├─ main.ts 入口
├─ assets/base.css 设计系统:色板 / 字体栈 / 通用工具类
├─ i18n/ 中英双语文案(index.ts 保存语言状态,zh.ts / en.ts 为词条)
└─ components/
├─ TheHeader.vue 顶栏:导航、语言切换
├─ HeroSection.vue 首屏
├─ CapabilitiesSection.vue 能力卡片(发布 / 解析 / 集成)
├─ TerminalSection.vue 终端演示
└─ TheFooter.vue 页脚
deploy.ps1 构建 + 部署脚本(见下)
开发
npm install
npm run dev # 开发服务器:http://localhost:5176(监听 0.0.0.0,便于局域网/手机真机预览)
构建与部署
npm run build # vue-tsc -b 类型检查 + vite build → dist/
.\deploy.ps1 # 清理旧产物 → 全量构建 → 同步 dist 到 TempLate/Venom → 校验一致性
deploy.ps1 做四件事:
- 删除
dist/与生产目录../TempLate/Venom/下的旧assets/、index.html(避免残留旧 hash 文件) - 执行
npm run build,类型检查失败即中断 - 把
dist/*同步到../TempLate/Venom/ - 校验生产目录的文件名集合与
dist/完全一致,并确认index.html引用的入口 JS 真实存在
生产目录 TempLate/Venom 由 Django 站点以 venom.gvsds.com 子域名托管,产物入口使用根绝对路径 /assets/...。
本地直接打开构建产物会白屏,需以 TempLate/Venom 为站点根访问。
deploy.ps1必须保持纯 ASCII:Windows PowerShell 5.1 会用 ANSI 代码页解析无 BOM 的 UTF-8 脚本,非 ASCII 字符会乱码。
相关仓库
- ViperWebSite — Viper 语言官网
- GVSite — GVSDS 工作室站
浏览器兼容
overflow: clip前置overflow-x: hidden回退(老 iOS Safari < 16 / Chrome < 90 会丢弃clip)- 横向裁剪放在根元素
html上:放body会把body的overflow-y算成auto,被 Lenis 的allowNestedScroll误判为嵌套滚动源 - 尊重
prefers-reduced-motion:系统开启「减弱动态效果」时自动退回原生滚动
Languages
Vue
61.5%
TypeScript
17.8%
CSS
12.8%
PowerShell
7%
HTML
0.9%