Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mindeng/notion-async

A notion sync tool, in `async` style.
https://github.com/mindeng/notion-async

notion notion-api notion-cli notion-client notion-sdk rust

Last synced: 25 days ago
JSON representation

A notion sync tool, in `async` style.

Awesome Lists containing this project

README

        

# notion-async

A notion sync tool, in `async` style.

![screenshot](images/screenshot.png)

## Usage

Just set the following environment variables (`.env` file is also supported):

- `NOTION_TOKEN`: Your notion integration token, can get from: [notion
integrations](https://www.notion.so/my-integrations)
- `NOTION_ROOT_ID`: The root notion page/database ID which you want to sync.
The tool will sync all children pages/databases/comments into a sqlite db
file, *recursively*. You can get the ID from any notion page/database link.

Then run `cargo run sync`, everything under the `NOTION_ROOT_ID` will be
synchronized into `notion.db` (can be changed by command line argument).

You can also set the token & id in the command line arguments, please refer to
the help message.

```
Usage: notion-async [OPTIONS]

Commands:
sync Sync all pages/databases/comments into db, recursively
help Print this message or the help of the given subcommand(s)

Options:
--token Notion integration token, can get from: https://www.notion.so/my-integrations. If it's not set, will read from env var NOTION_TOKEN
--db Sqlite database file path [default: notion.db]
-h, --help Print help
-V, --version Print version
```

## Roadmap

The features will be implemented one by one in order.

- [x] Basic notion async API (`notion-async-api` crate)
- [x] Sync into sqlite database
- [ ] Download files/images in notion pages
- [ ] Simple query
- [ ] Full-Text search
- [ ] Export as markdown files
- [ ] Dockerize