Jupyter Notebook 使用技巧及Markdown汇总

自己不定期会用它来做一些试验记录,每次用的时候都要去翻它的快捷方式和Markdown语法,因此摘要记录于此,以方便以后自己使用。

键盘快捷方式

  1. 整个Notebook也类似vim,分为编辑模式和命令模式。按ESC从编辑模式切换到命令模式,按Enter键则进入编辑模式。
  2. 整个Notebook采用搭积木的形式完成,每个积木块根据内容分为两类:代码块和文本块。代码块可以执行并显示结果,文本块则用来添加文本,它支持Markdown语法来格式化文本显示。
  3. 启动后默认是代码编辑模式 ,先按ESC退出编辑模式进入命令模式,再按M切换到文本编辑,再按Y则切换回代码编辑。 按Enter进入开始编辑,写完后按Ctrl+Enter就会执行代码或显示文本最终格式。
  4. 常用几个命令,B是切换到下一个逻辑块,A是上一个逻辑块。
  5. 数字1~6是将文本块编程heading1~6。
  6. C和V是复制粘贴, 按两下D是删除块,Z是撤销删除。

Markdown语法

下图是一个快速总结: https://commonmark.org/help/

这个到处都有,下面是我从这里(https://www.jianshu.com/p/191d1e21f7ed ) 复制过来的,来自简书网站,由于具体js处理不同,所以放到Juptyer notebook里的显示效果可能略有不同。

Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。

相比WYSIWYG编辑器

优点:
1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。
2、操作简单。比如:WYSIWYG编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可

缺点:
1、需要记一些语法(当然,是很简单。五分钟学会)。
2、有些平台不支持Markdown编辑模式。

还好,简书是支持Markdown编辑模式的。

一、标题

在想要设置为标题的文字前面加#来表示
一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。

注:标准语法一般在#后跟个空格再写文字,貌似简书不加空格也行。

示例:

# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

效果如下:

二、字体

  • 颜色

<font color=blue|red|green|pink|yellow>文本</font> 还可以和加粗叠加使用. Markdown本身不支持颜色,所以是否能显示颜色取决于服务器设置了。

  • 特殊形状字体

&#代码;  例如&#9635; 就可以打出字符 ▣。 可以叠加颜色等设置,比如 <font color=green>&#9654;<font> 就可以得到 ▶。

一个简单列表: https://www.w3schools.com/charsets/ref_utf_geometric.asp 

  • 加粗

要加粗的文字左右分别用两个*号包起来。 \*则会显示星号。

  • 斜体

要倾斜的文字左右分别用一个*号包起来

  • 斜体加粗

要倾斜和加粗的文字左右分别用三个*号包起来

  • 删除线

要加删除线的文字左右分别用两个~~号包起来

  • 换行

句尾加两个空格, 或者加一个<br>

示例:

**这是加粗的文字**
*这是倾斜的文字*`
***这是斜体加粗的文字***
~~这是加删除线的文字~~

效果如下:

这是加粗的文字
这是倾斜的文字
这是斜体加粗的文字
这是加删除线的文字

三、引用

在引用的文字前加>即可。引用也可以嵌套,如加两个>>三个>>>
n个...
貌似可以一直加下去,但没神马卵用

示例:

>这是引用的内容
>>这是引用的内容
>>>>>>>>>>这是引用的内容

效果如下:

四、分割线

三个或者三个以上的 - 或者 * 都可以。

示例:

---
----
***
*****

效果如下:
可以看到,显示效果是一样的。

五、图片

语法:

![图片alt](图片地址 ''图片title'')

图片alt就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加

示例:

![blockchain](https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/
u=702257389,1274025419&fm=27&gp=0.jpg "区块链")

效果如下:

上传本地图片直接点击导航栏的图片标志,选择图片即可

六、超链接

语法:

[超链接名](超链接地址 "超链接title")
title可加可不加

示例:

[简书](http://jianshu.com)
[百度](http://baidu.com)

效果如下:

简书
百度

注:1. Jupyter notebook里还支持页面内跳转。先在某个 section开头加个链接

<a id='section_id'></a>

然后在别的section里使用 [链接文字] (#section_id) 就可以了。

2. Markdown本身语法不支持链接在新页面中打开,貌似简书做了处理,是可以的。别的平台可能就不行了,如果想要在新页面中打开的话可以用html语言的a标签代替。

<a href="超链接地址" target="_blank">超链接名</a>

示例
<a href="https://www.jianshu.com/u/1f5ac0cf6a8b" target="_blank">简书</a>

七、列表

  • 无序列表

语法:
无序列表用 - + * 任何一种都可以

- 列表内容
+ 列表内容
* 列表内容

注意:- + * 跟内容之间都要有一个空格。 最后面加一个空行来结束此列表

效果如下:

  • 列表内容
  • 列表内容
  • 列表内容
  • 有序列表

语法:
数字后加个点或右括号

1.列表内容
2.列表内容
3.列表内容

注意:序号跟内容之间要有空格

效果如下:

1.列表内容
2.列表内容
3.列表内容

  • 列表嵌套

上一级和下一级之间敲三个空格或一个tab键即可

  • 一级无序列表内容

    • 二级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
  • 一级无序列表内容

    1. 二级有序列表内容
    2. 二级有序列表内容
    3. 二级有序列表内容
  1. 一级有序列表内容

    • 二级无序列表内容
    • 二级无序列表内容
    • 二级无序列表内容
  2. 一级有序列表内容

    1. 二级有序列表内容
    2. 二级有序列表内容
    3. 二级有序列表内容

八、表格

语法:

表头|表头|表头
---|:--:|---:
内容|内容|内容
内容|内容|内容

第二行分割表头和内容。
- 有一个就行,为了对齐,多加了几个
文字默认居左
-两边加:表示文字居中
-右边加:表示文字居右
注:原生的语法两边都要用 | 包起来。此处省略

示例:

姓名|技能|排行
--|:--:|--:
刘备|哭|大哥
关羽|打|二哥
张飞|骂|三弟

效果如下:

姓名 技能 排行
刘备 大哥
关羽 二哥
张飞 三弟

九、代码

语法:
单行代码:代码之间分别用一个反引号包起来, 这个是键盘上介于ESC和TAB键之间的那个键(数字1键左边)

    `代码内容`

代码块:代码之间分别用三个反引号包起来,且两边的反引号单独占一行

```
  代码...
  代码...
  代码...
```

示例:

单行代码

`create database hero;`

代码块

```
    function fun(){
         echo "这是一句非常牛逼的代码";
    }
    fun();
```

效果如下:

单行代码

create database hero;

代码块

function fun(){
  echo "这是一句非常牛逼的代码";
}
fun();

十、流程图

这个需要特殊js支持,一般无用,直接导入图片就可以了,略掉。

```flow
st=>start: 开始
op=>operation: My Operation
cond=>condition: Yes or No?
e=>end
st->op->cond
cond(yes)->e
cond(no)->op
&```

效果如下: