Markdown语法及笔记软件推荐

  1. 1. Markdown简介
    1. 1.1 什么是Markdown
    2. 1.2 为什么选择Markdown
    3. 1.3 如何使用Markdown
  2. 2. Markdown笔记软件推荐
    1. 2.1 笔记软件需求
    2. 2.2 笔记软件综评
    3. 2.3 Typora
      1. 2.3.1 简介
      2. 2.3.2 优缺点
      3. 2.3.3 使用说明
    4. 2.4 MarkText
      1. 2.4.1 简介
      2. 2.4.2 优缺点
      3. 2.4.3 使用说明
    5. 2.5 Tea
      1. 2.5.1 简介
      2. 2.5.2 优缺点
      3. 2.5.3 使用说明
    6. 2.6 Notable
      1. 2.6.1 简介
      2. 2.6.2 优缺点
      3. 2.6.3 使用说明
  3. 3. 使用Typora内置的Mermaid作图
    1. 3.1 Mermaid简介
    2. 3.2 具体作图语法
  4. 4. LaTeX的基本使用
    1. 4.1 LaTeX简介
    2. 4.2 LaTeX编译器和编辑器
      1. 4.2.1 LaTeX编译器
      2. 4.2.2 LaTeX编辑器
      3. 4.2.3 辅助输入LaTeX命令
  5. 5. 参考资料

1. Markdown简介

1.1 什么是Markdown

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

1.2 为什么选择Markdown

优点:

  • 使用简单的标记语法来控制格式(编写时控制格式方便快捷,便于复杂格式笔记的迁移)
  • 纯文本轻量级(任意一款文本编辑器都可查看编辑,打开速度很快,而且支持quicklook等工具预览)
  • 便于导出其他格式(配合pandoc可以一键导出pdf、html、word等格式,UI美观而且带书签)
  • 支持Web语法和LaTeX语法(如有需求,可以对样式进行精细的控制)
  • 支持代码高亮显示(非常适合写含有大量代码的技术博客)

缺点:

  • 图片等多媒体文件不好储存(放本地不便于分享,放图床里需要联网。建议放图床里,并且导出pdf格式笔记备份)
  • 渲染模式种类繁多,同一个文件用不同软件打开渲染结果都不同,而且有的软件缺乏对表格的渲染支持。

1.3 如何使用Markdown

Markdown基本语法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
大标题:# 空格
中标题:## 空格
小标题:### 空格
数字列表:1. 空格
普通列表:- 空格
引用:> 空格
Inline 代码:`代码`
代码片段:```语言名 回车
加粗:**加粗**
倾斜:*倾斜*
删除线:~~删除线~~
链接:[链接名](链接地址)
图片:![图片名](图片地址)
待办:- [ ] 空格 及 - [x] 空格

说明:Markdown还支持Web语法和LaTeX语法,可以对内容和格式进行精细控制,需要的话自行查找,这里就不赘述了。

2. Markdown笔记软件推荐

2.1 笔记软件需求

  • 渲染支持全面:编辑器UI好看、Markdown渲染好看、支持代码高亮、支持渲染表格和LaTeX数学公式。
  • 直接操作md文件:我有Nextcloud私有云盘自动备份,用它来解决跨平台支持问题,因此我希望能直接修改本地的md文件,而不依赖于软件本身,无需进行繁琐的导入导出。
  • 支持全局搜索、大纲视图:笔记攒多了找东西不方便,因此需要一个能够直接从全局定位到具体笔记内容的搜索功能。
  • 支持导出其他格式:为了适应不同场景的需求,需要导成其他格式,希望导出的结果好看且带书签。
  • 用户界面支持中文:用纯英文的编辑器对于一些英文不好的人来说会导致上手门槛增大。
  • 支持笔记加密:有些内容涉及隐私及不希望分享的笔记,最好是能够对其进行加密。
  • 开源软件:商业版软件未来会收费,而且也不能保证未来不作恶,开源软件就放心得多。

2.2 笔记软件综评

目前市面上只有Typora基本符合我的需求,其他软件各有一些痛点,只能根据个人需求,在心中的权重有所取舍,挑选出的软件如下:

  • 目前正在使用,各方面都比较出色的软件:Typora
  • 曾经使用过,但有一些痛点问题的软件:MarkTest、Tea、Notable
  • 下载体验过,感觉有些特色但不适合我的软件: Liandi、Sublime Text、Visual Studio Code、Joplin、Gridea
  • 强烈不推荐使用,没有任何特色的垃圾软件:Markdownpad2

2.3 Typora

2.3.1 简介

Typora是一款目前免费的商业版软件,官网:https://www.typora.io/

2.3.2 优缺点

优点:直接操作本地文件、全局搜索、所见即所得、导出支持全面且美观、特殊插入支持全面、可作为通用的md文件编辑器、文件大纲、格式自动补全、快捷键支持全面、支持渲染表格、支持图片自动上传、支持自定义主题

缺点:剪切和复制文本有时会出现跳转bug

2.3.3 使用说明

1)导出其他格式

  • 使用自带的导出功能即可(配合Pandoc可导出除pdf和html以外的格式、导出的pdf带书签)Pandoc官网

  • 可能存在“安装完之后,还是提示需要安装pandoc”的问题,此时可重新启动电脑,或者卸载Typora重新安装。

2)Typora快捷键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1、文本编辑
一级到六级标题:Ctrl+1,Ctrl+2,……,Ctrl+6
加粗、倾斜和下划线:Ctrl+B/I/U
删除线:Alt+Shift+5
居中:<center>文字</center>

2、插入
插入表格:Ctrl+T
插入图片:Ctrl+Shift+I
插入链接:Ctrl+K
按钮:<kbd>文字</kbd>
引用:输入>之后输入空格
代码块:Ctrl+Alt+F
无序列表:输入-之后输入空格
有序列表:输入数字+“.”之后输入空格
任务列表:-空格[空格]空格 文字

3、文档操作
全选:Ctrl+A
复制为Markdown:Ctrl+Shift+C
复制为纯文本:Ctrl+C
搜索:Ctrl+F
替换:Ctrl+H
撤销:Ctrl+Z
重做:Ctrl+Y
生成目录:输入[toc]之后回车

复制带格式的文本:Ctrl+A(全选)——Ctrl+Shift+C(复制为Markdown)

3)取消拼写检查

  • 文件——偏好设置——编辑器——拼写检查——不使用拼写检查

4)自定义主题

  • 主题获取:https://theme.typora.io/(有大量的开源主题可供选择)
  • 主题应用:将下载的css主题文件放到C:\Users\xxx\AppData\Roaming\Typora\themes目录里,重新打开Typora即可。

5)调整表格列宽

视图——勾选“源代码模式”,然后在调整列宽的标题栏里加若干空格符&nbsp;

一个更加优雅的方法则是使用空的 <img> 标签。例如:

1
2
3
| a | b | c |
|---|---|---|
| 1 | <img width=200/> | 3 |

另注:长文本需要指定列宽,控制换行

可以使用 <div style="width:[长度]">[单元格文本]</div> 的形式,长度单位可以是 pt , px, cm等,例如:

1
2
3
| a | b | d |
|---|---|---|
| 1 | <div style="width: 150pt">very very very very very long long long long long text</div>| 3 |

2.4 MarkText

2.4.1 简介

MarkText是一款开源软件,项目地址:https://github.com/marktext/marktext

2.4.2 优缺点

优点:直接操作本地文件、全局搜索替换、UI和渲染好看、所见即所得、字数段落统计、大纲视图、支持渲染表格、支持导出pdf和html

缺点:英文软件界面、快捷键插入不方便、Bug太多、不支持自动更新版本

2.4.3 使用说明

该软件刚下载完打开什么都没有,并不适合我用,以下根据个人喜好进行调整:

调整用户设置:

  • Step1:把侧边栏和标签栏调出,并进入用户设置界面(View勾选Toggle Side Bar和Toggle Tab Bar,然后File——Preferences)
  • Step2:设置General(自动保存:开启Automatically save the content being edited;软件开启打开默认目录:选择Open a default directory,然后设置路径)
  • Step3:设置Editor(设置编辑器宽度:最底下设置为150%)
  • Step4:设置Theme(黑暗主题:Theme选择Dark)
  • Step5:设置Image(设置插入图片后的动作:选择Insert absolute or relative path of image并设置存储路径)

2.5 Tea

2.5.1 简介

Tea是一款目前免费的商业版软件,官网:https://haocha.co/

2.5.2 优缺点

优点:UI和渲染超级好看、支持插件增强功能(大纲视图、机械键盘、树状文件夹、Markdown编辑)、所见即所得、速记便签功能、支持文内搜索、便于查看快捷键、格式自动补全

缺点:不是直接操作本地文件、导入导出不方便、不支持渲染表格、Bug太多、非开源软件

目前我已使用的插件存在以下Bug,未修复前不建议使用。

  • Dracula主题插件:开启会导致速记功能看不到文字
  • 炸裂模式插件:开启有时会导致Markdown语法不解析
  • 备份到本地插件:备份出来的文件内容全都一样,数据丢失

2.5.3 使用说明

安装时会遇到如下问题:点“更多信息——仍要运行”即可

1
Windows Defender SmartScreen 已阻止启动一个未识别的应用。运行此应用可能会导致你的电脑存在安全风险。

2.6 Notable

2.6.1 简介

Notable是一款开源软件,项目地址:https://github.com/notable/notable

2.6.2 优缺点

优点:直接操作本地文件、添加附件、链接分享、支持渲染表格

缺点:不支持全文搜索、所见与所得分离、不支持格式自动填充、快捷键支持少、更新弹窗、英文软件界面

2.6.3 使用说明

详见软件内置的help

1
2
3
4
5
生成的分享链接(24h后失效)
https://echo.notable.md/[ID]

如果您想立即删除一个已经共享的笔记,只需加载以下网址(替换[ID]为实际ID)即可:
https://echo.notable.md/delete/[ID]

3. 使用Typora内置的Mermaid作图

3.1 Mermaid简介

Mermaid 是一种简单的类似 Markdown 的脚本语言,通过 JavaScript 编程语言,将文本转换为图片。因此,真正实现画图功能的并不是 Typora 本身,它只是内置了对 Mermaid 的支持。

Mermaid 官方有一个在线的工具,我们也可以用它进行绘制,并支持多种格式的导出:Mermaid live editor

Mermaid 支持绘制非常多种类的图,常见的有时序图、流程图、类图、甘特图等。在 Typora 中,输入 ````mermaid` 然后敲击回车,即可初始化一张空白图。

3.2 具体作图语法

1)流程图

语法解释:graph 关键字就是声明一张流程图,TD 表示的是方向,这里的含义是 Top-Down 由上至下。

1
2
3
4
graph TD;
A-->B;
A-->C;
B-->D;

2)时序图

语法解释:->> 代表实线箭头,-->> 则代表虚线。

1
2
3
sequenceDiagram
Alice->>John: Hello John, how are you?
John-->>Alice: Great!

3)状态图

语法解释:[*] 表示开始或者结束,如果在箭头右边则表示结束。

1
2
3
stateDiagram
[*] --> s1
s1 --> [*]

4)类图

语法解释:<|-- 表示继承,+ 表示 public- 表示 private,学过 Java 的应该都知道。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
classDiagram
Animal <|-- Duck
Animal <|-- Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}

5)甘特图

甘特图一般用来表示项目的计划排期,目前在工作中经常会用到。

语法也非常简单,从上到下依次是图片标题、日期格式、项目、项目细分的任务。

1
2
3
4
5
6
7
8
9
gantt
title 工作计划
dateFormat YYYY-MM-DD
section Section
A task :a1, 2020-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2020-01-12 , 12d
another task : 24d

6)饼图

饼图使用 pie 表示,标题下面分别是区域名称及其百分比。

1
2
3
4
5
6
pie
title Key elements in Product X
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5

4. LaTeX的基本使用

4.1 LaTeX简介

  • LaTeX 是一种基于ΤΕΧ的排版系统,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。

  • 对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

4.2 LaTeX编译器和编辑器

4.2.1 LaTeX编译器

[1] 下载TeX Live(3.31GB)

官方下载地址:http://mirror.ctan.org/systems/texlive/Images/texlive2019.iso

身处中国大陆,下载速度很慢,建议使用清华大学镜像站or中国科技大学镜像站下载

[2] 安装TeX Live

使用压缩软件解压texlive2019.iso文件,打开install-tl-advanced.bat安装脚本,将TeX Live安装在你的系统中。

注:安装过程极慢,该干啥干啥去。

4.2.2 LaTeX编辑器

我最初使用LaTex的时候使用的是TeXstudio,个人感觉不是很好。现在推荐 Visual Studio Code + LaTeX Workshop扩展插件 的方案。

由于整理笔记的时候我电脑里已经没有了LaTex编译器的环境,就不具体演示了,下述配置方法是网上找的,未亲自尝试。

1
需将编译器配置到环境变量中(或者安装时选择添加到环境变量path),推荐安装TeXLive。Windows 上,Ctrl + Alt + B 编译,Ctrl + Alt + T PDF预览,Ctrl + 鼠标左键点击 PDF 反向定位到 tex 文本。

4.2.3 辅助输入LaTeX命令

初学者可能对LaTeX命令不太熟悉,可以借助一些工具辅助输入。但这只是一个过渡阶段,随着对LaTeX的熟悉,应越来越少地使用到。

在线工具:https://www.latexlive.com/(B站up主妈咪叔开发的LaTeX公式编辑器,可免费使用,这里还提供一份 LaTex帮助文档 ,可用于学习LaTex语法)

LaTeX公式编辑器

本地工具:MathType

安装MathType后直接使用, 并不能使公式转译为LaTeX命令, 还需要进行相应的设置。

FoxitReader_km5TSX7A4a

5. 参考资料

[1] 基于 Markdown 的笔记应用程序Notable from Github

[2] 一个简单优雅的 Markdown 编辑器MarkTest,适用于 Linux、macOS 和 Windows from Github

[3] 使用 Typora 画图(类图、流程图、时序图)from 知乎

[4] Markdown 技巧:如何改变表格宽度(列宽) from 知乎

[5] LaTeX的下载安装及简易使用_CSDN

[6] 一份其实很短的LaTeX入门文档_始终的个人博客

[7] LaTeX新人教程,一小时从完全陌生到基本入门_CSDN

[8] TeX Live 下载及安装说明_始终的个人博客

[9] 有哪些好的 LaTeX 编辑器 from 知乎