前言

本篇属于hexo博客搭建指南系列的V1.1,主要介绍了通过Elog,将notion内容同步到hexo博客的实现过程,整个博客搭建指南系列详见:Hexo博客搭建指南:系统化方案与详细构建过程

整体流程:

  • 流程如下:

整体流程

说明:

  • 整个流程,主要包括三个阶段:准备阶段、notion 配置、hexo 博客本地配置
  • notion 配置,主要是建立 notion 数据库,并且让该数据库可以通过 token 访问和更新内容
  • hexo 本地博客配置,主要是完成 elog 初始化、配置实现 notion 和 hexo 连接

准备

1
2
3
4
5
#安装
npm install @elog/cli -g

#检查版本
elog --version

notion 配置

创建 Integration Token

notion官方:https://developers.notion.com/docs/create-a-notion-integration#create-your-integration-in-notion

进入integrations入口:https://www.notion.so/profile/integrations

流程如下:

创建 Integration Token流程

复制创建 notion 数据库

可参考elog-hexo-template 创建数据库副本或增加必要属性到已有 Notion 数据库

将数据库连接刚创建的 Integration

  • 点击右上角“…”,选择点击 connections,进一步选择前面设置的 token(例如:hexo-elog-token-en),然后点击确认/Confirm,则将当前数据库和 token 连接成功了。

将数据库连接刚创建的 Integration-process流程

记录 token 和数据库 ID

(1)记录 token

例如:

记录 token

(2)记录database的ID

例如:

记录 databaseID

hexo 博客本地配置

hexo项目中,初始化elog

1
2
# 初始化 elog 配置文件
npx @elog/cli init

配置 token和 databaseID

elog.env,配置 token和 databaseID截图

配置 token 和 databaseID

配置同步规则elog.config.js

elog.config.js中,配置同步规则:

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
module.exports = {
write: {
platform: 'notion',
notion: {
token: process.env.NOTION_TOKEN,
databaseId: process.env.NOTION_DATABASE_ID,
filter: true, // {property: 'status', select: {equals: '已发布'}}
frontMatter: {
enable: true, // 启用 Front Matter
include: ['title', 'categories', 'tags', 'description', 'status', 'cover','urlname','date'], // 包含的字段,deploy和write同时配置并保持一致
},
},
},
deploy: {
platform: 'local',
local: { //为了发布部署的内容
outputDir: './source/_posts/', // 发布到 Hexo 的 posts的目录
filename: 'title',
format: 'matter-markdown',
frontMatter: {
enable: true, // 启用 Front Matter
include: ['title', 'categories', 'tags', 'description', 'status','cover','urlname','date'], // 包含的字段,deploy和write同时配置并保持一致
},
},
},
}

执行同步

执行同步

1
npx @elog/cli sync -e .elog.env

同步结果,如果同步成功,则会显示同步完成,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
(base) $ npx @elog/cli sync -e .elog.env
环境变量 已指定读取env文件为:~/my-hexo-blog-en/.elog.env
全量更新 未获取到缓存,将全量更新文档
正在获取文档列表,请稍等...
文档总数 2
待下载数 2
开始下载文档...
下载文档 1/2 test
下载文档 2/2 Start my journey as an indie hacker
已下载数 2
生成文档 test.md
生成文档 Start my journey as an indie hacker.md
任务结束 同步完成!

预览博客

  • 本地预览博客,查看notion 内容同步到 hexo 博客的情况
  • 若满足需求,则可以部署到线上去;若有异常,则进一步针对性修改

日常运营

notion 同步内容优化

  • 同步单元格内的换行,使用 Markdown 格式添加:
    ,若直接在 notion 中进行换行,同步到 hexo 博客中,内容会跳转到第二行,而不是单元格内的换行。
  • 同步带标题的链接,先中notion 插入链接,格式为:URL,再编辑/Edit,手动定义链接的标题/title。
  • 同步带标题的图片,先中 notion 中插入图,再编辑 标题/caption,手动定义图片的标题caption。

notion+hexo 管理方法

  • 零散时间通过 notion 记录,定时通过 elog 批量同步,极大提升效率。

注意事项

  • 如果notion 中标题修改,notion 同步到 hexo 博客会重新生成一个 Markdown 文件,请及时清理原标题的 Markdown 文件。

结语

通过以上配置,成功实现了Notion内容的快速同步到Hexo博客。这一过程不仅提高了内容管理的效率,也为博客增添了更多灵活性和便利性。

在实际使用过程中,我们将不断精细化同步的细节,以满足不同需求和场景。请持续关注本文的更新,我们将定期发布新的技巧和最佳实践,帮助大家更好地利用Notion与Hexo进行内容管理。

参考

https://elog.1874.cool/

https://github.com/LetTTGACO/elog