NodeJS script to execute & convert code blocks in markdown files to a JupyterLab Notebook.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
index.js
package-lock.json
package.json
test-python.ipynb
test-python.md

README.md

The Markdown to Jupyter Conversion tool (MTJC) is a fairly simple script that converts a markdown file with code blocks to the JSON format used by Jupyter to create Notebooks.

MTJC separates the provided markdown file into "cells", looking for headers and code blocks to split the content at. Each header and any following text, list, or whatever will be placed in the same block until either another header or a code block ("```") is encountered.

When a code block is encountered, it writes the code to a file in .temp (relative to the folder it is run in), passes it to the relevant program to run, and stores the result.

For demonstration purposes, here is a sample markdown file and the notebook output from the program as a result.

Limitations

  • Currently, this script can only process Python. I plan to change this, but as I have no use for any of the other possible languages myself, it is not high on my agenda.
  • This script assumes that all output from a Python script will be sent to stdout. It is not currently capable of processing image data such as the charts and graphs that Jupyter Notebooks are capable of displaying.
  • Code blocks are run individually. A variable set in one will not carry over to another. See issue #3 for progress.

Installation

Assuming that you have already installed npm, in the command line, type either one of the following:

NPM

npm install -g mtjc

From Source

git clone https://github.com/TheAndroidMaster/MarkdownToJupyter
cd MarkdownToJupyter
npm install

Usage

mtjc <file.md>

Or, to specify a path for the output file...

mtjc <file.md> <output.ipynb>