一个极简风格的静态文档系统
- 自动将 Markdown 渲染为 HTML
- 自动生成页面路由
- 提供侧边栏文档结构、页面目录与顶部操作区
- 全站白色背景,黑色文字与黑色按钮/边框
npm run build构建后输出到 dist/。
npm run dev本地开发模式,默认端口 4173,支持改动后自动重建。
docs/ # Markdown 文档源
public/assets/ # 样式与前端脚本
scripts/ # build/dev 入口
src/ # 文档系统核心实现
test/ # 基础单元测试
docs/index.md->/docs/guide/getting-started.md->/guide/getting-started/docs/reference/index.md->/reference/
每个文档文件建议按下面规范写,团队协作时最稳:
- 文件必须放在
docs/目录下,扩展名必须是.md。 - 页面必须有一个一级标题(
# 页面标题)。 - 建议在文件开头写 Frontmatter,至少包含
title和order。
示例:
---
title: 快速上手
order: 2
---
# 快速上手
## 安装
正文内容...说明:
title用于侧边栏和页面标题展示。order用于同分组内排序,数字越小越靠前。- 如果未写
title,系统会退化为“首个标题/文件名”作为标题。
支持 GitHub 风格提示块语法:
> [!NOTE]
> 你好也支持警告样式(会渲染为深色警告卡片):
> [!WARNING]
> 你好支持任务列表(Task List)语法:
- [x] 玩家链接协议
- [ ] Spigot插件支持
- [ ] TFL插件([旧版仓库](https://github.com/hekuo5310/TranforCpp))支持该语法会渲染为任务列表组件(task-list / task-list-item checked|pending),不是表单输入控件。
在 docs.config.mjs 中配置站点标题、输出目录和 Header:
export default {
siteName: "DocFlow 文档",
siteDescription: "DocFlow是由node开发的静态文档系统",
docsDir: "docs",
outDir: "dist",
base: process.env.DOCFLOW_BASE || "/",
header: {
sticky: true, // 是否固定在顶部
background: "solid", // solid | transparent | striped
logo: {
text: "DocFlow 文档", // logo 文本
link: "/", // 点击跳转
image: "", // 可选,logo 图片地址
alt: "DocFlow 文档"
},
rightButtons: [
{ text: "GitHub", link: "https://github.com/ZerexaNet/DocFlow", newTab: true },
{ text: "开始阅读", link: "/guide/getting-started/", style: "filled" } // style: outline | filled
]
},
i18n: {
enabled: true,
endpoint: "/api/translate",
upstreamEndpoint: "https://deepl.io.hk.cn/translate",
sourceLang: "zh",
defaultLang: "zh",
altCount: 2,
cache: true,
autoApplySaved: true,
languages: [
{ code: "zh", label: "简体中文" },
{ code: "en", label: "English" }
]
}
};用户切换语言后,前端会向 i18n.endpoint 发起 POST 请求。相关地址统一在 docs.config.mjs 配置:
i18n.endpoint:前端调用地址(默认/api/translate)i18n.upstreamEndpoint:开发服务器代理转发的上游地址(默认https://deepl.io.hk.cn/translate)
如果你把 i18n.endpoint 配成外部完整 URL,前端会直接请求该地址;如果使用默认 /api/translate,则由本地开发服务器代理到 i18n.upstreamEndpoint。
请求体字段:
text:要翻译的文本(必填)source_lang:源语言代码(可选)target_lang:目标语言代码(必填)alt_count:替代翻译数量(可选,最多 3)
系统会自动缓存翻译结果,并在用户下次访问时优先使用缓存。
npm test本项目是纯静态站点,构建产物为 dist/,可直接部署到 Vercel、Cloudflare、Netlify 和 GitHub Pages。
- 将仓库推送到 GitHub/GitLab/Bitbucket。
- 登录 Vercel 并导入该仓库。
- 在项目构建设置中填写:
- Install Command:
npm install - Build Command:
npm run build - Output Directory:
dist
- Install Command:
- 点击 Deploy,完成后即可获得线上地址。
npm i -g vercel
vercel
vercel --prod首次运行 vercel 时,按提示选择项目并确认:
- Build Command:
npm run build - Output Directory:
dist
- 登录 Cloudflare,进入
Workers & Pages。 - 选择
Create application->Pages-> 连接你的 Git 仓库。 - 构建配置填写:
- Framework preset:
None - Build command:
npm run build - Build output directory:
dist
- Framework preset:
- 点击 Save and Deploy,等待部署完成。
npm i -g wrangler
wrangler login
wrangler pages project create DocFlow
npm run build
wrangler pages deploy dist --project-name DocFlow建议使用 GitHub Actions 发布 dist/,步骤如下:
- 在仓库里新建文件
.github/workflows/deploy-pages.yml。 - 写入以下工作流:
name: Deploy GitHub Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
env:
DOCFLOW_BASE: /${{ github.event.repository.name }}/
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install dependencies
run: |
if [ -f package-lock.json ]; then
npm ci
else
npm install
fi
- name: Build docs
run: npm run build
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v4
with:
path: ./dist
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
permissions:
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4- 在 GitHub 仓库中进入
Settings -> Pages。 Source选择GitHub Actions。- 推送到
main分支后,等待工作流完成。
访问地址通常为:
- 用户/组织主页仓库:
https://<username>.github.io/ - 项目仓库:
https://<username>.github.io/<repo>/
说明:
- GitHub Pages 项目仓库通常是子路径(如
/DocFlow/),上面工作流已通过DOCFLOW_BASE自动处理。 - Cloudflare Pages / Netlify / Vercel 默认根路径部署,保持
DOCFLOW_BASE=/(或不设置)即可。
npm test
npm run build