美文网首页
200316.Markdown基本语法,尽可能的全

200316.Markdown基本语法,尽可能的全

作者: 风往北吹_风往北吹 | 来源:发表于2020-08-27 16:32 被阅读0次

    [Markdown]01.Markdown基本语法,尽可能的全

    Markdown是一种纯文本格式的轻量级标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。

    当前许多网站都广泛使用Markdown来撰写帮助文档或者发布消息再或者发布博客,比如:Github、CSDN博客、简书、有道云笔记、Hexo等。那么下面来简单介绍一下Markdown的语法。

    [TOC]

    原文与正文内容的区别

    Markdown是一种标记语言。

    graph LR
    原文-->编译器
    编译器-->正文
    

    原文是作者编写中使用的,里面包含标记字符。原文中的标记字符具有特殊意义,用来标识某些功能。

    编译器用来将原谅转换为正文,将原谅中的标记符号转换为格式及图形。

    正文显示时这些标记符号并不会显示。

    示例,原文如下:

    #### 这是四级标题
    **这是加粗正文**
    

    正文显示效果如下:

    这是四级标题

    这是加粗正文

    示例中的,`、#、*都是标记符号,在显示中并不显示。

    让标记符号在正文中显示

    要想这些标记字符在正文显示出来,必须将\符号放在标记字符前。

    示例,原文如下:

    #### 原文中拥有标记符号的标题\#
    **原文中拥有标记符号\*的正文**
    

    正文显示效果如下:

    原文中拥有标记符号的标题

    原文中拥有标记符号*的正文

    注意:\字符也是标记字符,它表示后面的标记字符不被原文识为标记语言的组成部分,将显示在正文当中。

    标题

    只要在文字前面加#,即可把这段文字设置为标题。一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。

    注意:标准语法一般在#后跟个空格再写文字,虽然现在某些markdown编辑器不用空格也可以,但是最好还是按照标准语法来。比如Typora编辑器中不空格就不会生成标题的样式。

    示例,原文如下:

    # 这是一级标题
    ## 这是二级标题
    ### 这是三级标题
    

    正文显示效果如下:

    <h1>这是一级标题</h1>
    <h2>这是二级标题</h2>
    <h3>这是三级标题</h3>

    注释

    如果你想某些信息不在正文中显示,只在原文中显示,可以使用注释语法。
    语法格式如下:

    <!-- 要隐藏的内容。 -->
    

    示例,原文如下:

    <!-- 这些文字不会在正文中显示,只能在原文件中看到。 -->
    

    正式内容如下:

    可以看到,在正文中是无法看到这些信息的。

    脚注

    脚注功能严格来说属于markdown的扩展语法里面。在使用上也有不同的"表达方式",例如我在不同的编辑器里面,如typora和mweb,以及Mdnice、坚果云的网页编辑都不一样的代码输入和渲染方式。

    原文如下:

    茅盾[^1]
    [^1]: 我国著名的文学作家
    

    正文内容如下:

    茅盾[1]

    序号

    有时我们需要对文本进行自动编号时,可以使用如下格式来进行。

    示例,原文如下:

    1. 第一条
    2. 第二条
    3. 第三条
    

    正文内容如下:

    1. 第一条
    2. 第二条
    3. 第三条

    字体样式

    在写具体内容的时候,可能需要对某些内容显示不一样的样式,以用于特别标注。那么Markdown支持以下四种样式:

    • 加粗 要加粗的文字左右分别用两个*号即可
    • 斜体 要倾斜的文字左右分别用一个*号即可
    • 斜体加粗 要倾斜和加粗的文字左右分别用三个*号即可
    • 删除线 要加删除线的文字左右分别用两个~号即可

    示例,原文格式如下:

    **加粗效果**
    *斜体效果*
    ***斜体加粗效果***
    ~~删除效果~~
    

    正文显示效果如下:

    加粗效果

    斜体效果

    斜体加粗效果

    删除效果

    引用

    在需要设为引用的文字前面加上>即可,引用也支持嵌套,原文如下:

    > 一级引用
    >> 二级引用
    >>> 三级引用
    以此类推
    

    正文显示效果如下:

    一级引用

    二级引用

    三级引用

    分割线

    一行连用三个或者三个以上的星号*,减号-,或者下划线_,就可以表示分割线。

    示例,原文如下:

    ***
    ---
    ___
    

    可以看到正文显示效果是一样的,如下:




    图片

    在Markdown中插入图片的语法如下

    ![Alt text](图片链接 "optional title")
    
    • Alt text:图片的Alt标签,用来描述图片的关键词,可以不写。最初的本意是当图片因为某种原因不能被显示时而出现的替代文字,后来又被用于SEO,可以方便搜索引擎根据Alt text里面的关键词搜索到图片。
      图片链接:可以是图片的本地地址或者是网址。
    • "optional title":鼠标悬置于图片上会出现的标题文字,可以不写。

    超链接形式

    只需要在基础语法的括号中填入图片的网络链接即可,现在已经有很多免费/收费图床和方便传图的小工具可选。

    示例,原文内容:

    ![](https://www.baidu.com/img/bd_logo1.png?where=super "不要用百度")
    效果如下
    

    正文显示效果如下:
    [图片上传失败...(image-21219a-1620097738447)]

    本地图片

    只需要在基础语法的括号中填入图片的位置路径即可,支持绝对路径和相对路径。

    示例,原文内容下:

    ![avatar](/home/picture/1.png)
    

    正文显示效果如下:
    [图片上传失败...(image-ffc8b0-1620097738447)]

    把图片存入markdown文件

    用base64转码工具把图片转成一段字符串,然后把字符串填到基础格式中链接的那个位置。

    基础用法:

    ![avatar](data:image/png;base64,iVBORw0......)
    

    这个时候会发现插入的这一长串字符串会把整个文章分割开,非常影响编写文章时的体验。如果能够把大段的base64字符串放在文章末尾,然后在文章中通过一个id来调用,文章就不会被分割的这么乱了。

    高级用法,原文内容如下:

    ![avatar][base64str]
    [base64str]:data:image/png;base64,iVBORw0..... 
    

    这种方法Atom、有道云笔记支持,简书不全部支持,并且只支持png图片文件格式,不推荐使用。

    超链接

    Markdown还支持超链接,语法格式如下:

    [超链接名](超链接地址 "超链接title")
    

    注意:title可加可不加

    示例,原文内容如下:

    [会蹦的小黑的博客](http://blog.dawnguo.cn "那是不可能的事")
    

    正文显示效果如下:

    会蹦的小黑的博客

    注意:上面语法中[]中的内容为超链接名,那么[]其实可以不用文字,可以换成一张图片,如下

    效果如下(微信公众号中暂不支持外部链接的跳转):

    avatar
    avatar

    表格

    Markdown还支持插入表格,语法如下

    |表头|表头|表头|
    |-|:-:|-:|
    |内容|内容|内容|
    |内容|内容|内容|
    

    第二行分割表头和内容,同时也是表格居中居左居右的定义:

    • -符号有一个就行,多个也可以,只有-符号的话默认是居左
    • -符号两边加:表示文字居中
    • -符号右边加:表示文字居右

    示例,原文显示如下:

    | 公众号 | 好感度 | 点赞数 | 好评数 |
    | - | :-: | -: |:-|
    | 会蹦的小黑 | 99+ | 99+ | 99+ |
    | 会蹦的小黑 | 99+ | 99+ | 99+ |
    

    正文显示效率如下:

    公众号 好感度 点赞数 好评数
    会蹦的小黑 99+ 99+ 99+
    会蹦的小黑 99+ 99+ 99+

    代码块

    Markdown最让人喜欢的一点就是支持代码高亮,并且支持数几十种语言的高亮,语法格式很简单。

    多行示例

    代码区块使用 4 个空格或者一个制表符(Tab 键)。
    原文如下:

        print("代码块第一行")
        print("代码块第二行")
    

    正文显示效果如下:

    print("代码块第一行")
    print("代码块第二行")
    

    你也可以用 ``` 包裹一段代码,并指定一种语言(也可以不指定):

    原文内容如下:

    ```python

    print("代码块")

    ```

    正文显示效果如下:

    print("代码块")`
    

    适用场景是单独的贴上一整段代码,那么在三个`之间插入代码即可。

    单行示例

    如你需要在一段文字中加入一小行代码,那么在两个`插入代码即可。

    原文内容如下:

    我们要在段落中使用代码块,比如`print("代码块")`。
    

    正文显示效果如下:

    我们要在段落中使用代码块,比如print("代码块")

    目录

    键入[TOC],之后回车目录便会呈现,目录树会根据文档中的h1~h6标题自动生成,并且支持点击跳转。

    [TOC]
    

    注意:[TOC]需要独占一行才能生效。

    跳转到指定标题

    手动添加跳转到某个标题的链接。使用如下的语法:

    [名称](#id)
    

    “名称”可以随便填写,“id”需要填写跳转到的标题的内容。
    示例,原文内容:

    [目录](#目录)
    

    目录

    注意:Markdown会自动给每一个h1~h6标题生成一个锚,其id就是标题内容。

    在Markdown中画流程图

    如何在Markdown中画流程图呢?当然是用mermaid了,mermaid支持三种图形的绘制, 分别是流程图, 时序图和甘特图, 本节只介绍了mermaid中流程图在markdown的使用。
    如何在markdown中使用mermaid

    如何在markdown中使用mermaid

    graph 流程图方向
    流程图内容
    

    流程图方向有下面几个值:

    • TB 从上到下
    • BT 从下到上
    • RL 从右到左
    • LR 从左到右
    • TD 同TB
    graph LR
    原文-->编译器
    编译器-->正文
    

    正文效果如下:

    graph LR
    原文-->编译器
    编译器-->正文
    

    基本图形

    • id + [文字描述]矩形
    • id + (文字描述)圆角矩形
    • id + >文字描述]不对称的矩形
    • id + {文字描述}菱形
    • id + ((文字描述))圆形

    原文示例如下:

    graph TD
        id[带文本的矩形]
        id4(带文本的圆角矩形)
        id3>带文本的不对称的矩形]
        id1{带文本的菱形}
        id2((带文本的圆形))
    

    正文显示效果如下:

    graph TD
        id[带文本的矩形]
        id4(带文本的圆角矩形)
        id3>带文本的不对称的矩形]
        id1{带文本的菱形}
        id2((带文本的圆形))
    

    节点之间的连接
    A --> B A带箭头指向B
    A --- B A不带箭头指向B
    A -.- B A用虚线指向B
    A -.-> B A用带箭头的虚线指向B
    A ==> B A用加粗的箭头指向B
    A -- 描述 --- B A不带箭头指向B并在中间加上文字描述
    A -- 描述 --> B A带箭头指向B并在中间加上文字描述
    A -. 描述 .-> B A用带箭头的虚线指向B并在中间加上文字描述
    A == 描述 ==> B A用加粗的箭头指向B并在中间加上文字描述

    mermaid
    graph LR
        A[A] --> B[B] 
        A1[A] --- B1[B] 
        A4[A] -.- B4[B] 
        A5[A] -.-> B5[B] 
        A7[A] ==> B7[B] 
        A2[A] -- 描述 --- B2[B] 
        A3[A] -- 描述 --> B3[B] 
        A6[A] -. 描述 .-> B6[B] 
        A8[A] == 描述 ==> B8[B] 
    
    graph LR
        A[A] --> B[B] 
        A1[A] --- B1[B] 
        A4[A] -.- B4[B] 
        A5[A] -.-> B5[B] 
        A7[A] ==> B7[B] 
        A2[A] -- 描述 --- B2[B] 
        A3[A] -- 描述 --> B3[B] 
        A6[A] -. 描述 .-> B6[B] 
        A8[A] == 描述 ==> B8[B] 
    

    子流程图
    格式

    subgraph title
        graph definition
    end
    

    示例

    mermaid
    graph TB
        c1-->a2
        subgraph one
        a1-->a2
        end
        subgraph two
        b1-->b2
        end
        subgraph three
        c1-->c2
        end
    

    效果:

    graph TB
        c1-->a2
        subgraph one
            a1-->a2
        end
        subgraph two
            b1-->b2
        end
        subgraph three
            c1-->c2
        end
    

    时序图

    sequenceDiagram
        participant Alice
        participant Bob
        Alice->>John: Hello John, how are you?
        loop Healthcheck
            John->>John: Fight against hypochondria
        end
        Note right of John: Rational thoughts <br/>prevail!
        John-->>Alice: Great!
        John->>Bob: How about you?
        Bob-->>John: Jolly good!
    

    甘特图

    gantt
        title A Gantt Diagram
        dateFormat  YYYY-MM-DD
        section Section
            A task           :a1, 2014-01-01, 30d
            Another task     :after a1  , 20d
        section Another
            Task in sec      :2014-01-12  , 12d
            another task      : 24d
    

    原文是网页版本,里面添加了不少广告,影响学习使用。本文是自己对原文按照自己的学习方式进行修改改进的,如果不喜欢请看原文链接

    由于原文是是发布在微信当中,微信的分享链接是每天变化的,所以只能提供原文的搜索链接,请见谅。


    1. 我国著名的文学作家
      茅盾1

    相关文章

      网友评论

          本文标题:200316.Markdown基本语法,尽可能的全

          本文链接:https://www.haomeiwen.com/subject/negtyhtx.html