[Elog 最佳实践] Notion + Elog + Hexo + GitHub Actions + Vercel 博客解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
1874w
V2EX    分享创造

[Elog 最佳实践] Notion + Elog + Hexo + GitHub Actions + Vercel 博客解决方案

  •  1
     
  •   1874w
    LetTTGACO 2023-11-19 11:08:30 +08:00 2485 次点击
    这是一个创建于 691 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Notion + Elog + Hexo + GitHub Actions + Vercel 博客解决方案

    博客工具

    博客搭建指南

    1. Fork 模板仓库

    点击 Fork 该模板仓库到个人 Github 账号仓库下并 clone 到本地

    2. 安装依赖

    在项目根目录下运行命令安装依赖

    npm install 

    3. 新建 Elog 本地调试文件

    在项目根目录中复制.elog.example.env文件并改名为.elog.env,此文件将用于本地同步 Notion 文档

    4. 配置 Notion 关键信息

    按照文档提示配置 Notion 并获取 tokendatabaseId,在本地.elog.env中写入

    NOTION_TOKEN=获取的 token NOTION_DATABASE_ID=获取的 databaseId 

    5.本地调试

    在项目根目录运行同步命令

    npm run sync:local 

    6.启动 Hexo

    在项目根目录运行 hexo 启动命令,会自动打开本地博客

    npm run server 

    7. 配置 Hexo 博客

    根据 Hexo 文档和 Butterfly 主题配置文档,配置你的博客直到你满意为主,你也可以换别的主题,这里不做演示

    8. 提交代码到 github

    本地访问没问题直接提交所有文件到 Github 仓库即可

    9. 部署到 Vercel

    注册 Vercel 账号并绑定 Github ,在 Vercel 导入 该项目,Vercel 会自动识别出该 Hexo 项目,不需要改动,直接选择 Deploy 部署。部署完成会有一个 Vercel 临时域名,你也可以绑定自己的域名。

    Untitled.png

    Untitled.png

    10. 配置 Github Actions 权限

    在 Github 仓库的设置中找到 Actions-General,打开流水线写入权限Workflow permissions

    Untitled.png

    11. 配置环境变量

    在本地运行时,用的是.elog.env文件中定义的 Notion 账号信息,而在 Github Actions 时,需要提前配置环境变量。

    在 Github 仓库的设置中找到 Secrets and variables,新增仓库的环境变量NOTION_DATABASE_IDNOTION_TOKEN.elog.env保持一致即可

    Untitled.png

    12. 自动化部署

    当在 Notion 中改动文档后,手动/自动触发 Github Actions 流水线,会重新从 Notion 增量拉取文档,自动提交代码到 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 

    自动触发

    可在 Notion 中结合 Slack 触发,参考教程,这里就不做进一步演示了

    自定义 Elog 配置

    如果想自定义 Elog 配置,可访问 Elog 文档

    博客示例

    示例仓库:https://github.com/LetTTGACO/notion-hexo

    示例 Notion 数据库:elog-hexo-template

    博客示例地址:https://notion-hexo.vercel.app

    Elog

    Elog Github: https://github.com/LetTTGACO/elog

    Elog 文档: https://elog.1874.cool

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3535 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 10:27 PVG 18:27 LAX 03:27 JFK 06:27
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86