Git Product home page Git Product logo

potion's Introduction

Potion

Potion is a reverse-engineered API for Notion. Write your content in Notion, and use Potion's hosted API endpoints to read your content.

I no longer maintain Potion, since the official Notion API has been released and is more stable than Notion’s internal API, which Potion relies on.

Guides

I've written a couple of blog posts on my website for using this API.

Endpoints

All endpoints are relative to the base URL: https://potion-api.now.sh

Responses are cached for 10 seconds, so it'll take up to 10 seconds for changes made in Notion to show up.

<notion-page-id> refers to the 32 character alphanumeric string in the URL of a Notion doc (but not a query parameter, so not the string after ?v=).

/table

Lists all entries in a full-page Notion table, along with additional details about each page.

The only query parameter is ?id=<notion-page-id>.

/table-description

Generates HTML for the description of a table.

The only query parameter is ?id=<notion-page-id>.

/html

Generates HTML for a given Notion page. You can insert it as the contents of a blog post, for example.

The only query parameter is ?id=<notion-page-id>, which can be obtained from the /table endpoint or just by copy-and-pasting from the URL.

Syntax Highlighting

Potion gives you syntax highlighting of Notion code blocks for free, when using the /html endpoint!

How to use syntax highlighting

You'll notice that the code block HTML that Potion returns is given CSS classes that make it compatible with Prism.js.

  1. Pick a theme you like from this README.
  2. Select the CSS file for that theme from this list and click View Raw.
  3. Include that stylesheet in the head of your HTML page to activate syntax highlighting. For example:
<link rel="stylesheet" href="https://unpkg.com/[email protected]/themes/prism-ghcolors.css" />

Language support

Potion supports syntax highlighting for most popular languages, and you can open an issue if you'd like to see a language supported that isn't currently.

Limitations

Most, but not all, of the common Notion blocks are supported at the moment:

  • Text
  • To-do List
  • Heading 1
  • Heading 2
  • Heading 3
  • Bulleted List
  • Numbered List
  • Toggle List
  • Quote
  • Divider
  • Link to Page
  • Callout
  • Image
  • Embed
  • Web Bookmark
  • Video
  • Audio
  • Code
  • File
  • Math Equation
  • Inline Equation

Development and Deployment

This project is built to be deployed on Vercel.

For local development, install Vercel's CLI and run vercel dev.

potion's People

Contributors

benborgers avatar dependabot[bot] avatar devorein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

potion's Issues

Missing Licence

Hello, I was wondering under what licence this code is provided. Thank you!

Include file names for files in a table

Hey there! Really like this project & have found it very helpful to create a simple CMS of sorts.

I just have one issue & that is that the api doesn't return file names, but rather just an array of URLs. For example here's an example notion page & this is potion's api response for it. It would be very helpful to provide the filenames in the response to show attachments on the client side for example.

I have a solution for it working locally it's just a small change in the api/table.js file, just wondering if this would be an ok PR. Especially because it is a breaking change to the table api.

Here is the change btw:

files.forEach((file) => {
  const s3Url = file[1][0][1]
  outputFiles.push({
    name: file[0],
    url: getAssetUrl(s3Url, page.value.id)
  })
})

instead of just pushing the url to output files.

Images from Notion are not loading

Images from Notion have just stopped loading.
image

It looks like Notion now requires some additional information to load images from their servers.
image

Video

Not really an issue just a question on how I might incorporate the video on Notion to my blog.
Until we have an API on Potion to use notion is there a way or idea of a way to have an iframe inserted in the code? Or envelop this into next js? Like embeding a youtube video? Just thinking out loud.....

All the best,

Jeremy

tweet embed

is there a way to add tweet embed functionality?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.