通过Elog同步Notion文章到Hexo博客
2026-03-30 15:55:00

前言

之前写博客,都是在Typora中手搓,再复制到Hexo中生成文章,而且还得手动将图片上传到 CloudFlare R2中,很麻烦。

通过Elog就可以将Notion文章自动同步到Hexo博客中,并可以自动上传图片,很nice。

本文仅记录完整步骤,具体详情请参考:Elog GithubElog Docs

一、安装及初始化Elog

1、在 Hexo博客根目录下,执行命令安装Elog

1
npm install @elog/cli -g

2、初始化Elog配置

1
elog init

3、执行完会在根目录下生成如下文件:

1
2
3
├── .elog.env // Elog用于本地调试时的环境变量配置
├── elog.cache.json // Elog的缓存文件,用于缓存上次同步的文件
├── elog.config.js // Elog的配置文件

4、将.elog.env文件加入.gitignore,防止密码等信息误提交

二、Notion中新建博客文章数据库

1、新建文章数据库,新建一个新页面,然后在页面里点击数据库

image.png

2、点击新建空白数据库

image.png

3、添加表头:title、categories、tags、description等,具体参考Hexo的FrontMatter配置文档 或者自己Hexo主题对应的FrontMatter配置文档。

image.png

三、Notion中生成集成令牌

1、点击左上角三点,找到管理连接页面。

image.png

2、进入开发和管理集成网页

image.png

3、新建集成

image.png

image.png

4、配置集成设置,在访问权限中,添加权限给之前新建好的博客文章数据库。

image.png

image.png

5、完成配置,复制好内部集成密钥。

image.png

6、拷贝博客文章数据库的链接,复制出数据库ID,格式类似如下:https://www.notion.so/aaaa?v=bbbb&source=copy_link,其中aaaa就是数据库ID了。

image.png

四、Elog配置Notion密钥及数据库ID

1、 在.elog.env配置上面步骤里拿到的Notion密钥及数据库ID

image.png

五、Elog配置CloudFlare R2图床

1、安装图床插件

1
npm install @elog/plugin-img-r2

2、在.elog.env中配置R2密钥、桶等相关信息

image.png

六、elog.config.js 配置

1、这里贴下我的全部配置,具体解释可参考 Elog Doc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const r2 = require('@elog/plugin-img-r2')

module.exports = {
write: {
platform: 'notion',
notion: {
token: process.env.NOTION_TOKEN,
databaseId: process.env.NOTION_DATABASE_ID,
filter: { property: 'status', select: { equals: '已发布' }}
}
},
deploy: {
platform: 'local',
local: {
outputDir: './source/_posts',
filename: 'title',
format: 'markdown',
frontMatter: {
enable: true,
include: ['categories', 'tags', 'title', 'date', 'updated', 'permalink', 'cover', 'description']
},
// formatExt: './format-image.js',
}
},
image: {
enable: true,
plugin: r2,
r2: {
accessKeyId: process.env.R2_ACCESSKEYID,
secretAccessKey: process.env.R2_SECRET_ACCESSKEY,
bucket: process.env.R2_BUCKET,
endpoint: process.env.R2_ENDPOINT,
host: process.env.R2_HOST
}
},
}

七、开始使用

1、在Notion数据库中写好文章,填好相关信息,将 status 改为已发布。

image.png

2、回到Hexo根目录,执行如下命令,开始同步文章

1
elog sync -e .elog.env

后记

还可以通过持续集成,完成自动化部署,后面再研究及实现下。

上一页
2026-03-30 15:55:00
下一页