跳转到主要内容

将markdown转换为IPython笔记本。

项目描述

Python 2/3和IPython 4 / Jupyter兼容!

将IPython笔记本转换为markdown(反之亦然)

notedown 是一个简单的工具,可以从markdown(和r-markdown)创建 IPython笔记本

notedown 将您的markdown分为代码和非代码。代码块(被围栏或缩进)放入输入单元,其余的放入markdown单元。

使用方法

notedown input.md > output.ipynb

安装

pip install notedown

或在github上的最新版本

pip install https://github.com/aaren/notedown/tarball/master

转换为markdown

将笔记本转换为markdown,删除所有输出

notedown input.ipynb --to markdown --strip > output.md

将笔记本转换为markdown,保留完整的输出JSON

notedown input.ipynb --to markdown > output_with_outputs.md

输出被放置在紧随对应的输入代码块之后的代码块中,作为JSON。 notedown 也理解这个约定,因此可以将这个带JSON的markdown转换回笔记本。

这意味着可以编辑markdown,转换为笔记本,玩一会儿,再转换回markdown。

注意:目前,在转换过程中不保留笔记本和单元元数据。

从markdown中删除输出单元

notedown with_output_cells.md --to markdown --strip > no_output_cells.md

运行IPython笔记本

notedown notebook.md --run > executed_notebook.ipynb

在浏览器中编辑 (新!)

您可以将IPython / Jupyter配置为无缝使用markdown作为其存储格式。将以下内容添加到您的配置文件中

c.NotebookApp.contents_manager_class = 'notedown.NotedownContentsManager'

现在您可以在浏览器中编辑markdown文件,执行代码,创建图形 - 所有这些都存储在markdown中!

对于Jupyter,您的配置文件是 jupyter_notebook_config.py,位于 ~/.jupyter。对于IPython,您的配置文件是 ipython_notebook_config.py,位于您的ipython配置文件中(可能是 ~/.ipython/profile_default

R-markdown

您还可以使用 notedown 将r-markdown也进行转换。我们需要告诉 notedown 使用 knitr 来转换r-markdown。这需要您安装了带有 knitr 的R。

将r-markdown转换为markdown

notedown input.Rmd --to markdown --knit > output.md

将r-markdown转换为IPython笔记本

notedown input.Rmd --knit > output.ipynb
  • --rmagic 将在笔记本开头添加 %load_ext rpy2.ipython,允许您使用 rmagic 扩展执行代码单元格(需要 rpy2)。notedown 会自动执行相应的 %R 单元格魔法。

魔法

用除 Python 之外的语言标注的代码块使用 IPython 的 %% 单元魔法 读取到单元格中。

您可以使用 --nomagic 禁用此功能。

  • --pre 允许您将任意代码添加到笔记本的开头。例如:notedown file.md --pre '%matplotlib inline' 'import numpy as np'

如何在 Markdown 中插入字面代码块?

通过使用 --match 参数。notedown 默认将 所有 代码块转换为代码单元格。可以通过为 --match 提供不同的参数来更改此行为。

  • --match=all:转换所有代码块(默认)

  • --match=fenced:仅转换有围栏的代码块

  • --match=language:仅转换有 'language' 作为语法指定符的有围栏代码块(或任何块属性成员)

  • --match=strict:仅转换包含 'python' 和 'input' 类的 Pandoc 风格属性代码块。即代码块必须如下所示

    ```{.python .input}
    code
    ```

这并不是非常交互式!

尝试使用 NotedownContentsManager(见上文)编辑 IPython Notebook 中的 Markdown。

您可以使用 vim-ipython 在 vim 中获取交互式 ipython 会话,它允许您连接到正在运行的 ipython 内核。您可以从 vim 向 ipython 发送代码,并从运行内核中获取代码补全。试试看!

我的语法高亮在哪里?

尝试使用 vim-markdownvim-pandoc。这两个插件都足够聪明,可以在 Markdown 中高亮代码。

在 Markdown 中渲染输出

这是实验性的!

将笔记本转换为 Markdown,将单元格输出渲染为原生 Markdown 元素

notedown input.ipynb --render

这意味着例如 png 输出将变为 ![](data-uri) 图像,并且文本将放置在文档中。

当然,您可以使用此功能与 runipy 一起使用,从 Markdown-with-code 生成 Markdown-with-code-and-figures

notedown input.md --run --render > output.md

没有看到笔记本!

--render 标志强制输出格式为 markdown。

待办事项

  • [x] Python 3 支持

  • [x] Unicode 支持

  • [x] IPython 3 支持

  • [x] IPython 4 (Jupyter) 支持

  • [ ] 允许指定内核

项目详情


下载文件

下载您平台上的文件。如果您不确定该选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

notedown-1.5.1.tar.gz (17.1 kB 查看哈希值)

上传时间 源代码

构建分发版

notedown-1.5.1-py3-none-any.whl (19.5 kB 查看哈希值)

上传时间 Python 3

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面