convert_ipynb | R Documentation |
Read a Jupyter/IPython notebook file (‘.ipynb’) via
jsonlite::fromJSON()
, convert its code cells to R Markdown code
chunks, preserve Markdown cells, and write out the results to an Rmd file.
convert_ipynb(input, output = xfun::with_ext(input, "Rmd"))
input |
Path to the input ‘.ipynb’ file. |
output |
The output file path. |
This simple converter may have some rough edges, depending on how many
IPython-specific features are used in a notebook. For example, line magics
are not automatically converted (warnings will be issued if line magics are
detected), but you may consider using or writing R functions to replace them
in R Markdown (e.g., the %load
magic may be replaced by
reticulate::source_python()
). Cell magics will be converted to code
chunks with the (knitr) language engine names being the magic names.
For example, the cell magic %%js
is converted to ```{js}
in R Markdown. This does not always work because not all IPython cell magics
have their counterparts in knitr's language engines, but common cell
magics like %%bash
, %%sh
, %%js
,
%%perl
, %%python
, and %%ruby
should work.
The output file path (invisibly).
# this is not a real ipynb file, but illustrates what convert_ipynb() does
nb_data <- list(
cells = list(
list(cell_type = 'markdown', source = 'Hi **Markdown**!'),
list(cell_type = 'code', source = 'print("Hi R Markdown!")')
),
metadata = list(
kernelspec = list(language = 'python')
)
)
nb_file = tempfile(fileext = '.ipynb')
jsonlite::write_json(nb_data, nb_file, auto_unbox = TRUE, pretty = TRUE)
xfun::file_string(nb_file) # show file content
# convert to R Markdown
nb_rmd = rmarkdown:::convert_ipynb(nb_file)
xfun::file_string(nb_rmd)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.