简 介: 使用Convert IPython Notebooks to markdown (and back)中的downnote可以方便将IPYNB与Markdown格式进行转换。本文对于notedown软件的使用进行介绍和测试。但是如果使用notedown对于来自于CSDN的Markdown进行转换的时候,需要将CSDN中的Markdown多于的个数进行过滤。

关键词notedownipynbmarkdown

#mermaid-svg-mNyleOlJc8RRcRnZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ .error-icon{fill:#552222;}#mermaid-svg-mNyleOlJc8RRcRnZ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-mNyleOlJc8RRcRnZ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-mNyleOlJc8RRcRnZ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-mNyleOlJc8RRcRnZ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-mNyleOlJc8RRcRnZ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-mNyleOlJc8RRcRnZ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-mNyleOlJc8RRcRnZ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-mNyleOlJc8RRcRnZ .marker.cross{stroke:#333333;}#mermaid-svg-mNyleOlJc8RRcRnZ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-mNyleOlJc8RRcRnZ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ .cluster-label text{fill:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ .cluster-label span{color:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ .label text,#mermaid-svg-mNyleOlJc8RRcRnZ span{fill:#333;color:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ .node rect,#mermaid-svg-mNyleOlJc8RRcRnZ .node circle,#mermaid-svg-mNyleOlJc8RRcRnZ .node ellipse,#mermaid-svg-mNyleOlJc8RRcRnZ .node polygon,#mermaid-svg-mNyleOlJc8RRcRnZ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-mNyleOlJc8RRcRnZ .node .label{text-align:center;}#mermaid-svg-mNyleOlJc8RRcRnZ .node.clickable{cursor:pointer;}#mermaid-svg-mNyleOlJc8RRcRnZ .arrowheadPath{fill:#333333;}#mermaid-svg-mNyleOlJc8RRcRnZ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-mNyleOlJc8RRcRnZ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-mNyleOlJc8RRcRnZ .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-mNyleOlJc8RRcRnZ .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-mNyleOlJc8RRcRnZ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-mNyleOlJc8RRcRnZ .cluster text{fill:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ .cluster span{color:#333;}#mermaid-svg-mNyleOlJc8RRcRnZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-mNyleOlJc8RRcRnZ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

notedown软件
目 录
Contents
安装与使用
初步运行notedown
测试示例
IPYNB-Markdown
Markdown-IPYNB
总 结

§01 notedown软件


  Github上的 Convert IPython Notebooks to markdown (and back) 除了 notedown 软件包用于在 Ipython notebookMarkdown文档进行转换工具。

1.1 安装与使用

1.1.1 安装notedown

  • 直接安装:
pip install notedown
  • 安装Github最新版本:
pip install https://github.com/aaren/notedown/tarball/master

1.1.2 notedown应用

  应用的基本命令:

(1)Markdown→IPYNB

notedown input.md > output.ipynb

(2)IPYNB→Markdown

 Ⅰ.去除输出

  将IPYNB中的所有的输出去掉,其余部分存储在Markdown文档中:

notedown input.ipynb --to markdown --strip > output.md
 Ⅱ.带有输出

  下面是将notebook文档中的所有输出存储在输出JSON格式保持不变:

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

  之所以将Notebook的输出保存在 Markdown中JSON的格式中,是方便将来将该文档重新转换成Notebook的格式。也就是你可以在Markdown文档中进行编辑,再将其转换成IPYNB格式。 在Jupyter Notebook对于IPYNB文件稍微玩耍之后,还可以再次转换成Markdown文档。

  下面是将Markdown中的JSON格式的输出内容都去除。

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

1.1.3 运行Ipython

notedown notebook.md --run > executed_notebook.ipynb

  其它notedown的特性,请参见 Github上的原始文档 吧。

1.2 初步运行notedown

  在Windows命令窗口可以直接运行notedown命令。

▲ 图1.2.1 在Windows的Cmd命令窗口运行Notedown

  运行notedown对应的输出。

usage: notedown [-h] [-o [OUTPUT]] [--from {notebook,markdown}][--to {notebook,markdown}] [--run] [--timeout TIMEOUT][--strip] [--precode PRECODE [PRECODE ...]] [--knit [KNIT]][--rmagic] [--nomagic] [--render] [--template TEMPLATE][--match MATCH] [--examples] [--version] [--debug][input_file]Create an IPython notebook from markdown.positional arguments:input_file            markdown input file (default STDIN)optional arguments:-h, --help            show this help message and exit-o [OUTPUT], --output [OUTPUT]output file, (default STDOUT). If flag used but nofile given, use the name of the input file todetermine the output filename. This will OVERWRITE ifinput and output formats are the same.--from {notebook,markdown}format to convert from, defaults to markdown or fileextension--to {notebook,markdown}format to convert to, defaults to notebook or fileextension. Setting --render forces this to 'markdown'--run, --execute      run the notebook, executing the contents of each cell--timeout TIMEOUT     set the cell execution timeout (in seconds)--strip               strip output cells--precode PRECODE [PRECODE ...]additional code to place at the start of the notebook,e.g. --pre '%matplotlib inline' 'import numpy as np'--knit [KNIT]         pre-process the markdown with knitr. Default chunkoptions are 'eval=FALSE' but you can change this bypassing a string. Requires R in your path and knitrinstalled.--rmagic              autoload the rmagic extension. Synonym for --precode'%load_ext rpy2.ipython'--nomagic             disable code magic.--render              render outputs, forcing markdown output--template TEMPLATE   template file--match MATCH         determine kind of code blocks that get converted intocode cells. choose from 'all' (default), 'fenced','strict' or a specific language to match on--examples            show example usage--version             print version number--debug               show logging outputExample: notedown some_markdown.md > new_notebook.ipynb

§02 测试示例


  下面测试notedown软件转换的效果。

2.1 IPYNB→Markdown

  在 如何利用 nbconvert将 IPYNB文档转换 Markdown文档? 中利用 nbconvertipynb文档转换成markdown ,但是nbconvert在将来的ipython不再进行支持,所以利用notedown可以完成文档转换。

2.1.1 转换文档

  IPYNB文档来自于 飞桨AI Studio - 人工智能学习与实训社区 中的 基于自监督学习目标检测为标签生成 的main.ipynb文档。

notedown main.ipynb --to markdown >main1.md

  在本目录下生成了 main1.md。

(1)文件格式问题

  上述文档通过CSDN的 Markdown导入文档,可以看到存在一些问题,主要是图像引用出现问题。这是由于AI Studio中的图片在CSDN无法进行现实问题。

▲ 图2.1.1 图片引用出现了问题

2.2 Markdown→IPYNB

  命令格式:

notedown main.md >main11.ipynb

2.2.1 转换来自IPYNB的文档

  下面是把IPYNB文档通过nbconvert转换生成的Markdown重新转换成Markdown文档。

  转换生成对应的 main11.ipynb.

  将main11.ipynb文档导入BML Codelab环境打开,可以看到显示是正确的。

▲ 图2.2.1 将IPYNB文档导入BML CodeLab中

2.2.2 转换来自CSDN文档

  转换文档选择 CSDN上博文测试录制的电话拨码声音信号在发送过程中的问题 ,使用CSDN的导出,将其导出为“phone.md”,然后使用notedown将其进行转换。

notedown phone.md >phone.ipynb

  将生成的phone.ipynb导入到 BML Codelab中,使用其Notebook打开。可以看到:

  • Code Cell与Markdown文本可以很好地分开,包括原来Markdown中的格式修饰都显示正常;
  • 错误:原来在CSDN下的对于图片尺寸,居中显示修饰在Notebook无法适应;

▲ 图2.2.2 Notebook查看CSDN转换IPYNB文档

  因此,需要对于CSDN中多于的修饰的格式进行过滤,然后再使用notedown进行转换。

※ 总  结 ※


  使用Convert IPython Notebooks to markdown (and back)中的downnote可以方便将IPYNB与Markdown格式进行转换。本文对于notedown软件的使用进行介绍和测试。

  但是如果使用notedown对于来自于CSDN的Markdown进行转换的时候,需要将CSDN中的Markdown多于的个数进行过滤。


■ 相关文献链接:

  • Convert IPython Notebooks to markdown (and back)
  • notedown
  • Ipython notebook
  • 如何利用 nbconvert将 IPYNB文档转换 Markdown文档?
  • 飞桨AI Studio - 人工智能学习与实训社区
  • 测试录制的电话拨码声音信号在发送过程中的问题

● 相关图表链接:

  • 图1.2.1 在Windows的Cmd命令窗口运行Notedown
  • 图2.1.1 图片引用出现了问题
  • 图2.2.1 将IPYNB文档导入BML CodeLab中
  • 图2.2.2 Notebook查看CSDN转换IPYNB文档

如何利用 notedown 完成 ipynb与markdown之间的格式转换?相关推荐

  1. 数组和JSON之间的格式转换

    数组和JSON之间的格式转换 主要代码: const a = JSON.stringify(jsonStrings) //object转json const c = JSON.parse(a) //j ...

  2. Count,TPM,FPKM,CPM之间的格式转换——Count转TPM

    前一期讲到count转fpkm格式: Count,TPM,FPKM,CPM之间的格式转换--Count转FPKM_楷然教你学生信的博客-CSDN博客Count,TPM,FPKM,CPM之间的格式转换- ...

  3. 如何将mp3转换成html文件,如何利用格式工厂将视频转音频?视频格式转换成MP3的方法...

    如何利用格式工厂将视频转音频?很多在学舞蹈课程的用户表示视频中的音乐是自己想要的,但不知道怎么找这首歌,如果可以把视频转音频就可以省去寻找音乐的时间,这似乎看起来很难,其实格式工厂可以直接做到. 如何 ...

  4. Count,TPM,FPKM,CPM之间的格式转换——Count转FPKM

    前一期讲到fpkm转tpm格式,应很多粉丝要求,下面我们将数据清洗这一块的知识全部汇总,继续给大家讲解: 下面讲一下count转换为fpkm: ### 需求描述 RNA-seq read count转 ...

  5. Count,TPM,FPKM,CPM之间的格式转换——FPKM转TPM格式

    在做转录组分析,下载的数据有各种形式,比如count,FPKM,tpm.我今年2月份发表的一篇文章,小修审稿人提出FPKM过时了,建议我换成CPM. 我特地去pubmed查了查,发现CPM确实比FPK ...

  6. Count,TPM,FPKM,CPM之间的格式转换——Count转CPM

    首先下面是我之前发表的一篇文章收到的一个审稿人的意见: The overall logic is OK. However, RNAseq analysis based on FPKM or log(F ...

  7. 如何利用 nbconvert将 IPYNB文档转换 Markdown文档?

    简 介: IPYNB文件是现在基于IPython开发工程人员记录和分析处理算法和数据记录文档.将该文档转换成其它格式可以方便面进行思想共享,工作汇报等.利用 nbconvert可以很方便将ipynb的 ...

  8. 利用SecureCRT在linux与Windows之间传输文件

    From: http://blog.csdn.net/sungblog/article/details/7274716 利用SecureCRT在linux与Windows之间传输文件         ...

  9. 利用函数求任意两个数之间的和

    利用函数求任意两个数之间的和 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...

最新文章

  1. 从控制器到驱动器的WD——硬盘巨头启示录之西数篇
  2. 兼容ie浏览器的placeholder的几种方法
  3. 英语笔记:写作:Recreational activities
  4. 17 岁高中生独立开发全球疫情追踪网站火了!
  5. java数据结构之快速排序
  6. [UIKit学习]03.关于UILable
  7. css中关于居中的问题
  8. 细说BLUETOOTH 5 【4X 远距离】
  9. ubuntu18.04 桌面不定时crash重置问题
  10. LaTeX 格式、字母、符号、公式 (总结)
  11. vmware中linux启动项,VMWare虚拟机中安装Linux系统并启用
  12. 茶饮连锁门店数字化转型
  13. 基于STM32F4的智能门锁系统
  14. Python组合数据
  15. Qt QImage类详解(QImage类型转换、QImage类函数及QImage像素操作)
  16. kubernetes-v1.15.0安装【使用kubeadm部署Kubernetes-跳过国内网络问题】
  17. 基于SpringCloud微服务的服务平台搭建的一些总结
  18. 在Maven中出现Could not find artifact ...:pom:0.0.1-SNAPSHOT and ‘parent.relativePath‘的错误怎么解决?
  19. MATLAB m_map工具包的安装“三步走”
  20. 一个大屏掌握港口全部信息的数字孪生技术

热门文章

  1. python要点简要-一日精通python
  2. Docker视频发布
  3. AndEngine引擎学习之绘制直线
  4. 赵本山说日本车。(笑死不偿命)
  5. Windows程序员如何转向Linux开发应用?
  6. 可爱的MicrosoftAjax.js精简版(47K)
  7. Andrew Ng 深度学习课后测试记录-01-week2-答案
  8. 【APP接口开发】chrome浏览器DHC工具安装使用(亲测有效)
  9. Java-学习笔记-6-继承
  10. 从编程小白到全栈开发:基于框架开发服务端