使用ipython笔记本作为交互式标记编辑器

ipymd的Python项目详细描述


[![构建状态](https://travis-ci.org/rossant/ipymd.svg?branch=travis)"(https://travis ci.org/rossant/ipymd)
[![覆盖状态](https://coveralls.io/repos/rossant/ipymd/badge.svg)(https://coveralls.io/r/rossant/ipymd)

_键入":"markdown",
"source":[
"这是一些python代码:"
]
},
{
"cell-type":"code",
"outputs":[
{
"name":"stdout",
"output-type":"stream",
"text":[
"你好!\ n"
]
}
],
"来源":[
"打印(\"你好,世界!\"
]
}

]
}
````

这里有一些python代码:

``python
>;>;打印("你好,世界!")
你好,世界!
```


一个缺点是您会丢失提示号码和图像(目前)。


这在您编写技术文档、博客文章、书籍等时非常有用。

![图片](https://cloud.githubusercontent.com/assets/1942359/5570181/f656a484-8f7d-11e4-8ec2-558d022b13d3.png)

安装ipymd:

安装最新版本:

``shell
pip安装ipymd
``````

>或者,安装开发版本:

``shell
``pip安装git+https://github.com/rossant/ipymd
````

>2。**可选:**
与`.ipynb`文件交互:

``shell
pip安装jupyter ipython
````

与`.odt`文件交互:

``shell
``pip安装git+https://github.com/eea/odfpy
````

>3。打开"jupyter_notebook_config.py"。这里是如何找到它的:


```
jupyter notebook--generate config generate a default config file
jupyter--config dir找出配置文件的路径
```

4。在"jupyter_notebook_config.py"中添加以下内容:

``python
c.notebookapp.contents_manager_class='ipymd.ipymdcontentsmanager'
```

>5。现在,您可以打开笔记本中的".md"文件。



ipython笔记本


优点:

*非常适合交互执行代码*和*编写文本


缺点:

*`.ipynb不适合Git
*无法在文本编辑器中轻松编辑
*无法在GitHub的Web界面上轻松编辑



优点:

*编写代码和文本的简单ascii/unicode格式
*可以在文本编辑器中轻松编辑
*可以在GitHub的Web界面上轻松编辑
*Git友好

好的,降价,没有犯人!



文件
*协作者可以使用Github的Web界面处理降价文档。
*按照惯例,**笔记本代码单元**相当于**带有显式"python"语法突出显示的降价代码块**:

````
>;>打印("hello world")
hello world
``

***笔记本元数据**可以在[yaml]中指定(http://yaml.org/)
jekyll样式[前页](http://jekyllrb.com/docs/front matter/)文档开头的破折号

``标记
--
kernelspec:
名称:一些非本机内核
--

first cell content
````


以及
句点,例如创建幻灯片:

``降价
d是一个合适的替代品。

*可以用
三个破折号创建空元数据(即拆分标记单元格)。这在添加幻灯片注释或跳过的单元格时很有用。

``标记


--



`````

*前后转换不是严格的标识函数:
*标记中的额外换行被丢弃
*文本输出UT和标准输出合并为一个文本输出(首先是标准输出行,最后是输出行)



\

*重命名尚未工作(第4期)
*新笔记本尚未工作(第5期)
*当前仅支持NBFORMAT V4(iPython 3.0)



当前实现了以下格式,可以通过修改`~/.ipython/profile<;以>;/ipython-notebook配置文件py`:

*ipython-notebook(`.ipynb`)
*标记(`.md`)
*`c.ipymdcontentmanager.format='标记'`
*[o'reilly-atlas](http://odewahn.github.io/jupyter/1的发布工作流(`.md`带有用于代码和数学公式的特殊HTML标记)
*`c.ipymdcontentsManager.format='atlas`
*python(`.py`):代码单元格由双线分隔。markdown cells=python注释。[待办事项:这不起作用,请参阅28和31]
*opendocument(`.odt`)。您需要安装[odfpy开发版本](https://github.com/eea/odfpy/)。

这可以通过转换为中间格式来工作,中间格式基本上是一个笔记本单元格列表。

使用代码输入(仅限代码单元格)
*`output`:具有文本输出和stdout(仅限代码单元格)
*`source`:包含标记标记(仅限标记单元格)
*`metadata`:包含单元格(或笔记本)元数据的字典默认情况下,本机内核的笔记本元数据(通常是"python2"或
"python3")不会写入标记。由于ipymd还不支持其他
内核,这无关紧要,但是如果您想选择一个非本机
python内核作为ipymd的默认内核,并为另一个存储
`kernelspec`和`language\u info',则可以将其添加到您的
`ipython`笔记本配置中。y`文件:
*`c.ipymdcontentsmanager.default_kernel_name='python2'`

>或者,要始终记住所有笔记本级别的元数据:
*`c.ipymdcontentsmanager.verbose_metadata=true`

通过从"basemarkdownreader"或"markdownreader"派生的ed from/to markdown(与writer一起使用)。看看"ipymd/formats/markdown.py"。

\f.read(contents)`:从"contents"字符串中生成ipymd单元格
*创建实现以下功能的"myformatwriter"类:
*`self.write(cell)`:附加ipymd单元格
*(可选)`self.write_notebook_metadata(cell)`:编写笔记本
元数据字典
*`self.coentents`:以字符串形式返回内容

*若要激活此格式,请在笔记本启动时调用它(不在内核中!),可能在"ipython_notebook_config.py"中:

``python
from ipymd import format_manager
format_manager()。注册(
name='my_format',
reader=myformatreader,
writer=myformatwriter,
file_extension='.md',\_输入'text',或json

```

*现在可以转换内容:`ipymd.convert(内容,从'notebook',转换为'my_format')`或任何其他组合。

`文件。
*将reader和writer类以及顶级变量放在其中:

`` python
my format=dict(
reader=myformatreader,
writer=myformatwriter,
文件扩展名='.md',
文件类型='text',
````

*放在"setup.py"中,将此项添加到"入口点"中:

`` python

入口点={
‘ipymd.format’:[

‘myformat=myformat:myformat’,

]
}
````

>;请注意,"入口点"名称w我默认使用。如果你愿意的话,你可以重写它,但不要重复。

*在"ipymd/formats/tests"中添加一些单元测试。
*建议一个pr!

查看现有的格式实现以了解更多详细信息。



易于导入,例如"my format.py"或"myformat//uu init_uuu.py",添加:

``python
my_u format=dict(
reader=myformatreader,
writer=myformatwriter,
file_extension='.md',或其他任何文件就是你的"setup.py":

``python

入口点{
'ipymd.format':[
'my_format=myformat:my_format',
],
},

````

*在pypi上发布!
*您的用户现在可以"pip install my format",然后将其笔记本配置为使用名为"my_format"的格式。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接在一个屏幕上成功下载,在第二个屏幕上用几乎相同的代码获得错误   java调用super。超级的方法,跳过超级。方法   使用Web服务连接到sharepoint 2013的Java应用程序   java我无法正确呈现editText   httpurlconnection如何在java中检查url连接状态   java Spring Security可以为同一用户接受多个密码吗?   java如何在PreparedStatement中使用自动生成的@Id?   java每个数组表示一个位模式   java我不确定如何记录鼠标在某个区域被点击的次数   spring如何解决:java。lang.NoSuchMethodError:javax。坚持不懈实体管理器。createStoredProcedureQuery(Ljava/lang/String;)   java如何为blackberry中listfield项内的不同字段触发事件   安卓使用Proguard混淆java代码   java在grails 2中与多个数据源有一个和一个域关联。十、   java在尝试在单击按钮时返回combobox值时一直出错   java我可以在setter中使用@Resource注释而不是字段吗?   java Eclipse调试步进不工作   java比较相同对象的两个表并选择不同的表