Markdown
使用 Markdown 的经验
Markdown 概述
markdown 是一种轻量级的标记语言,作用是为了更方便的书写网络文档。
原理上文本标记会被 markdown 编辑器转换为 html 标签,例如在你想添加标题的文本前加入 #
内容就会被 <h1>
包含。
对于 WEB 开发者,甚至可以在编写文本时嵌入 html 和 js 来增强文档表现。
初学者入门
对于首次使用 Markdown 进行文档编写的人,首先你需要一个趁手的编辑器来解析 Markdown 文件(github 上的 .md 文件即为这种格式)。 目前大部分的博客网站都支持 Markdown 的编写,例如笔者所使用的 CSDN, 若你想在本地编写文档,可以使用 Notepad 等编辑器。具体选择可参见知乎 Markdown讨论。
有了一款趁手的编辑器,可以开始码字了,那么如何最快掌握呢? 笔者的原则是实践出真知,参看示例文档1 照着这边文章,查看它的 Markdown 文件,原样把文档打一遍,就像下面这样:
如果觉得一篇不够练手,这里有示例文档2把这两篇文章都敲完了,笔者认为你应该已经掌握它的语法了。
Makrdown 使用经验
markdown 心得和技巧
笔者在未使用 Markdown 之前都是采用 word 来进行文档编辑,所以会很注重,文档的结构和排版方式。 在使用 Markdown 的初期,会纠结于为什么文档不能把标题居中等排版问题上,但是仔细思考后有了如下体会。
Mrakdown 强调的是简单。这个概念的核心意义就在于极简主义,所以重点在于如何有效的组织文章,心得如下:
把文章拆分成块
这个概念类似于编程的模块化思想,把有限的 Markdown 标签和你的文章块进行组合。 思考你的文章组件有哪些比如文章标题、引言、目录、章节标题、内容、代码示例 那么把这些文章部件和 Markdown 的语法标记逐一对应。
对应关系范例:
- 文章标题: 用
#
来表示 - 前言: 采用
**内容**
粗体,对文章主旨做一个概述 - 章节标题: 采用
##,###
不要嵌套过深的层级. - 内容: 出现句号就换行。需要分段就空行。
markdown 的语法本身就包含了文章的布局层次在里面。
你需要做的就是巧妙的利用它的标记生成自己的模板格式。笔者会将自己总结的模板保存方便以后使用
那么如何定义模块呢?目前我体会到的是保证语法和文本模块之间的内在契合性。
举例,比如说对于长文我们会存在目录,那么如何表示目录的层级呢?这里用 markdown 语法有以下几种办法。
- 利用
#
表示层级 - 单纯的使用数字表示层级
- 利用
>
来表示层级 - 利用制表符或引号的层级缩颈表示层级
那么上面那种方法最好呢?我的原则是用最少的符号表示最强的效果。
所以首选方法1.因为只需用标题本身的功能就可以表示所有需要的目录关系。
包括目录的层级,等并且利用
#
号模式可以在变为html,利用 css 自动添加序号。所以该模式教合适。 下面是我编写markdown的一些文法规则。目的是为了保证所有文档的统一。
文章整体框架
文章框架布局结构:
//1. 文章标识 编辑器自动生成,用来整理和归档文章
//2. 题头 = 标题 + 概要
//标题 言简意赅
//概要 一句话描述本文中心思想
//水平线 分隔题头和正文
//3. 正文 = 子标题 + 块结构
//一级标题 内容可以单独抽离时使用
//# VI 语法
//# VI 插件
//上述两部分可以独立成章使用一级标题
//二级标题 相对一级标题可以独立的内容
//# vi 语法
//## 输入模式
//## 命令模式
//上述两部分属于 VI 语法的子集,且具有一定的独立性拆分成二级标题
//三级标题 划分方法同上
//当在三级标题下还可能存在递归性时,利用块结构实现书写
//只能有三层标题结构,超过三层利用块结构的层级关系体现
//↓↓↓↓↓↓示例如下↓↓↓↓↓↓
---
title: VIM 使用
category: linux tool
date: 2016-9-12
modifiedOn: 2016-9-25
---
# VIM 使用
**前言:介绍 VIM 基本语法及相关工具**
---
## VIM 语法
块结构...
### 基本概念
块结构...
### 模式切换
块结构...
块结构
块结构用在文章的各级标题内容中,为内容的组成单元 块结构 = 块标题 + 子内容
块标题
采用>
来实现块标题,块标题的也可以存在层级,只需利用多层
>
即可。只建议使用两层块标题,不要让文档出现过深的嵌套。举例如下:
> 块结构
块结构 = 块标题 + 子内容
>> 块标题
...
>> 子内容
...
子内容
子内容是组成文章部件的最小单元,常用的子内容如下。
无序子内容 利用
*,-,+
都可,利用制表符缩进子内容的递归性有序子内容 利用
1.,2.
,实现,利用制表符实现递归性,和无序子内容可相互包含代码块 所有编程语言范例使用
```js var a = 1; ``` ```bash $ ls //注意 linux 命令前面必须加提示符 ```
文本块 非编程语言,但是需要利用块引用进行说明的地方该文本块是利用 换行和制表符生成的。
//利用 ASCII Art 来描述 http 通讯 request chain ------------------------> UA -------------------v------------------- O <----------------------- response chain
其他
段落 多行文本使用,每一行文本出现句号后换行
关键字,利用一些特殊字符来强调某些内容,灵感来源于如何使用下划线和黑体
`短命令` --> 所有较短命令或一些技术术语和特殊字符 **强调** --> 文章中强调的观点或技术术语以及需要加强的概念 _斜体_ --> 只用在引用或非强调但需要突出的内容上 ~~删除~~ --> 用在删除和修改的内容
链接和图像引用
表格,用在需要说明函数 API 或一些配置参数的场合
markdown 语言技巧
连接引用
有些编辑器是支持图片的相对路径引用的,若不支持相对路径可以采用微博或第三方服务器来引用图片。 对于相对独立的引用直接使用内嵌式写法,若涉及到大量的连接引用比如说文末的参考文章,则建议采用显示连接更好。 利用显示连接时不建议索引 id 都放在文章最后,最好在哪里引用就放在它的下面。方便文章修改。
善用工具
笔者在 chroem
浏览器上预装了 stackedit
编辑器,它支持利用文本标记编写流程图的功能。
虽然这以不属于 markdown 语法。但是重点在于学会利用并扩展工具的使用。
我的建议是多使用几款找到自己中意的,然后精通它,这样你才能从随心所欲的操作中获得成就感。
MarkDown 语法详解
建议看这篇markdown 语法讲解 。
标题的两种表示方法
#
表示标题
范例:
# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
结果:
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
===
表示一级标题 ---
表示二级标题
范例:
一级标题
===
二级标题
---
结果:
一级标题
二级标题
段落和换行
表示段落的块前后各空一行
范例:
第一段
第二段
结果:
第一段
第二段
在行末添加两个或以上空格实现换行
范例:
第一行
第二行
结果:
第一行
第二行
文本块
代码块
范例:
```js
funciton test()
{
}
```
结果:
function test() { }
文本块
只需要在段落前产生3个空格的空格即可,注意若出现其他文本块,则需要再产生 3 个空格以此类推
范例:
文本块举例
结果:
文本块
引用块
使用 >
符号支持嵌套,注意要断开应用块空一行即可。
若不空行,一般会继续按照上一行应用模式显示。
范例:
> 这是第一层
>> 这是第二层
> 这是第一层
//空行后才有效
结果:
这是第一层
这是第二层 这是第二层
这是第一层
## 斜体,黑体
使用 × ×
和×× ××
表示斜体和粗体,或者 _ _
或__ __
范例:
*斜体*
**粗体**
_斜体_
__粗体__
结果:
斜体
粗体
斜体
粗体
列表
无序列表
使用 -、*、+
三个符号表示无序列表
范例:
- 条目一
- 条目二
或
+ 条目一
+ 条目二
或
* 条目一
* 条目二
结果:
- 条目一
- 条目二
有序列表
使用数字加标点表示有序列表,注意点号后要加空格
范例:
1. 条目1
2. 条目2
或
7. 条目1
3. 条目2
以上两个显示结果相同,说明 markdown 在处理时只是依照格式来进行排序
不过考虑到阅读性建议按照实际顺序排序
结果:
- 条目1
- 条目2
分割线
连写三个或以上的 *、-、_ 均会产生下划线
范例:
---
或
___
或
***
也可以使用超过3个的字符
结果:
引用超链接和图片
超链接
超链接的表示方法分为内嵌、参考、自动连接
内嵌式写法
范例:
[引用文本](链接地址)
如:[百度首页](http://www.baidu.com)
也可采用相对地址来表示前提是 markdown 文件和你的网页是在用一个主机之下
结果:
参考链接方式
显示连接
范例:
[引用文本][id]
[id]: URL "可选择的标题"
如:
[百度首页][h1]
结果:
隐式连接
范例:
[引用文本][]
[引用文本]: URL "可选择的标题" ````
如:
[百度首页][]
结果:
图片显示
图片显示类似超链接,引用时开头加!即可
内嵌式写法
范例:
[引用文本](链接地址)
如:
也可采用相对地址来表示前提是 markdown 文件和你的网页是在用一个主机之下
结果:
参考链接方式
显示连接
范例:
![引用文本][id]
[id]: URL "可选择的标题"
如:
![MARKDOWN图标][i1]
[i1]:http://www.newasp.net/attachment/soft/2015/0713/085610_78002493.png "图标"
注意空行分开结果同上
隐式连接
范例:
![引用文本][]
[引用文本]: URL "可选择的标题"
如:
[MARKDOWN图标][]
[MARKDOWN图标]: http://www.newasp.net/attachment/soft/2015/0713/085610_78002493.png "图标"
结果同上
自动链接
多用于邮箱或短的网址
范例:
<http://www.baidu.com>
<test@gmail.com>
结果:
## 表格
markdown 表格只具有基本功能,复杂合并建议直接使用html
。
表格分为标题头和内容块参看范例
范例:
| 标题一 | 标题二 // 注意利用 | 来划分标题 |
| ------ | -------------------- |//利用 --- 来区分标题和内容,其中 :--- 左对齐、:---: 居中对齐、 ---: 右对齐
内容|内容| // 利用 | 来划分内容
结果:
Header Header 2 Data 1 Data 2
你也可以利用它实现列合并
范例:
| 标题一 | 标题三 // 注意利用 | 来划分标题 |
| ------ | -------------------- | ---------- |//利用 --- 来区分标题和内容,其中 :--- 左对齐、:---: 居中对齐、 ---: 右对齐
内容|内容| // 利用 | 来划分内容
结果:
标题一 标题三 内容 内容 fdf
代办清单
语法
[ ]
表示没有完成。
[x]
表示完成。
- [ ] Mercury
- [x] Venus
- [x] Earth (Orbit/Moon)
- [x] Mars
- [ ] Jupiter
- [ ] Saturn
- [ ] Uranus
- [ ] Neptune
- [ ] Comet Haley
显示结果
- [ ] Mercury
- [x] Venus
- [x] Earth (Orbit/Moon)
- [x] Mars
- [ ] Jupiter
- [ ] Saturn
- [ ] Uranus
- [ ] Neptune
- [ ] Comet Haley
其他符号讲解
\ 转译符号
范例:
\#
结果:
#
`` 用来标记
范例:
`标记内容`
结果:
标记内容
删除线
范例:
~~内容~~~
结果:
内容
文章构成部件
介绍 linux 命令
## <command_name>
**功能:** <command_description>
**参数:**
| 参数名 | 作用 |
| :----------- | :------------ |
| <parameter1> | <description> |
| <parameter2> | <description> |
...
**范例:**
```bash
# <example_description>
<linux_command>
...
```
markdown 扩展
github 的 mrakdown 语法称为.
github flavored markdown 简称 GFM.