六角學院各項服務的法律文件中心(服務條款 / 隱私權政策)。 採 Vite + Vue 3 + vite-ssg,build 時預渲染成靜態 HTML, 可直接部署到任何靜態主機,提供各服務申請所需的公開網址。
採「產品命名空間」設計:每個產品(如 Discord Bot)有獨立的文件路徑,新增其他產品的文件只需改設定檔,無需動程式(見下方〈新增一個產品〉)。
| 頁面 | 繁體中文 | English |
|---|---|---|
| 首頁(產品總覽) | / |
— |
| Discord Bot 文件總覽 | /discord |
— |
| └ 服務條款 | /discord/terms |
/discord/en/terms |
| └ 隱私權政策 | /discord/privacy |
/discord/en/privacy |
網址規則:
/<產品>/<文件>為預設語系(繁中),其他語系帶語系前綴/<產品>/<語系>/<文件>。
pnpm install # 安裝相依套件
pnpm dev # 本機開發伺服器 (http://localhost:5173)
pnpm build # 建置 + 預渲染,產物在 dist/
pnpm preview # 預覽 dist/ 產物只要三步,路由、首頁卡片、產品頁與 sitemap 都會自動產生:
- 放內容:在
src/content/<slug>/放各文件的 markdown,命名為<doc>.zh-TW.md、<doc>.en.md(例:src/content/line/terms.zh-TW.md、src/content/line/privacy.en.md)。 - 登記產品:在
src/products.config.js的products陣列加一筆,填slug、名稱、summary與各文件的description。 pnpm build即可。
文件標題(服務條款 / 隱私權政策)共用
products.config.js的docTitles; 若要新增其他文件類型(如cookies),在docTitles補一個對應標題,再於該產品的docs列出即可。
編輯 src/site.config.js:
siteUrl:改成實際對外網址(影響 canonical、og:url、sitemap)- 其餘站台層級資訊(
brand、operator、contactEmail等)視需要調整
各產品的文件清單、標題、effectiveDate 與描述則在 src/products.config.js。
pnpm build 完成後會依 siteUrl 自動產生 dist/sitemap.xml 與 dist/robots.txt。
對外網址為 https://policies.hexschool.io(自訂子網域)。一行指令完成 build + 發布:
pnpm deploy # = vite-ssg build && gh-pages -d dist -tgh-pages 會把 dist/ 推到 gh-pages 分支(-t 確保連 .nojekyll 等 dotfile 一起發布)。
首次部署前需先完成:
- GitHub 設定:repo → Settings → Pages,Source 選
Deploy from a branch,分支選gh-pages/(root)。 - 自訂網域:
public/CNAME已含policies.hexschool.io(build 時會複製到dist/,GitHub Pages 會自動讀取)。 - DNS(在 hexschool.io 的 DNS 服務商):新增一筆 CNAME 記錄
policies→<你的帳號或組織>.github.io,待解析生效後於 Pages 頁面勾選「Enforce HTTPS」。
public/CNAME、public/.nojekyll為部署所需,請勿刪除。 換網域時只要改src/site.config.js的siteUrl與public/CNAME兩處即可。
header 直接顯示 public/logo.svg,替換該檔即可(建議維持等比,高度約 30px 內顯示最佳)。
├── index.html
├── vite.config.js # 含 sitemap / robots 產生邏輯(路由由 products.config 推導)
├── public/
│ ├── logo.svg # header 顯示的品牌 logo
│ └── favicon.svg
├── src/
│ ├── main.js # ViteSSG 進入點;依 products.config 動態產生路由
│ ├── App.vue # 版面(header logo / footer)
│ ├── site.config.js # 站台層級設定(品牌、營運主體、siteUrl…)
│ ├── products.config.js # 產品註冊表(新增產品 / 文件的唯一入口)
│ ├── styles.css
│ ├── views/
│ │ ├── Home.vue # 首頁:列出所有產品
│ │ ├── ProductView.vue # 單一產品的文件總覽(/<slug>)
│ │ └── LegalView.vue # 文件頁(讀 markdown、設定 head)
│ └── content/ # 法律文字(依產品分資料夾)
│ └── discord/
│ ├── terms.zh-TW.md
│ ├── terms.en.md
│ ├── privacy.zh-TW.md
│ └── privacy.en.md