概述

宗旨

Markdown 的目标是实现「易读易写」。

可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大灵感来源其实是纯文本电子邮件的格式。

总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像强调。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。

兼容 HTML

Markdown语法的目标是:成为一种适用于网络的书写语言。

Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来, HTML 已经很容易写了。Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式。就这样,Markdown 的格式语法只涵盖纯文本可以涵盖的范围。

不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown;只要直接加标签就可以了。

区块语法

段落

Markdown中的段落需要使用一个以上的空行,否则不会认为是单独一个段落。

标题

Markdown支持两种格式标题形式:

类Setext形式使用底线形式,=表示顶级标题,-表示第二级标题。

顶级标题
=======
二级标题
-------

用Markdown处理之后,效果如下:

顶级标题

二级标题

类Atx形式,在行首插入多个#,表示标题级数(支持六级),如下的语法形式:

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

最终转化之后效果是这样的:

一级标题

二级标题

三级标题

四级标题

区块引用

使用字符">"(大于号),后面跟着一个空格,表示一个区块引用。

比如下面这种语法

> 区块引用测试

转换之后的效果如下

区块引用测试

区块引用是可以自身嵌套的,可以使用其他的 Markdown 语法,包括标题、列表、代码区块等。

比如下面的效果,可以用嵌套实现

这是一个嵌套标题

这是区块引用自身嵌套

  • 这是列表项

下面是嵌入代码

// c++ code

int value = 12345;

列表

无序列表可以使用 星号*、加号+、减号-,作为标记。有序列表使用数字加一个点号。下面的语法描述

* Red
+ Green
- Blue
-
下面是有序列表 1. 小鸟
2. 大象

转换之后的语法

  • Red
  • Green
  • Blue

下面是有序列表

  1. 小鸟
  2. 大象

代码区块

代码区块使用四个空格或一个Tab表示。通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示。比如下面的输入(正常输入前面加上四个空格缩进对齐):

sum = 0
for i=0, i < 100, ++i
sum += i
end for

分割线

可以在一行中使用三个以上的星号*、减号-、下划线表示分割线。比如下面两行:

***
---

实际显示效果是这样的:



区段元素

行内链接

链接的文字使用[方括号]来标记。提示信息可以用双引号包含。

This is [an test](http://test "help")

转换之后是这样的:

This is an test

强调

Markdown使用星号*、和下划线_,作为强调字符。

单个字符包围的表示斜体,两个字符包围的表示黑体。

*italic* _italic_
**bold** __bold__

实际显示效果

italic italic

bold bold

代码

Markdown支持行内代码。使用反引号`(左上角数字键1左边对应的字符)。比如下面形式:

Use `printf()` function

显示为

Use printf() function

自动链接和转移字符

自动链接,在名字和url一致的时候,可以用下面形式:

<http://www.help.com/>

显示效果

http://www.help.com/

Markdown支持转移字符,使用反斜杠作为转移符。比如可以使用转移字符输出markdown中使用的关键字符。

  • \ 反斜线
  • ` 反引号
    • 星号
  • _ 底线
  • {} 花括号
  • [] 方括号
  • () 括弧
  • 井字号

    • 加号
    • 减号
  • . 英文句点
  • ! 惊叹号

可以尝试下:

这里输出中括号[4]。

附加说明

本文是使用Markdown编写的语法学习总结。内容中用到比较多的是代码区块和区块引用,主要是为了表示原始的语法格式和Markdown转换之后的效果对比。

参考

[1] Markdown 语法说明

看完效果

不得不吐槽下,博客园的markdown效果真的太差。完全没法看出来优势。

Markdown语法学习(二)的更多相关文章

  1. 随笔1:Markdown语法学习

    学习背景 日常工作学习的时候,总喜欢用有道在线笔记记录点东西,不过以往都没太在意笔记的整理和排版,代码或者图片什么的都是直接贴在笔记上,不美观不说,有些代码格式也不容易进行区分,格式也在复制的时候容易 ...

  2. 基于 Cmd MarkDown 的 markdown 语法学习

    首先我要打一个属于干货的广告:CmdMarkDown 是非常好用的markdown编辑器软件,支持全平台,由作业部落出品,分为客户端与WEB端两种使用场景. 本篇博客学习的markdown语法都是基于 ...

  3. 【8-15】Markdown语法学习

    学习Markdown语法 来源简书URL #,支持六级标题 列表 用-或*(指无序列表),有序列表直接1. 2. 3. 这样,中间有空格,可乱序(-+*都可,不能混合使用,混合使用为嵌套) 这是一个无 ...

  4. markdown语法学习源码

    __注: 结合markdown官方文档 其中大部分例子和说明文字都摘自官方文档__官方链接:[Markdown: Basics (快速入门)](http://wowubuntu.com/markdow ...

  5. MarkDown语法 学习笔记 效果源码对照

    MarkDown基本语法学习笔记 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 下面将对Markdown的基本使用做一个介绍 目 ...

  6. [原创]markdown语法学习(commonmark)

    CommonMark是markdown的解析器,以下是部分学习链接: commonmark规范 https://spec.commonmark.org/ commonmark帮助 https://co ...

  7. Swift3.0基础语法学习<二>

    对象和类: // // ViewController2.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © ...

  8. Day001 Typora Markdown语法学习

    # Markdown语法 ## 标题 ### 三级标题 #### 四级标题 注:最多支持到六级标题 ## 字体 **hello,world!** *hello,world!* ***hello,wor ...

  9. [寒假学习笔记](一)Markdown语法学习

    Markdown 学习 在博客园上使用markdown编辑,记录学习进度,以来日可以复习 前期准备 1. 安装markdownpad2 官网直接找下载安装,遇到bug他会自动提示信息,跟着提示去安装一 ...

随机推荐

  1. JSONObject.parseObject(jsonStr);和JSONObject.fromObject(jsonStr);

    虽然都是返回JSONObject,但是 JSONObject.parseObject(jsonStr);这个方法需要导入import com.alibaba.fastjson.JSONObject; ...

  2. 进阶之路(基础篇) - 021 arduino基础知识

    什么是arduino(翻译自arduino官方介绍)Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).她适用于艺术家. ...

  3. linux c学习笔记----线程创建与终止

    进程原语 线程原语 描述 fork pthread_create 创建新的控制流 exit pthread_exit 从现有的控制流中退出 waitpid pthread_join 从控制流中得到退出 ...

  4. php sockent通信

    1.php服务端:server.php <?php //确保在连接客户端时不会超时 set_time_limit(0); $ip = '127.0.0.1'; $port = 1935; /* ...

  5. IT系统故障引起的一个事故的思考

    记得几年前在我以前工作过的一个公司,因为系统的一个审批流突然中断,而且也没有在系统中触发邮件和短信等提示消息,而且我们的相关的审批人员和发 起人也没有在意.直到流程发起的同事在采购物品即将要使用的前2 ...

  6. golang ---image

    package main import ( "image" "image/color" "image/gif" "os" ...

  7. 【转】Tesla Model S的设计失误

    Tesla Model S的设计失误 这幅美丽的图片,就是红极一时的Tesla电动车Model S的内景.然而你有没有发现,其中有一些不大对劲的地方?虽然我看好电动汽车,它们环保,安静,运动敏捷,然而 ...

  8. cucumber java从入门到精通(1)初体验

    cucumber java从入门到精通(1)初体验 cucumber在ruby环境下表现让人惊叹,作为BDD框架的先驱,cucumber后来被移植到了多平台,有cucumber-js以及我们今天要介绍 ...

  9. [转]gdb调试多进程和多线程命令

    1. 默认设置下,在调试多进程程序时GDB只会调试主进程.但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序.只需要设置follow-fork-mode( ...

  10. 常用代码之八:setTimeout 和 clearTimeout。

    1.先写一个错误的例子:   function DealSomething() {        //write some code        window.setTimeout(function ...