Markdown

使用 Markdown 的经验

Markdown 概述

markdown 是一种轻量级的标记语言,作用是为了更方便的书写网络文档。
原理上文本标记会被 markdown 编辑器转换为 html 标签,例如在你想添加标题的文本前加入 # 内容就会被 <h1> 包含。
对于 WEB 开发者,甚至可以在编写文本时嵌入 html 和 js 来增强文档表现。

初学者入门

对于首次使用 Markdown 进行文档编写的人,首先你需要一个趁手的编辑器来解析 Markdown 文件(github 上的 .md 文件即为这种格式)。 目前大部分的博客网站都支持 Markdown 的编写,例如笔者所使用的 CSDN, 若你想在本地编写文档,可以使用 Notepad 等编辑器。具体选择可参见知乎 Markdown讨论

有了一款趁手的编辑器,可以开始码字了,那么如何最快掌握呢? 笔者的原则是实践出真知,参看示例文档1 照着这边文章,查看它的 Markdown 文件,原样把文档打一遍,就像下面这样:

im1

如果觉得一篇不够练手,这里有示例文档2把这两篇文章都敲完了,笔者认为你应该已经掌握它的语法了。

Makrdown 使用经验

markdown 心得和技巧

笔者在未使用 Markdown 之前都是采用 word 来进行文档编辑,所以会很注重,文档的结构和排版方式。 在使用 Markdown 的初期,会纠结于为什么文档不能把标题居中等排版问题上,但是仔细思考后有了如下体会。

Mrakdown 强调的是简单。这个概念的核心意义就在于极简主义,所以重点在于如何有效的组织文章,心得如下:

把文章拆分成块

这个概念类似于编程的模块化思想,把有限的 Markdown 标签和你的文章块进行组合。 思考你的文章组件有哪些比如文章标题引言目录章节标题内容代码示例 那么把这些文章部件和 Markdown 的语法标记逐一对应。

对应关系范例:

  • 文章标题:# 来表示
  • 前言: 采用**内容**粗体,对文章主旨做一个概述
  • 章节标题: 采用 ##,### 不要嵌套过深的层级.
  • 内容: 出现句号就换行。需要分段就空行。

markdown 的语法本身就包含了文章的布局层次在里面。 你需要做的就是巧妙的利用它的标记生成自己的模板格式。笔者会将自己总结的模板保存方便以后使用
那么如何定义模块呢?目前我体会到的是保证语法和文本模块之间的内在契合性。 举例,比如说对于长文我们会存在目录,那么如何表示目录的层级呢?这里用 markdown 语法有以下几种办法。

  1. 利用# 表示层级
  2. 单纯的使用数字表示层级
  3. 利用>来表示层级
  4. 利用制表符或引号的层级缩颈表示层级 那么上面那种方法最好呢?我的原则是用最少的符号表示最强的效果。 所以首选方法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. 条目1
  2. 条目2

分割线

连写三个或以上的 *、-、_ 均会产生下划线

范例:

---

或
___

或
***
也可以使用超过3个的字符

结果:


引用超链接和图片

超链接

超链接的表示方法分为内嵌、参考、自动连接

内嵌式写法

范例:

[引用文本](链接地址)
如:[百度首页](http://www.baidu.com)

也可采用相对地址来表示前提是 markdown 文件和你的网页是在用一个主机之下

结果:

百度首页

参考链接方式

显示连接

范例:

[引用文本][id]
[id]: URL "可选择的标题"
如:
[百度首页][h1]

结果:

百度

隐式连接

范例:

[引用文本][]
[引用文本]: URL "可选择的标题" ````
如:
[百度首页][]

结果:

百度首页

图片显示

图片显示类似超链接,引用时开头加!即可

内嵌式写法

范例:

[引用文本](链接地址)
如:![MARKDOWN图标](http://www.newasp.net/attachment/soft/2015/0713/085610_78002493.png)

也可采用相对地址来表示前提是 markdown 文件和你的网页是在用一个主机之下

结果:

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>   

结果:

http://www.baidu.com

123@email.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.

工具