Skip to main content

Elm Magic provides IPython magic commands that execute elm-lang code

Project description

=========
Elm Magic
=========

:Author: Ali Rathore

Introduces a %%elm magic.

Compile and display Elm code in IPython and Jupyter notebooks

.. image:: https://raw.github.com/ali--/elm_magic/master/docs/screenshot1.png

.. image:: https://img.shields.io/pypi/v/elm_magic.svg
:target: https://pypi.python.org/pypi/elm_magic

.. image:: https://img.shields.io/travis/ali--/elm_magic.svg
:target: https://travis-ci.org/ali--/elm_magic

.. image:: https://readthedocs.org/projects/elm-magic/badge/?version=latest
:target: https://elm-magic.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status

.. image:: https://pyup.io/repos/github/ali--/elm_magic/shield.svg
:target: https://pyup.io/repos/github/ali--/elm_magic/
:alt: Updates

Elm Magic provides IPython magic commands that execute elm-lang code

SYNOPSYS
--------

.. code-block:: python

In [1]: %load_ext elm_magic

In [2]: %%elm
...: import Html exposing (text)
...: main =
...: text "Hello World"
Out[2]:
...: Hello World

In [3]: %%elm -i elm-lang/http elm-lang/mouse -w /tmp/myelmdir
...: <elm source code>

This magic will:
(1) use working dir as /tmp/myelmdir (or a new temporary dir)
(2) install elm-lang/http and elm-lang/mouse with elm-package install
(3) compile the cell input with elm-make
(4) display the cell output as html

The -r flag renders the cell contents with elm-static-html
The cell must look exactly like this:

.. code-block:: python

In [4]: %%elm -r
...: module Main exposing (..)
...: import Html exposing (text)
...: view =
...: text "Hello World"
Out[4]:
...: Hello World


USAGE
-----

Install using github::

git clone git@github.com:ali--/elm_magic.git
cd elm_magic
pip install -e .
..


If elm and nodejs are not installed, you can try::

elm_magic install --target <install-dir>

where <install-dir> is writable by the current user.
and in the user's PATH (e.g /usr/local/ or /opt/conda)

Load the magic extension in IPython or Jupyter::

%load_ext elm_magic

then start using the %%elm magic::

%%elm
... elm-lang code ...


CONFIGURATION
-------------

see or set configuration parameters::

%config ElmMagic

Features
--------

* provides %%elm magic that executes elm-lang and displayes the result
* can be used with any jupyter kernel
* directory used by elm-make is configurable
* provides cli for installing nodejs and elm

Credits
---------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.
Started with the help of https://github.com/abingham/jupyter-elm-kernel

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage

* Free software: GNU General Public License v3
* Documentation: https://elm-magic.readthedocs.io.




=======
History
=======

0.1.0 (2017-06-11)
------------------

* First release on PyPI.


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

elm_magic-0.1.0.tar.gz (62.7 kB view details)

Uploaded Source

Built Distribution

elm_magic-0.1.0-py2.py3-none-any.whl (9.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file elm_magic-0.1.0.tar.gz.

File metadata

  • Download URL: elm_magic-0.1.0.tar.gz
  • Upload date:
  • Size: 62.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for elm_magic-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6c2ba3367ef3e08dff13ef25e0ce639009cf046706eb1da38fbe4b9f852899a6
MD5 927f3b6479ec7c65dc73afff9d750e84
BLAKE2b-256 cfa7f6b6327eefc37fb1d0637f30ae793106990b68e164c835da90ae4511480f

See more details on using hashes here.

File details

Details for the file elm_magic-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for elm_magic-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e048a71ced6f976f1d3505009aa3425940bf10a2793277c313a737b51128c592
MD5 dba9c0056f7903d9f8d7eb8e78e90bce
BLAKE2b-256 d51dcc811e666186607d6518304de0a9d8b482d3e866e3d6ff4aa5c6e8e33b1a

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