注意:2023/11/18 更新:由于语雀官方更新了账号密码登录规则,加上了人机校验,账号密码模式已无法通过 Elog 登录!目前只能使用
Token 方式同步文档(需要语雀超级会员)
如果你不是语雀超级会员,可以使用 Notion 进行部署文档站点,参考示例
VitePress 要求 Node 18 及以上版本
点击 Fork 该模板仓库到个人 Github 账号仓库下并 clone 到本地
在项目根目录下运行命令安装依赖
npm install
在项目根目录中复制.elog.example.env
文件并改名为.elog.env
,此文件将用于本地同步文档时使用
参考示例知识库
,选择或新建语雀文档知识库,并按照文档提示
配置语雀并获取 token login repo
。并在本地.elog.env
中写入
YUQUE_TOKEN=获取的 Token
YUQUE_LOGIN=获取的 login
YUQUE_REPO=获取的 repo
在项目根目录运行同步命令
npm run elog:sync-local
根据 VitePress 文档,配置你的文档站点直到你满意为止。
docs/.vitepress/config.mts
中的导航栏、路由信息等docs/index.md
中的文字和路由本文档默认是按照文档目录渲染站点 URL ,可能会存在中文路由,如果想要短路由模式,即站点路由全英文,可前往进阶配置 中阅读
在项目根目录运行 VitePress 启动命令,打开本地链接
npm run docs:dev
本地访问没问题直接提交所有文件到 Github 仓库即可
注册 Vercel 账号并绑定 Github ,在 Vercel 导入 该项目,Vercel 会自动识别出该 VitePress 项目,不需要改动,直接选择 Deploy 部署。部署完成会有一个 Vercel 临时域名,你也可以绑定自己的域名。
在 Github 仓库的设置中找到 Actions-General
,打开流水线写入权限Workflow permissions
在本地运行时,用的是.elog.env
文件中定义的语雀账号信息,而在 Github Actions 时,需要提前配置环境变量。
在 Github 仓库的设置中找到 Secrets and variables
,新增仓库的环境变量和.elog.env
保持一致即可
当在语雀中改动文档后,手动/自动触发 Github Actions 流水线,会重新从语雀增量拉取文档,自动提交代码到 Github 仓库。
Vercel 会实时监测仓库代码,当有新的提交时都会重新部署博客。如此就实现了自动化部署博客。
整个流程的关键点就在于:如何手动/自动触发 Github Actions 。
在项目.github/workflows/sync.yaml
中已经配置了外部 API 触发 Github Actions 事件,所以只需要调用 API 触发流水线即可。
为了方便,这里提供一个部署在 Vercel 的免费公用的ServerlessAPI,按照文档配置好 URL 参数并浏览器访问即可触发流水线
https://serverless-api-elog.vercel.app/api/github?user=xxx&repo=xxx&event_type=deploy&token=xxx
在语雀知识库 - 更多设置 - 消息推送中可配置语雀 webhooks ,填写上面的 Vercel Serverless API 。当文档更新时,语雀会调用这个 API 进行推送,进而触发 Github Actions
注意:语雀是国内文档平台,调用国外 Vercel 的服务可能会失败,可自行部署 API
注意:知识库配置了「自动发布」功能后,文档的 更新/发布 操作暂不会发送 webhooks
示例 Github 仓库:https://github.com/elog-x/yuque-vitepress
示例语雀知识库:https://www.yuque.com/1874w/yuque-vitepress-template
示例文档站点:https://yuque-vitepress.vercel.app
Elog Github: https://github.com/LetTTGACO/elog
Elog 文档: https://elog.1874.cool
1
ob 361 天前
强啊,能带搜索功能吗?
|
2
1874w OP @ob vitepress 感谢提醒
根据 vitepress 提供的文档,可以设置本地搜索,我已经添加到模版仓库 https://vitepress.dev/reference/default-theme-search#local-search |
3
1044523901 361 天前
不错 刚好想将 yuque 转出来~
|