Skip to content

dominiquegarmier/notion-graph

Repository files navigation

pre-commit.ci status

notion-graph

opensource graph view of your notion pages, inspired by Obsidian.

WARNING THIS IS STILL IN DEVELOPMENT

what currently works:

  • a simple flask server (see the gif below)
  • background parsing and auto updating (parses every X minutes automatically)
  • retrying logic (it hasn't crashed into an unrecoverable state for me yet)
  • partial updates (only parse pages that were edited since last parse)

notion-graph preview

Installing

Clone this repo.

git clone git@github.com:dominiquegarmier/notion-graph
cd notion-graph

Install dependencies.

virtualenv .venv -ppython3.10
source .venv/bin/activate
pip install -r requirements.txt

Setup

  • set the environment variable NOTION_KEY with your notion api key that has read access to some pages (see notion docs).

Usage

you can now run the following command to start notion-graph

python graph.py

This will automatically discover any page shared with your notion integration. Subsequently it will create a task queue to query every discovered page. The initial parse of your document might take a while as notions api is limited to three requests per second. You will notice that the programm will create a new folder data/ which contains the parsed pages and links. Subsequent parses will only refresh pages that have be edited since the last parse.

The graph view will be served on localhost:8080. Make sure to hit refresh when the parsing is done.

Development

Install dev-dependencies

pip install -r requirements-dev.txt

Install pre-commit hooks.

pre-commit install