Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Publish a Jupyter Notebook as a Medium blogpost

Project description

Jupyter to Medium

PyPI - License

Publish Jupyter Notebooks as Medium blog posts directly from your notebook with the help of jupyter_to_medium.

Target User

Do you ....

  • Publish blog posts on Medium?
  • Use Jupyter Notebooks to write the bulk of your post?
  • Dislike the time and effort it takes to transfer your posts from Jupyter to Medium?

If so, jupyter_to_medium will automate the process of taking your Jupyter Notebook as is and publishing it as a Medium post in almost no time at all saving huge amounts of time.

Motivation

I've published dozens of blog posts on Medium myself with all of them beginning as Jupyter Notebooks. Manually converting them to Medium posts was a fairly lengthy, painstaking process. One particularly painful process was inserting tables, which Medium does not support, into my posts. Nearly all of my posts contain numerous pandas DataFrames (such as this one, which has 40! DataFrames) which are represented as HTML tables within a notebook. I'd take screenshots of each one to insert them into my Medium posts.

Installation

pip install jupyter_to_medium

Automatically activated

You should be able to skip the next step, but if the extension is not showing up in your notebook, run the following command:

jupyter bundlerextension enable --py jupyter_to_medium._bundler --sys-prefix

Get an Integration Token from Medium

Before using this package, you must request an integration token from Medium by emailing them at yourfriends@medium.com allowing you to create a token in your Medium settings. You can read the entire instructions on how to get your integration token.

Creating the integration token

Once your request to create integration tokens is accepted, navigate to your Medium settings. Towards the bottom of the page exists the section on Integration Tokens. Enter a description for the token (jupyter_to_medium is a good choice) and then create the token.

Save your integration token

Once you have your integration token, create the folder and file .jupyter_to_medium/integration_token in your home directory and save the token there. If you don't save it, you'll need to access it every time you wish to make a new post.

Usage

There are three ways to publish notebooks:

  • Within an active notebook
  • Using a Python script
  • From the command line

Publishing to Medium within a Notebook

After installation, open the notebook you wish to publish and select the option File -> Deploy as -> Medium Post

png

A new browser tab will open with a short form that needs to be completed.

png

After clicking publish, the notebook and all images will be uploaded to Medium. Any HTML tables (such as pandas DataFrames) will be converted to images (via chrome), as Medium has no ability to represent tables. This is a time consuming process, so be prepared to wait. Check your terminal for updates. If successful, you'll get the following response with a link to view the post.

png

Click the link to view the post.

png

Finalize and publish on Medium

As of now, your post will be published as a draft. Review and publish the post on Medium.

Publishing to Medium with a Python Script

In a separate script/notebook import juptyer_to_medium as a module. Pass the publish function the location of the Jupyter Notebook you would like to publish as a Medium blog post

>>> import jupyter_to_medium as jtm
>>> jtm.publish('My Awesome Jupyter Notebook.ipynb',
                integration_token=None,
                pub_name=None,
                title=None,
                tags=None,
                publish_status='draft',
                notify_followers=False,
                license='all-rights-reserved',
                canonical_url=None,
                chrome_path=None,
                download_markdown=False)

If successful, JSON data will be returned as a dictionary with the URL.

Publishing to Medium from the Command Line

Upon installation, you'll have access to the command line program jupyter_to_medium with the same options as the above function.

jupyter_to_medium --pub-name="Dunder Data" "My Awesome Blog Post.ipynb"

Dependencies

  • nbconvert
  • requests
  • pillow (if you have HTML tables)
  • Google Chrome / Brave browser

Project details


Download files

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

Files for jupyter-to-medium, version 0.0.10
Filename, size File type Python version Upload date Hashes
Filename, size jupyter_to_medium-0.0.10-py3-none-any.whl (20.8 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size jupyter_to_medium-0.0.10.tar.gz (18.8 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page