Skip to main content

Generate a roam research like network graph view from your Notion pages.

Project description

Notion Graph View

github github github

Export Notion pages to a Roam-Research like graph view.

Buy Me A Coffee

📜 Usage

Environment

  • Python >= 3.9

Installing

pip install notion-graph

Notion API Setup

  1. Create a notion internal integration and generate an Internal Integration Token.

    👉 Learn more about authorization

  2. Open one notion page on the browser, select "Add connections" and add your integration account.

  3. Find your base Page ID from the browser URL, for example:

if page url is: https://www.notion.so/yourName/PageTitle-8a4b5ff100d648fb8d39d4bfa756ff3f, 8a4b5ff100da48fb8d39d4bfa756ff3f is the Page ID

Quickly Running

python -m notion_graph -p <Page ID> -t <Integration Token> -o <file path to export>

For instance,

python -m notion_graph -p 856391c93ae64bd1b7ebf699ca0cd861 -t secret_b8p7uLp3j3n95IDgofC9GviXP111Skx6NOt2d20U8e -o ./graph_out.html

graph_out.html would be generated at your specific path.

Importing as a Python Library

You can also import notion_graph as a library.

For instance, draw your diagram in Jupyter Notebook.

import notion_graph as ng

my_ng = ng.NotionGraph(bearer_token="secret_b8p7uLp3j3n95IDgofC9GviXP111Skx6NOt2d20U8e")
network = my_ng.parse(page_id="856391c93ae64bd1b7ebf699ca0cd861")
# `network` is a `pyvis.network.Network` object, see more attributes: https://pyvis.readthedocs.io/en/latest/documentation.html
network.repulsion(node_distance=200, spring_length=200)
# this line is for jupeter notebook only
network.prep_notebook()

network.show("graph.html")

Testing Environment

The testing page is Notion-graph-view-demo. You can duplicate the page to your Notion account and run the project to test if everything goes well.

Development Guide

This project's dependencies are managed by PDM.

brew install pdm
pdm install

Running the project by:

pdm run start -p <page_id> -t <notion_token> -o ./graph_out.html

🔗 Supported Links

database page
paragraph ✔️ ✔️
bulleted_list_item ✔️ ✔️
numbered_list_item ✔️ ✔️
to_do ✔️ ✔️
toggle ✔️ ✔️
child_page ✔️ ✔️
child_database ✔️ ✔️
embed
callout ✔️ ✔️
quote ✔️ ✔️
heading_1 ✔️ ✔️
heading_2 ✔️ ✔️
heading_3 ✔️ ✔️
column ✔️ ✔️
column_list ✔️ ✔️
synced_block
link_to_page ✔️ ✔️
table ✔️ ✔️
table_row ✔️ ✔️

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notion-graph-0.3.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

notion_graph-0.3.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file notion-graph-0.3.0.tar.gz.

File metadata

  • Download URL: notion-graph-0.3.0.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.15.0 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for notion-graph-0.3.0.tar.gz
Algorithm Hash digest
SHA256 64a9bc30b7f0ed10ec3178cd4117fb7305d2ad4a0619c0816f5395bd327552fe
MD5 e7c7553174039b2a1ba7c910bf1ebde8
BLAKE2b-256 837fa3fb0cc841e928cb534971c669cca8605059ce425a46cd2f2e6d1e6faf47

See more details on using hashes here.

File details

Details for the file notion_graph-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: notion_graph-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.15.0 CPython/3.10.12 Linux/5.15.146.1-microsoft-standard-WSL2

File hashes

Hashes for notion_graph-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5916384ec6897fa2e30934d53d036365b3267560b5d1579ed278258847453e4c
MD5 de51e860bccee1912c030c5c7497ff90
BLAKE2b-256 d920acb1390190e4da65fbf66b64cba191e94b018b17db17575b528a3160efb0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page