Markdown分级语法手册

[TOC]

PS: 本地预览目录OK,但是博客园貌似不支持,暂时先这样。

前言(可以不看)

最开始只是想写一篇博文,准备使用markdown,感觉很流行(github、简书……很多都支持),而且渲染出来很好看,一直很想学,没有合适的机会,结果拖到了现在。比起什么python、C之类的编程语言,markdown常用的语法也就10个左右,还是比较容易的,网上资料也很多,看了两天,有了一点初步的认识,感觉现在来说基本够用了,后面用到一些特殊or高级功能的时候再通过参考链接进行学习和使用就好。毕竟markdown也只是一种工具、一种表现形式,私以为不用在上面花费太多精力,而且它自己也说了,这是为了让大家专注于写作的一种轻量级语言。

下面的参考手册从语法、工具两个方面写了一些参考(因为别人的博客已经写得很好了,就不用重新贴一遍引用,直接指路链接),主要目的是如果自己忘了,能够查找起来非常迅速。可能对完全没有接触过markdown的小白同学来说不是很友好,但我在最后列了一下从小白到入门到中级到高级balabala的路线。私以为我现在的学习进度应该是入门和中级之间,当前来看,已知的这些知识已经够用,我需要一段时间进行使用、巩固,后面如果有需要我再继续往上。

私以为markdown语法分3级(因为没有详细调研,所以可能不太对):最基本的Markdown,扩展的 Markdown Extra,GitHub Flavored Markdown (GFM)(可能GFM就是一种 Markdown Extra)。下面的语法,绝大多数markdown编辑器都是支持的,但有一些很棒的功能只有支持解析GFM的才能支持,还有一些只能在GitHub上写,暂时还没学会,所以先记下,后面用到了再慢慢学。

好像说了一堆废话,下面直接开始吧。

基本语法(18)

  • 纯文字(1-3):能够撰写文章大纲,展现基本的层级、逻辑关系,表达基本的含义;
  • + 强调样式(4-8):能够在基本的含义之上,添加一些简单样式,表达的含义更丰富;
  • + 链接跳转(9-10):不管文章长度如何,如果有索引跳转机制,可以显著提升读者阅读体验;
  • + 参考引用(11-13):如果就是自己的记录,可能没什么参考引用的地方,但只要是写正式的文章,参考引用肯定是必需的;
  • + 通用多媒体对象(14-15):上面基本都还是纯文字,虽然加了一些样式、链接引用之类,但表现力、感染力还是弱了一些,在添加一些通用多媒体对象后,能够表达更多的含义,感染力更强;
  • + 特定多媒体对象(16-18):对大部分人来说可能不会用到,针对特定需求去学习使用。

可能有些效果有多种实现形式,这里只列举私以为简单有用的形式(1个或2个),如果想要了解更多,去看参考文献更好。另外,快捷键均为 Sublime Text 插件 MarkdownEditing 编辑器环境下,后文就不一一说明了。

1. 标题#

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

快捷键:

  • Ctrl+1/2/3/4/5/6,分别插入一级至六级标题.

2. 无序列表-

    - 无序列表
    - 无序列表
    - 无序列表

3. 有序列表1.

    1. 有序列表
    2. 有序列表
    3. 有序列表

4. 斜体*

    *斜体*

5. 粗体**

    **粗体**

6. 加粗斜体***

    ***加粗斜体***

7. 删除线~~

    ~~删除线~~

8. 分隔线---

    ---

9. 目录:[TOC]

    [TOC]

10. 锚点:`

    ## 目录{#index}
    
    跳转到[目录](#index)

11. 引用>

    > 一级引用

    >> 二级引用

    >>> 三级引用

根据tab缩进不同,引用可嵌套

12. 注脚[^]

    markdown[^1], GitHub[^2]

    [^1]: Markdown 是一种纯文本标记语言
    [^2]: GitHub 是一个代码托管平台

13. 链接[]( "")

    行内式:
    [blog](http://www.cnblogs.com/Chayeen/ "鼠标悬停文本")
    参考式1:
    [blog][1]
    [1]:http://www.cnblogs.com/Chayeen/ "鼠标悬停文本"
    参考式2:
    [blog][]
    [blog]:http://www.cnblogs.com/Chayeen/ "鼠标悬停文本"
    自动链接:
    <http://www.cnblogs.com/Chayeen/>

快捷键:

  • Ctrl+Win+V:选中的内容将自动转换为行内式超链接,链接到剪贴板中的内容;
  • Ctrl+Win+R:选中的内容将自动转换为参考式超链接(全文多处引用时),链接到剪贴板中的内容;
  • 输入 “mdl + tab” :会自动生成链接标记:[](link)

14. 图片![]( "")

    行内式:
    ![图片](http://www.example.com/demo.png "demo")
    参考式:
    ![图片][demo]
    [demo]:http://www.example.com/demo.png "demo"

快捷键:

  • Win+Shift+K:插入一个标准的行内式图片(此快捷键可能与输入法有冲突)
  • 输入 “mdi + tab” :会自动插入下面的图片标记:
    ![Alt text](/path/to/img.jpg "Optional title")

15. 表格|

    | Tables        | Are           | Cool  |
    |:------------- |:-------------:| -----:|
    | col 3 is      | right-aligned | $1600 |
    | col 2 is      | centered      |   $12 |
    | zebra stripes | are neat      |    $1 |

如果觉得表格输入太过麻烦,这里有2个参考链接能够简化一下表格操作:

16. 代码:`

    `行内代码`
    ```c
    #include <stdio.h>
    int main()
    {
        printf("Hello Jianshu!")
    }
    ```

17. 公式$

    行内公式:
    $E=mc^2$
    整行公式:
    $$\sum_{i=1}^n a_i=0$$

公式也不太常用,更多语法参考: MathJax

18. 流程图

    flow
    st=>start: Start:>https://www.zybuluo.com
    io=>inputoutput: verification
    op=>operation: Your Operation
    cond=>condition: Yes or No?
    sub=>subroutine: Your Subroutine
    e=>end
    st->io->op->cond
    cond(yes)->e
    cond(no)->sub->io

流程图测试没有成功,由于暂时用不到,先不管了。更多语法参考:流程图语法参考

注意事项

  1. 由于当前各种Markdown的编辑器、解析器很多,可能有些只支持基本的Markdown语法,有些支持Markdown Extra,有些支持 GitHub Flavored Markdown,还有些语法可能需要编辑器进行特殊配置才能够支持,特别是代码、公式、流程图这种特定多媒体对象,暂时还没弄清楚,反正基本能用,后面用到了再说。
  2. 在 Markdown 编写中私以为最重要的需要理解 空格空行tab缩进 的作用,如果渲染出来的效果不是你想象的那样,除了明显的语法问题以外,很多时候都是没有用空格、空行、tab缩进进行分隔导致的。私以为记住以下三点原则就能够hold住大部分问题:
    • 关键字与正文内容之间,都采用空格进行分隔
    • 一个空行才表示分段,在要分段的地方,一定要空一行;不想分段的地方,敲个回车就行了
    • tab缩进主要表示一种层级关系,在各种嵌套的时候,一定要注意缩进,缩进少一个空格都有可能出问题,详情见参考资料Markdown 语法手册从(完整整理版)
  3. 图片链接引用主要有如下三种方式,分别进行讨论:
    • 本地图片:使用绝对 or 相对即可,但是就是只能自己看,别人是看不了的
    • 图片外链:直接使用 http 链接即可,但如果是自己的图片,比如说截图、照片之类,则需要上传图片到图床之后,生成一个图片外链进行引用。调研了一番,最后选择了七牛云+极简图床/MPic-图床神器的方式,参考这里进行注册、配置、上传即可简单使用了
    • 图片 base64 :即利用base64 工具把图片转成一串字符串放在链接的位置即可,本来最初想用这种方式,因为它无需依赖图床,直接把图片写入到了md文件中,感觉比较独立,很不错;结果后来看到了这个base64的弊端,发现 base64 有一些很硬的缺点,所以最后还是选择了外链的方式。

参考资料

从小白到入门到中级到高级……本文撰写很多就参考了这些,都列在了后面,还有一些后续可能会用到的进阶资料,也整理到后面,给自己定个目标。

  1. 一张图理解Markdown语法:对应关系很明显,最最基础的,看完可能就可以开始动手写了。
  2. Markdown——入门指南:讲解的比较详细,比上一张图来说,能够看出一些效果。
  3. Markdown基础语法总结Markdown 11种基本语法:比上面一个又多了几个语法,基本能够hold住大部分情况了。
  4. Markdown语法说明(简体中文版)Markdown语法说明(详解版):我只看完了前面的简体中文版,感觉详解版类似就没看了,看完能够发现一些小的tips,需要注意的点,推荐至少认真看完一遍。
  5. Markdown 语法手册从(完整整理版):总结的非常多,基本的确是完整整理版了,但是里面也有一些问题作者没有指出来,最大的问题就是并不是所有的解析器都支持某些语法,比如说上面的流程图,估计是需要一些特殊配置。
  6. 使用Sublime Text 3写Markdown:这个介绍了ST下的markdown环境配置,推荐看完,而且指了GFM的路。
  7. [译] GitHub 风格的 Markdown 语法:这个说了一些 GFM 和普通的 Markdown Extra 语法的一些区别,看了这个才明白前面完整整理版里面写了一些语法可能不是所有的解析器都能够解析,不过 MarkdownEditing 的配置可以选择 github,所以这里写的有些语法能够渲染出来,试了一个 task list,感觉很不错。
  8. [译] GitHub 上的书写方式:这个大概扫了一遍,就是在 GitHub 上和别人交流的时候可以用的,后续把 GitHub 用起来的时候再好好看看。
  9. 代码块可用的语言标识符:代码块的起始三个`后面需要接一个语言标识符,这样才能对内部代码进行高亮,之前代码总是不能高亮,还以为是插件配置的问题,后来才发现是少写了个c。
  10. 我的总结之sublime text2中MarkdownEditing插件的安装与markdown的编写使用:这篇博客的名称可真够长的,主要参考了后面总结的 MarkdownEditing 快捷键,其实这些也写在了插件的默认配置文件中,只是这里翻译了一下,每个都试了,能用的就上面列举的那些,其他不能用主要是因为快捷键冲突,暂时先这样,比较关键的快捷键还都用,感觉够了。

欢迎转载本博客文章,转载请注明出处,十分感谢。

posted @ 2017-11-19 23:14  Chayeen  阅读(2606)  评论(0编辑  收藏  举报