A notion sync tool, in async
style.
Just set the following environment variables (.env
file is also supported):
NOTION_TOKEN
: Your notion integration token, can get from: notion integrationsNOTION_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] <COMMAND>
Commands:
sync Sync all pages/databases/comments into db, recursively
help Print this message or the help of the given subcommand(s)
Options:
--token <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 <FILE> Sqlite database file path [default: notion.db]
-h, --help Print help
-V, --version Print version
The features will be implemented one by one in order.
- Basic notion async API (
notion-async-api
crate) - Sync into sqlite database
- Download files/images in notion pages
- Simple query
- Full-Text search
- Export as markdown files
- Dockerize