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.

📜 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 browser, select "Add connections" and add your integration account.

  3. Find your base Page ID from 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 <PNG file path to export>

For instance,

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

graph_out.png would be generated at your specific path.

Specific Font Family

Matplotlib by default does not support displaying Unicode characters. To resolve this issue, specify your local font family by using -f:

python -m notion_graph -p 856391c93ae64bd1b7ebf699ca0cd861 -t secret_b8p7uLp3j3n95IDgofC9GviXP111Skx6NOt2d20U8e -o ./graph_out.png -f 'SimSun'

Importing as a Python Library

You can also import notion_graph as a library.

For instance, drawing your own diagram by matplotlib.

import notion_graph as ng
import networkx as nx
import matplotlib.pyplot as plt

my_ng = ng.NotionGraph(bearer_token="secret_b8p7uLp3j3n95IDgofC9GviXP111Skx6NOt2d20U8e")
graph = my_ng.parse(page_id="856391c93ae64bd1b7ebf699ca0cd861")
# graph is a networkx.classes.graph.Graph object

pos = nx.spring_layout(graph)
labels = nx.get_node_attributes(graph, 'title')
options = {
    "node_size": 50,
    "node_color": "tab:gray",
    "font_size": 10,
    "width": 0.5,
    "with_labels": True,
    "labels": labels
}

nx.draw(graph, pos, **options)
plt.show()
plt.savefig('./graph.png')

Testing Environment

The testing page is Notion-grap-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.png

🔗 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.1.3.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

notion_graph-0.1.3-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: notion-graph-0.1.3.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.6.1 CPython/3.11.1

File hashes

Hashes for notion-graph-0.1.3.tar.gz
Algorithm Hash digest
SHA256 d86a4aa9dff39fc3b980707a650cff61ea9f91868f3ecfa7765aa206c9650b18
MD5 a49d9e19355e1c1e82a4a6c6ea5b5f23
BLAKE2b-256 879ea087f46876c9d7da5fe9bc1b5fae94078e0cf9aca8a8fca938c2f8363130

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notion_graph-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f2a099c5b0e786543d68a833328996204db0e2f900c510d24fb7962fc6e4d843
MD5 a2da521589bfeddfe366118b7c0f7e6f
BLAKE2b-256 c31373ee5f3d41a31f00668f56d2251e87ef9945a75857f2a476c634d18f51ef

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