Markdown 基本语法

Markdown语法

当前文档仅用作个人学习笔记,来源: Markdown 中文文档

  • 概述

    • 设计理念

      Markdown 致力于使阅读和创作文档变得容易.

      Markdown 视可读性为最高准则.Markdown 语法灵感最大的来源还是纯文本 email 的格式。

      Markdown 完全由标点符号组成, 这些标点经过仔细挑选以使他们看上去和表达的含义相同。

    • 内联HTML

      对于 Markdown 中未包含的标签, 可以直接使用 HTML.

      没有必要使用定界符或标识符来表明从 Markdown 切换到 HTML; 直接使用标签就行了.
      唯一的限制就是对于 HTML 块级元素,eg:<div> <table> <pre> <p> and so on 必须另起一行独放,并且开始和结束标签前面不能有任何缩进。MD会自动识别而不会在额外添加 <p> 标签

      This is a regular paragraph.
      <table>
          <tr>
             <td>Foo</td>
             <td>Foo</td>
             <td>Foo</td>
          </tr>
          <tr>
              <td>Foo</td>
              <td>Foo</td>
              <td>Foo</td>
          </tr>
      </table>
      This is another regular paragraph.
      
    • 特殊字符自动转义

      在HTML中,< 和 & 字符需要特殊对待,
      &符号用于表示HTML字符实体,如果想将它们用作字面量,必须将它们转义为字符实体 &lt;&amp; .

      在MP中可以自由地使用这些字符,这些字符在生成HTML时会被自动转义。

      由于MP支持内联HTML,如果使用 < 作为HTML标签的定界符,MP不会进行转义。但若写成:

      4 < 5
      

      MP会转义为:

      4 &lt; 5
      

      In a word, Markdown 的块级元素和内联元素中, < 和 & 总是被自动编码. 这使得用 Markdown 来写 HTML 代码很容易.

  • 块级元素

    • 段落与换行

      段落就是连续行上的文本, 一个或多个空行划分不同的段落。

      Markdown 支持 "硬换行".只需要在行尾加上两个及以上的空格, 然后换行.

    • 标题

      Markdown 支持两种形式的标题, [Setext][1] 和 [atx][2].

      Setext 样式的标题使用的等号来表示一级标题, 使用连字符表示二级标题.任意长度都是可以的

      This is an H1
      =============
      
      This is an H2
      -------------
      

      Atx 样式的标题每行开头使用 1-6 井号, 对应 1-6 级标题.
      可以可选地“关闭"atx样式的标题,"关闭"的含义是 # This is an H1 # 左右两边都有#(起始的井号数量决定了标题的级别.)

      # This is an H1
      
      ## This is an H2 ##
      
    • 块引用

      Markdown 使用 email 样式的 > 字符作为块引用

      1. 最好对引用文本采取强制换行并在每一行行首放一个 > :

        > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
        > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
        > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
        >
        > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
        > id sem consectetuer libero luctus adipiscing.
        
      2. 可以简便地只在每一个需要强制换行的段落的首行前加 > :

        > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
        consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
        Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
        
        > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
        id sem consectetuer libero luctus adipiscing.
        
      3. 块引用可以嵌套 (例如, 块引用中包含块引用) , 只需添加额外层级的 > 即可:

        > This is the first level of quoting.
        >
        > > This is nested blockquote.
        >
        > Back to the first level.
        
      4. 块引用可以包含 Markdown 元素, 包括标题, 列表和代码块:

        > ## This is a header.
        >
        > 1.   This is the first list item.
        > 2.   This is the second list item.
        >
        > Here's some example code:
        >
        >    return shell_exec("echo $input | $markdown_script");
        
    • 列表

      Markdown支持有序列表和无序列表

      1. 无序列表使用 * + - ,这些符号是可以互换的

        * red
        * blue
        * green
        
        + red
        + blue
        + green
        
        - red
        - blue
        - green
        
      2. 有序列表使用数字加句号

        1. one
        2. two
        3. three
        

        注意这里的序号对最终生成HTML是没有影响的。

      3. 为了美观,可以使用悬挂缩进来格式化列表项

      4. 如果列表项中有空行,Markdown会在生成HTML输出中用 <p> 来包裹它们。

        *   bird
        
        *   cccc
        
      5. 列表项中包含多个段落,列表项中每个段落都必须用4个空格或1个水平制表符来缩进

        1.  This is a list item with two paragraphs. Lorem ipsum dolor
            sit amet, consectetuer adipiscing elit. Aliquam hendrerit
            mi posuere lectus.
        
            Vestibulum enim wisi, viverra nec, fringilla in, laoreet
            vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
            sit amet velit.
        
        2.  Suspendisse id sem consectetuer libero luctus adipiscing.
        
      6. 列表项中包含块引用时,块引用标记 > 需要缩进

        *   A list item with a blockquote:
            
            > This is a blockquote
            > inside a list item.
        
      7. 如果列表项中有代码块,代码块需要双倍缩进,8个空格或2个水平制表符

        * A list item with a code block:
                <code goes here>
        
      8. 有时候无意中触发有序列表

        1986. What a great season.
        

        如果行开头满足 number-period-space 模式,可以通过转义 period 来避免这种情况

        1986\. What a great season.
        
    • 代码块

      预格式化的代码块用于输出编程语言和标记语言。不同于段落,代码块中的行会被原样呈现。Markdown会用 <pre>
      <code> 标签包围代码。

      要插入代码块,只需要将每一行都缩进4个空格或1个水平制表符。

      This is a normal paragraph:
          
          This is a code block.
      
    • 水平线

      如果一行中只有三个以上的连字符,星号,或下划线则会在该位置生成一个 <hr /> 标签。星号和连字符之间允许有空格。

      ***
      ------
      - - -
      ___         
      

  • 内联元素

    • 链接

      Markdown 支持两种链接形式: 内联 和 引用。这两种形式下链接文本的定界符都是 [中括号]。

      创建内联链接
      1. 在链接文本的右中括号后紧跟一对圆括号

      2. 在圆括号内放URL链接,以及可选标题,标题要用引号包围。

      3. 引用相同服务器下的本地资源,支持相对路径。

         [链接文本](http://url.com/ "可选标题")
        

        链接文本

      创建引用链接
      1. 在需要使用引用链接的位置声明引用链接

      2. 定义链接标签(链接标签的名称可以包含字母,数字,空格,和标点符号。但不区分大小写)

         /*声明引用链接*/
         [引用链接][sign]
         
         /*定义链接标签*/
         [sign]: <http://example.com/> "Title"
        

        引用链接

      PS.可以隐含链接标签,这时链接文本本身充当链接标签。

      /*隐含链接标签案例*/
      [Google][]
      
      /*这时链接文本"Google"充当链接标签*/
      [Google]: <http://www.google.com> "谷歌"
      

      Google

    • 强调

      Markdown中 *_ 作为强调标记

      /*星号和文本连接处不能有空格,这里星号和下划线可以互换*/
      *单星号*
      
      **双星号**
      

      单星号
      双星号

      PS.若文本中要使用星号和下划线,则需要转义

    • 内联代码

      又称“代码片段”,与块级元素中的代码块对比区分记忆。

      Markdown中输出一个代码片段,使用反引号 ` 标记(键盘英文输入法情况下,ESC下来的一个按键)。

      1. 若文本中包含反引号符号,可以使用多个反引号符号作为起始和结束标记

         ``There is a literal backtick (`) here.``
        
      2. 也可以使用空格区分起始和结束标记

         `` ` ``
        
    • 图片

      Markdown 使用类似链接的语法来插入图片,包含两种形式: 内联 与 引用。

      语法:在引用的基础上加感叹号

          //内联方式
          ![Alt text](imgurl "title")
          
          //引用方式
          ![Alt text][id]         //声明
          [id]: imgurl "title"    //标签定义
      

      PS: Markdown没有语法指定图片大小,如果要指定图片size,可以使用HTML <img> 标签。

  • 其它

    • 自动链接

      一种 “自动” 创建URL和Email地址链接的简短形式。

      //用尖括号包围即可
      <http://example.com/>
      
    • 反斜杠转义

      使用反斜杠可以转义Markdown的语法符号为字面量。

      \*星号包围文本,而不是要Markdown的强调语法\*
      
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容