美文网首页
Markdown 语法学习分享

Markdown 语法学习分享

作者: Locdee_落地 | 来源:发表于2017-04-11 23:13 被阅读0次

    文章之前

    最近想用简书写点东西,发现Markdown挺有意思的,于是结合朋友分享的,和自己查找的一些资料,把Markdown的一些简单的语法记录在此。
    Markdown 和 Html 有些相近,但它的语法种类很少,只对应 HTML 标记的一小部分。


    特殊符号

    在HTML文件中,有两个字符需要特殊处理:&和<,但是在Markdown,你可以自然地书写,它会自动转换。如果你使用的 & 字符是 HTML 字符实体的一部分,它会保留原状,如版权符号 © (<code>&copy;</code>)否则它会被转换成<code> &amp;</code>。
    类似的情况也会发生在 “<” 上,如果你写 “4<5",Markdown 会自动转换成 <code>4 &lt;5</code>。但是如果把 < 符号作为 HTML 标签的定界符使用,Markdown 不会对它做任何转换。


    区块元素

    段落和换行

    一个 Markdown 段落前后要有一个以上的空行,若某一行只包含空格和制表符,则该行也会被视为空行,Markdown 会把每个换行符都转成<br /> 标签。
    普通段落不该用空格或制表符来缩进,如果你<u>确实</u>想要依赖 Markdown 插入 <br /> 标签的话,在插入处先按入两个以上的空格然后回车。

    标题

    Markdown 支持两种标题的语法
    第一种是是用底线的形式,利用=(最高阶标题)和 -(第二阶标题),例如:
    <pre>
    这是一级标题 H1
    =============
    这是二级标题 H2


    </pre>

    任何数量的 = 和 - 都可以有效果。
    另一种则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶,例如:
    <pre>

    这是 H1

    这是 H2

    这是 H6

    </pre>

    你可以选择性地「闭合」标题,这纯粹只是美观用的,而行尾的 # 数量也不用和开头一样(行首的井字符数量决定标题的阶数):
    <pre>

    这是 H1

    这是 H2

    这是 H3

    </pre>

    区块引用 Blockquotes

    在 Markdown 文件中建立一个区块引用,只需在每行的最前面加上>

    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
    > 这纯粹只是美观用的,
    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
    >
    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉,
    > 只需在每行的最前面加上 ">"

    当然你也可以只在整个段落的第一行最前面加上 > :

    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
    这纯粹只是美观用的,
    巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。
    巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

    区块引用可以嵌套(例如:引用内的引用),只要根据层次加上不同数量的>

    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

    >>这纯粹只是美观用的,
    > 巴拉巴拉巴拉巴拉巴拉巴拉巴拉巴拉。

    引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等:

    这是一个标题。

    > ###### 这是一个标题。

    1. 这是第一行列表项。
    2. 这是第二行列表项。
      >
      > 给出一些例子代码:
      >
      > return shell_exec("echo $input | $markdown_script");

    列表

    Markdown 支持有序列表和无序列表。
    无序列表使用星号、加号或是减号作为列表标记:

    *    RED
    *    GREEN
    *    BLUE
    

    等同于:

    +    RED
    +    GREEN
    +    BLUE
    

    也等同于:

    -    RED
    -    GREEN
    -    BLUE
    

    有序列表则使用数字接着一个英文句点:

    1.    RED
    2.    GREEN
    3.    BLUE
    
    Ps:列表标记上使用的数字并不影响输出的HTML结果:

    即可以写成

    1.    RED
    3.    GREEN
    5.    BLUE
    

    也可以写成:

    1.    RED
    1.    GREEN
    1.    BLUE
    

    如果列表项目间用空行分开,在输出 HTML 时 Markdown 就会将项目内容用< p > 标签包起来,举例来说:
    * RED

    *    BLUE
    

    会被转换为:

    <ul>
    <li><p>RED</p></li>
    <li><p>BLUE</p></li>
    </ul>
    

    如果要在列表项目内放进引用,那>就需要缩进:

    *  一个列表包含一个引用区块
        > 这是一个引用区块
        > 在这个列表里
    

    如果要放代码区块的话,该区块就需要缩进两次,也就是 8 个空格或是 2 个制表符:
    * 一个列表包含一个代码区块
    <代码写在这里>

    有时候会不小心就产生了一个项目列表,像是下面这样的写法:
    1986. What a great season.
    即在行首出现<u>数字-句点-空白</u>,要避免这样的情况,可以在句点前面加上反斜杠。

      1986\. What a great season.
    

    代码区块

    要在 Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,例如:

    这是一个普通段落:
    
          这是一个代码区块。
    

    Markdown 会转换成:

    <p>这是一个普通段落:</p>
    
    <pre><code>这是一个代码区块。
    </code></pre>
    

    一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。
    在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体,只需要将HTML代码复制贴上,再加上缩进就可以了,Markdown 会自动转换,非常简便。

    分隔线

    你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
    * * *
    ***
    *****
    - - -
    ---------------------------------------


    区段元素

    链接

    Markdown 支持两种形式的链接语法: 行内式和参考式两种形式。不管是哪一种,链接文字都是用 [方括号] 来标记。
    行内式的链接,只要在方块括号后面紧接着圆括号并插入网址链接即可,如果你还想要加上链接的 title 文字,只要在网址后面,用双引号把 title 文字包起来即可,例如:

    这是 [一个有title的链接](http://example.com/ "Title") 例子.
    [这个链接](http://example.net/) 没有标题属性.
    

    Markdown 会自动转换为:

    <p>这是 <a href="http://example.com/" title="Title">一个有title的链接</a>例子</p>
    
    <p><a href="http://example.net/">这个链接</a> 没有title属性.</p>
    

    也可以使用相对路径

    这是 [相对路径](/about/) 链接。
    

    参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记(两个方括号中间可以加上一个空格或者不加,最多三个空格):

    这是一个参考式的 [链接][id] 例子.
    

    然后,你可以在文件的任意地方,把这个标记的链接内容定义出来:
    [id]: http://example.com/ "Optional Title Here"
    链接内容定义的形式为:

    • 方括号,里面输入链接文字
    • 接着一个冒号
    • 接着一个以上的空格或制表符
    • 接着链接的网址
    • 选择性地接着 title 内容,可以用单引号、双引号或是圆括号包着

    下面这三种链接的定义都是相同:
    [foo]: http://example.com/ "Optional Title Here"
    [foo]: http://example.com/ 'Optional Title Here'
    [foo]: http://example.com/ (Optional Title Here)
    注意:Markdown.pl 1.0.1 会忽略单引号包起来的链接 title。
    链接网址也可以用方括号包起来:
    [id]: http://example.com/ "Optional Title Here"
    也可以把 title 属性放到下一行,也可以加一些缩进,若网址太长的话,这样会比较好看:
    [id]:http://example.com/longish/path/to/resource/here
    "Optional Title Here"
    网址定义只有在产生链接的时候用到,并不会直接出现在文件之中。
    链接辨别标签可以有字母、数字、空白和标点符号,但是并不区分大小写,因此下面两个链接是一样的:

    [link text][a]
    [link text][A]
    

    隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号,如果你要让 "Google" 链接到 google.com,你可以简化成:

    [Google][]
    

    然后定义链接内容:
    [Google]: http://google.com/

    强调

    Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被*_包围的字词会被转成用 <em>标签包围,用两个*_包起来的话,则会被转成 <strong>,例如:

    *single asterisks*
    
    _single underscores_
    
    **double asterisks**
    
    __double underscores__
    

    会转成:

    <em>single asterisks</em>
    
    <em>single underscores</em>
    
    <strong>double asterisks</strong>
    
    <strong>double underscores</strong>
    

    但是如果*_ 两边都有空白的话,它们就只会被当成普通的符号。

    如果要在文字前后直接插入普通的星号或底线,你可以用反斜线:

    \*this text is surrounded by literal asterisks\*
    

    代码

    如果要标记一小段行内代码,你可以用反引号把它包起来(`),例如:

    Use the `printf()` function.
    

    Markdown 会转换为:

    <p>Use the <code>printf()</code> function.</p>
    

    如果要在代码区段内插入反引号,你可以用多个反引号来开启和结束代码区段:

    ``There is a literal backtick (`) here.``
    

    在代码区段内,& 和方括号都会被自动地转成 HTML 实体,这使得插入 HTML 原始码变得很容易,Markdown 会把下面这段:

    Please don't use any `<blink>` tags.
    

    转为:

    <p>Please don't use any <code><blink> </code> tags.</p>
    

    图片

    Markdown 使用一种和链接很相似的语法来标记图片,同样也允许两种样式: 行内式和参考式。

    行内式的图片语法:

    ![](/path/to/img.jpg)
    
    ![](/path/to/img.jpg "Optional title")
    

    写法说明:

    • 一个惊叹号 !
    • 接着一个方括号,里面放上图片的替代文字
    • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 'title' 文字。

    参考式的图片语法:

    ![Alt text][id]
    

    「id」是图片参考的名称,图片参考的定义方式则和链接参考一样:

    [id]: url/to/image  "Optional title attribute"
    

    到目前为止, Markdown 还没有办法指定图片的宽高,如果需要的话,可以使用普通的 <img>标签。

    反斜杠

    Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号。

      \*literal asterisks\*
    

    Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

    \   反斜线
    `   反引号
    *   星号
    _   底线
    {}  花括号
    []  方括号
    ()  括弧
    #   井字号
    +   加号
    -   减号
    .   英文句点
    !   惊叹号
    

    相关文章

      网友评论

          本文标题:Markdown 语法学习分享

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