Skip to main content

Markdown to Jupyter Notebook converter.

Project description

md2ipynb

Markdown to Jupyter Notebook converter.

Setup

[optional] Virtual environment

Make sure you have virtualenv installed.

pip install -U virtualenv

Create and activate a new virtualenv.

python -m virtualenv env
source env/bin/activate

Note: Once you are all done, you can deactivate it by running deactivate.

Installation

The easiest way to install is through pip.

pip install -U md2ipynb

Example data

Now, to get some example data, we'll clone the repository.

# Clone the repository just to have access to the examples.
git clone git@github.com:davidcavazos/md2ipynb.git
cd md2ipynb

Note: If you make modifications to the source code and want to use that, you can install it in "editable" (development) mode.

pip install -e .

For more information, see the Contribution guide.

Installing the md2ipynb module will also install the md2ipynb command line tool. For custom preprocessing steps or integration with Python scripts, it is also available by importing the md2ipynb module from any Python script.

Minimal example

Here is a minimal example on how to convert a Markdown file. By default, the output is printed into stdout.

md2ipynb examples/pages/hello.md

You can also specify an output path with the -o or --output option.

md2ipynb examples/pages/hello.md -o examples/notebooks/hello.ipynb

Here is the generated notebook on Colab and GitHub.

Run in Colab View on GitHub

Example

Here is a more complete example on specifying an output path, import sections, variables, as well as more metadata for a Colab visualization.

md2ipynb examples/pages/hello.md \
    -o examples/notebooks/hello.ipynb \
    --imports examples/templates/license.md:0 \
              examples/templates/setup-py.md:1 \
              examples/templates/cleanup.md:-2 \
    --var package=md2ipynb \
          end_message="You're all done 🎉🎉" \
    --notebook-title 'Hello md2ipynb!' \
    --docs-url https://github.com/davidcavazos/md2ipynb \
    --docs-logo-url https://www.tensorflow.org/images/GitHub-Mark-32px.png \
    --github-ipynb-url https://github.com/davidcavazos/md2ipynb/blob/master/examples/notebooks/hello.ipynb

Note: For more information on the available options, run md2ipynb --help.

Here is the generated notebook on Colab and GitHub. Note that since we specified the --github-ipynb-url, there is now an "Open in Colab" button in the GitHub ipynb file.

Run in Colab View on GitHub

Python example

The following example shows how to use md2ipynb as a Python module. This example shows how to specify custom preprocessing steps, import sections, use variables, as well as more metadata for a Colab visualization.

import md2ipynb

def add_separators(paragraphs):
  for p in paragraphs:
    yield '---'
    yield p
  yield '---'

def replace(paragraphs, old, new):
  for p in paragraphs:
    yield p.replace(old, new)

# Create a new IPython notebook.
notebook = md2ipynb.new_notebook(
    input_file='examples/pages/hello.md',
    imports={
        0: ['examples/templates/license.md'],
        1: ['examples/templates/setup-py.md'],
        -1: ['examples/templates/cleanup.md'],
    },
    variables={
        'package': 'md2ipynb',
        'end_message': "You're all done 🎉🎉",
    },
    notebook_title='Hello md2ipynb!',
    docs_url='https://github.com/davidcavazos/md2ipynb',
    docs_logo_url='https://www.tensorflow.org/images/GitHub-Mark-32px.png',
    github_ipynb_url='https://github.com/davidcavazos/md2ipynb/blob/master/examples/notebooks/hello.ipynb',

    # Additional steps can be run in the order specified.
    # If the generator receives multiple arguments, they can be passed as a tuple.
    steps=[
        add_separators,
        (replace, 'Hello', 'Hi'),
    ],
)

# Write the notebook to a file.
import nbformat

with open('examples/notebooks/hello-custom.ipynb', 'w') as f:
  nbformat.write(notebook, f)

Here is the generated notebook on Colab and GitHub.

Run in Colab View on GitHub

Contributing

Contributions are welcome! For instructions on how to contribute, please check the Contribution guide.

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

md2ipynb-0.1.4.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

md2ipynb-0.1.4-py3-none-any.whl (40.3 kB view details)

Uploaded Python 3

File details

Details for the file md2ipynb-0.1.4.tar.gz.

File metadata

  • Download URL: md2ipynb-0.1.4.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for md2ipynb-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8df3280bfcd34e661814662c14eae9fa6178a0bebaa0e50be3ee6d921c1afc77
MD5 955d5ae594781179cb6faf45c85bba70
BLAKE2b-256 7c46918bb52f0c3134650b9a268503a3970c8ac615623441681a5f26d5e8c6d3

See more details on using hashes here.

File details

Details for the file md2ipynb-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: md2ipynb-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 40.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for md2ipynb-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 421688f59552621c0796bea984bcb9f7124918d3acca68f747319eb4e495677b
MD5 a0919c44d597b3387d7fffdbac0a6a75
BLAKE2b-256 2f53eb348847fcc3dd1b1d6c3f43f6831d54802aeb7a686ade4cf545e7583426

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