通过长久不懈地寻找,我终于找到了一个符合我需求的笔记软件——Joplin,这软件的作者简直真的是在用爱发电,软件功能全面、开源免费、支持向自己的Webdav&Onedrive备份,同时还支持 Markdown 语法,多端同步,实在是不可多得的一个好软件,希望喜欢用的朋友去Github给作者加颗星星
Joplin GitHub地址: https://github.com/laurent22/joplin
为了能更好地使用这个笔记软件,我收集了一些常用的Markdown语法,放在下面,以供常用、常查、常记。语法的主要教程来自于菜鸟教程网站,这里也是一个学习程序语言的好去处。
Markdown语法的简介
首先说一下 Markdown 语法的来历和应用范围。Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式来编写文档,它能被使用来撰写电子书,在许多网站上得到了应用,比如 Github、简书 等。
Markdown语法的使用
Markdown语法的实现需要借助许多标点符号。
标题的语法
标题通常用 #+标题
来实现,每增加一个 #
代表增加一级标题
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
.....
以此类推
实现效果如下
Markdown段落与字体的格式
段落
通常Markdown段落的换行是使用两个以上空格加上回车。
不过在Joplin中直接回车换行即可。
字体
在Markdown中可用以下几种方式实现粗体、斜体或者粗斜体。
*斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
***粗斜体文本***
___粗斜体文本___
显示效果如下
*斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
***粗斜体文本***
___粗斜体文本___
各种线
Markdown 语法还可实现下划线、删除线、分隔线,需要注意的是要使用半角符号。
下划线语法
下划线需要在开头前使用<u>
,结尾前使用</u>
<u>下划线文本</u>
删除线语法
如果要添加删除线,只需要在文字的两端加上两个波浪线 ~~
即可
~~删除线文本~~
分隔线语法
可以在一行中用三个以上的星号、减号或底线来建立一个分隔线,这一行中不能有其他文本符号,但是可以在星号或是减号中间插入空格。以下几种方法都可以建立分隔线:
***
* * *
*****
- - -
----------
线型语法在 Joplin 中的应用
列表
Markdown支持几种列表的显示
无序列表语法
无序列表使用星号(*)、加号(+)或是减号(–)作为列表标记,在这些标记后面需要添加一个空格后再填写内容
* 条目一
* 条目二
* 条目三
+ 条目一
+ 条目二
+ 条目三
- 条目一
- 条目二
- 条目三
有序列表语法
有序列表语法的使用就是数字后加个 .
后再加空格进行分条
1. 条目一
2. 条目二
3. 条目三
嵌套列表
列表嵌套只需在子列表中的选项前面添加四个空格,并在 -
后再加空格
1. 条目一:
- 条目一嵌套的第一个元素
- 条目一嵌套的第二个元素
2. 条目二:
- 条目二嵌套的第一个元素
- 条目二嵌套的第二个元素
显示效果如下
区块
Markdown 区块引用是在段落开头使用 >
符号并在后面跟一个空格符号,接下来输入内容就是区块引用的形式了
> 区块引用
> 文本测试
> 好好学习
区块亦可嵌套,形式如下
> 第一层
>> 第二层
>>> 第三层
嵌套效果如下
链接
Markdown语法亦可引用链接,可以使用链接名称或者直接链接地址的方式
基本链接语法
#链接名称
[链接名称](链接地址)
#直接链接地址
<链接地址>
显示效果如下
高级链接语法
通过设置变量并在文章末尾为变量赋值实现
第一条使用"b"作为网址变量[baidu][b]
第二条使用"su"作为网址变量[suno][su]
接下来在文章的末尾为变量赋值
[b]: https://baidu.com
[su]: https://suno.su
显示效果如下
图片引用
Markdown 图片语法格式如下,开头一个叹号 ! ,然后接中括号,中括号中加图片的替代文字,接着一个括号,括号内加图片的网址,最后还可以用引号包住并加上选择性的 ‘title’ 属性的文字。
![alt 属性文本](图片地址)
![alt 属性文本](图片地址 "可选标题")
测试效果如下
表格制作
Markdown 语法甚至可以用来制作简易的表格,表格的制作主要用到
|
(分隔不同的单元格)和 – (分隔表头和其他行)两个符号,语法格式如下
| 表头 | 表头 |
| ---- | ---- |
| 单元格 | 单元格 |
| 单元格 | 单元格 |
在Joplin中的输出结果如下
同时还可以在表格中设置文字的对齐方式,不过在Joplin中似乎并不起作用,待我再试一试。
- -: 设置内容和标题栏居右对齐。
- :- 设置内容和标题栏居左对齐。
- :-: 设置内容和标题栏居中对齐。
实际输入可以参照如下示例
| 左对齐 | 右对齐 | 居中对齐 |
| :-----| ----: | :----: |
| 单元格 | 单元格 | 单元格 |
| 单元格 | 单元格 | 单元格 |
流程图、顺序图、甘特图等的制作
流程图
横向流程图
源码示例
```mermaid
graph LR
A[方形] -->B(圆角)
B --> C{条件a}
C -->|a=1| D[结果1]
C -->|a=2| E[结果2]
F[横向流程图]
```
结果如下
竖向流程图
源码示例
```mermaid
graph TD
A[方形] --> B(圆角)
B --> C{条件a}
C --> |a=1| D[结果1]
C --> |a=2| E[结果2]
F[竖向流程图]
```
结果如下
标准流程图
竖向源码示例
```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st->op->cond
cond(yes)->io->e
cond(no)->sub1(right)->op
```
经测试,Joplin尚不支持
横向源码示例
```flow
st=>start: 开始框
op=>operation: 处理框
cond=>condition: 判断框(是或否?)
sub1=>subroutine: 子流程
io=>inputoutput: 输入输出框
e=>end: 结束框
st(right)->op(right)->cond
cond(yes)->io(bottom)->e
cond(no)->sub1(right)->op
```
经测试,Joplin尚不支持
UML时序图
源码示例
```sequence
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象A->对象B: 你真的好吗?
```
经测试,Joplin尚不支持
UML时序图复杂源码示例
```sequence
Title: 标题:复杂使用
对象A->对象B: 对象B你好吗?(请求)
Note right of 对象B: 对象B的描述
Note left of 对象A: 对象A的描述(提示)
对象B-->对象A: 我很好(响应)
对象B->小三: 你好吗
小三-->>对象A: 对象B找我了
对象A->对象B: 你真的好吗?
Note over 小三,对象B: 我们是朋友
participant C
Note right of C: 没人陪我玩
```
经测试,Joplin尚不支持
UML标准时序图源码示例
```mermaid
%% 时序图例子,-> 直线,-->虚线,->>实线箭头
sequenceDiagram
participant 张三
participant 李四
张三->王五: 王五你好吗?
loop 健康检查
王五->王五: 与疾病战斗
end
Note right of 王五: 合理 食物 <br/>看医生...
李四-->>张三: 很好!
王五->李四: 你怎么样?
李四-->王五: 很好!
```
经测试,Joplin尚不支持
结束
Markdown 实在是一个简介高效的语法工具,Joplin亦为开源免费笔记中的佼佼者,二者的结合让用户的体验得到了极大的提升,希望此文可帮到和我一样想学习Markdown语法的同学,也希望Joplin这个项目可以长久不息地运作下去。
Joplin 在断手输入全角空格渲染不出来啊,直接就没了。
Joplin2.9.8
留言一下你未能成功渲染的具体内容吧,
才发现图床出了点问题,示例图片没有显示,刚刚已经补上。