zoukankan      html  css  js  c++  java
  • Markdown基础语法

    Markdown基础语法

    简介

    Markdown 是一种轻量级标记语言,于2004年由约翰·格鲁伯(英语:John Gruber)创造。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”, 其中最重要的设计是可读性,也就是说这个语言应该要能直接在字面上被阅读,而不用被一些格式化指令标记 (比如 HTML)。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText, 这其中有一部分是在电子邮件中已有的纯文本标记语言。

    Markdown文件会被被最终解析成HTML(或XHTML)文本。实现一个markdown解释引擎并不困难,但这里并不讨论。

    基本语法

    段落和换行

    Markdown 段落会转换成HTML中的<p>标签。一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行。

    这是一个段落
    
    这是另一个段落
    

    相应的HTML文本是

    <p>这是一个段落</p>
    <p>这是另一个段落</p>
    

    另外,在显示上看起来像是空的,便会被视为空行。例如,若某一行只包含空格或制表符,则该行也会被视为空行。
    在文本中输入的换行符会被markdown忽略。如果想强制换行,可以在换行符前插入至少两个空格。但是并不推荐这么做,因为这种方式在转换成HTML时只是在行尾插入了一个<br />标签。

    这是一个 
    段落
    

    注意第一行末尾有两个空格,最终会转换成:

    <p>这是一个<br />段落</p>
    

    由于Markdown是兼容HTML的,因此直接插入<br /> 标签也能达到换行的效果,同样,我们不推荐这种换行方法。

    这是一个<br />
    段落
    

    会转换成:

    <p>这是一个<br />段落</p>
    

    MarkDown不负责缩进,因此在段首输入空格或制表符达不到预期的效果,但是可以通过以下两种方式使其看起来有缩进。

    1. 输入4个HTML的实体标记&nbsn;。转换成HTML仍然会保留这一实体标记,其表现为空格

    2. 输入两个中文全角空格。转换成HTML时会当成中文字符处理。

    实现段首缩进最好的方式是在样式中处理。

    #css file
    p{
    text-indent: 2em; /*首行缩进*/
    }
    

    标题

    Markdown有两种方式实现标题语法,类 Setext 和类 atx 形式。

    在标题内容前输入特定数量的井号('#')来实现对应级别的HTML样式的标题(HTML提供六级标题),这是类 Atx 形式。例如:

    # 一级标题,转换成h1标签
    
    #### 四级标题,转换成h4标签
    

    另一种类 Setext形式的语法是,用=实现最高阶标题,用-实现第二阶标题。任何数量的 = 和 - 其效果都是一样的,因此这种语法只能表达两级标题。

    一级标题
    ===================
    
    二级标题
    --------------------
    

    列表

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

    无序列表使用星号、加号或是减号作为列表标记:

    * 文本1
    * 文本2
    

    等同于:

    - 文本1
    - 文本2
    

    有序列表则使用数字接着一个英文句点,和文本之间需要有一个空格:

    1. 文本1
    2. 文本2
    3. 文本3
    

    在列表标记上使用的数字并不会影响输出的 HTML 结果,因此上面的代码也可以写成这样:

    1. 文本1
    3. 文本2
    1. 文本3
    

    在转换成HTML后,都是

    <ol>
    <li>文本1</li>
    <li>文本2</li>
    <li>文本3</li>
    </ol>
    

    有序列表标记上的第一个数字意味着列表的起始序号,之后写什么数字无关紧要。例如:

    14. 文本1
    3. 文本2
    1. 文本3
    

    会转换成HTML标记

    <ol start='14'>
    <li>文本1</li>
    <li>文本2</li>
    <li>文本3</li>
    </ol>
    

    列表子项,要以一个制表符或者4个空格缩进来实现。有序和无序列表可以互相嵌套

    1. 文本1
        + 子项1
        + 子项2
            1. 子子项1
            1. 子子项2
    2. 文本2
    3. 文本3
    

    列表项目标记通常是放在最左边,但是其实也可以缩进,最多3个空格,因为4格缩进就将文本变成代码区块了(这个后面再讲)。

    区块引用

    文章中引用了他人的文字,为便于区分需要使用区块引用标记。在引用的文字前面加上 > 符号,并且和正文之间保留一个空格。

    >白日依山尽,黄河入海流。欲穷千里目,更上一层楼。
    

    文本友好几段时,需要在每个段落前都加上 > 符号。

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

    >只是一段引用
    >>这是引用内的引用
    

    区块引用中也可以使用其他Markdown标记,比如列表,标题等等。

    > ## 登鹳雀楼
    > 白日依山尽,黄河入海流。  
    > 欲穷千里目,更上一层楼。
    

    代码区块

    如果你在写一篇跟程序相关的文章(比如我这篇),需要把代码按照原来的样子显示,应该怎么做呢?
    很简单,只要缩进 4 个空格或是 1 个制表符就可以,例如:

    这是普通段落文本
        这是代码区块
    

    Markdown 会用 <pre> 和 <code> 标签来把代码区块包起来,转换成

    <p>这是普通段落文本</p>
    <pre><code>这是代码区块。
    </code></pre>
    

    注意,代码区块要和前后文本都保持一个空行的距离。
    在代码区块中, & 、 < 和 > 会自动转成 HTML 实体,也就是说,你不必考虑代码区块中是什么文本,在转换成HTML之后,它总是能显示原来的样子。例如:

    <div class="footer">
            &copy; 2018
    </div>
    

    会转换成

    <pre><code>&lt;div class="footer"&gt;
    &amp;copy; 2018
    &lt;/div&gt;
    </code></pre>
    

    链接

    写作总常常用到链接,比如,参考了某篇文章,需要用链接跳转。
    Markdown 支持两种形式的链接语法: 行内式和参考式两种形式。不管是哪一种,链接文字都是用 [方括号] 来标记,其语法是[显示文本](链接地址)

    行内式示例如下。

    我参考了文章[这是链接](http://www.example.com)
    

    转换成:

    <p>我参考了文章<a href="http://www.example.com" target="_blank">这是链接</a></p>
    

    参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记:

    这里是一个 [链接][id] 以供参考.
    

    接着,在文件的任意处,你可以把这个标记的链接内容定义出来:

    [id]: http://example.com/  "链接的title"
    

    使用参考式链接会使文章更容易阅读,不会因过多的链接而影响文章本身的内容。

    强调

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

    *强调一*
    _强调二_
    **特殊强调一**
    __特殊强调二__
    

    会转换成

    <em>强调一</em>
    <em>强调二</em>
    <strong>特殊强调一</strong>
    <strong>特殊强调二</strong>
    

    图片

    插入图片和插入链接非常相似,唯一的区别就是再中括号前面加入感叹号"!"。其语法是![](图片链接地址)
    图片同样也支持行内式和参考式,例如

    ![Alt text](http://www.example.com/path/to/img.jpg)
    ![Alt text](/path/to/img.jpg "Optional title")
    
    ![Alt text][id]
    [id]: url/to/image  "Optional title attribute"
    

    Markdown 不能图片的宽高,如果有需要,你可以使用普通的HTML的 标签来插入图片。

    反斜杠

    Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号。比如,你想插入星号,但是又不想使用强调,你可以在星号前加上反斜杠,他就会原原本本输出星号。

    这就是*Markdown*
    

    在Markdown中插入HTML文本,需要用反斜杠,否者会当做HTML元素。

    <input>是一个表单元素
    

    借助反斜杠来插入普通的符号包括下面这些:

    反斜杠 `反引号 *星号 _下划线 {}花括号 []方括号 ()括弧 #井字号 +加号 -减号 .英文句 !感叹号。

  • 相关阅读:
    JS控制SVG缩放+鼠标控制事件
    JS多线程之Web Worker
    通过Java调用Python脚本
    Cornerstone的使用
    SVN服务器的搭建
    Python 函数作用域
    RDD转换算子(transformantion)
    Spark RDD简介
    Django 外键
    Django 模型常用属性
  • 原文地址:https://www.cnblogs.com/zhmhhu/p/8290488.html
Copyright © 2011-2022 走看看