Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yven/notion_blog
调用 Notion API 获取内容,输出为 Blog
https://github.com/yven/notion_blog
golang notion notion-blog
Last synced: about 2 months ago
JSON representation
调用 Notion API 获取内容,输出为 Blog
- Host: GitHub
- URL: https://github.com/yven/notion_blog
- Owner: Yven
- License: mit
- Created: 2024-06-12T03:44:45.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-06T04:05:16.000Z (about 2 months ago)
- Last Synced: 2024-11-06T04:26:58.299Z (about 2 months ago)
- Topics: golang, notion, notion-blog
- Language: Go
- Homepage:
- Size: 26.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Notion Blog
[![Build Status](https://img.shields.io/badge/notoin_blog-1.0-69cafd)](https://github.com/Yven/notion_blog)调用Notion API获取内容,导入到Typecho的文章数据库中,或导出页面为`.md`文件
## 特性
- [x] 调用Notion API获取页面内容
- [x] 写入到Typecho数据库中
- [x] 输出页面为Markdown
- [x] 使用Docker运行
- [x] 使用命令行调用
- [ ] 输出页面为HTML
- [ ] notion 库## 使用
### 1.配置参数1. 复制 `.env` 文件
```shell
cp env.example .env
```
2. 参考[官方文档](https://developers.notion.com/docs/create-a-notion-integration)创建 integration 并获取 Token,然后填入下面的 `NOTION_KEY` 中
3. 在你的文章 Database 中点击 share 然后 copy link 获取链接中的 `database_id`,如此形式:`https://www.notion.so/{name}/{database_id}?v={view_id}`
```
# 填入Notion Integration Token
NOTION_KEY=
# 填入database id
NOTION_DB_ID=
```
4. 填写你的 Typecho 数据库配置(如果需要,或导出为 md 文件)
```
# 以下为Typecho数据库的配置
BLOG_DB_HOST=
BLOG_DB_USER=
BLOG_DB_PASSWORD=
BLOG_DB_NAME=
BLOG_DB_CHARSET=
```
5. 默认将在每天早上 09:41 运行一次,可以在 `./crontab` 文件中添加或修改定时任务### 2.运行
**使用 Docker**
```shell
docker build . --tag notion_blogdocker run -d --name notion_blog notion_blog
```**使用 Docker Compose**
```shell
# 如果要连接到其他 docker-compose 项目中的数据库,注意对应修改 network 名称
docker-compose up -d
```**直接运行**
```shell
# 编译
go build main.go runner
# 添加权限
chmod +X ./runner# 参数:
# -l 日志目录
# -c 配置文件
# 运行
./runner -l ./logs -c .env
```## 开发
1. 在 `./plugin` 目录中新建子目录
2. 实现 `./notion/adapter.go` 中定义的接口 `ListWriter`
3. 在 `main.go` 中调用## TO DO
### Must
- [x] 重写 filter 调用方法
- [x] 写入到数据库可能出现的重复录入问题
- [x] 录入完成修改 notion 中的状态
- [ ] request 方法,是否需要创建一个 struct,避免每次请求都需要读取配置
- [ ] 图片处理方式
- [ ] plugin 开发方式
- [ ] 输出到文件,改为一个文章一个文件
- [ ] 没有日志就不创建日志输出文件
- [ ] filter 使用方法
- [ ] notion 改造为 go extension
### Maybe
- [ ] 重写 Log
- [ ] 注释文档补全
- [ ] 配置文件
- [ ] list/database 的 CURD 方法
- [ ] Debug 模式输出参考 json 结构## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.