概述

宗旨

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. iOS UISlider滑动块触摸范围调整变大

    正常情况下,我们自定义的滑动区域都不会太大,否则UI不美观,但是这样,又会手势不灵敏,用户体验变差. 如何解决? 这里有一种方案:封装一个继承UISlider的自定义类,重写thumbRectForB ...

  2. build high performance server 转载

    http://blog.ci123.com/wobushizhanghua/entry/246311 先后查看了haproxy,l7sw和lighttpd的 相关源码,无一例外,他们一致认为多路复用是 ...

  3. Seqlite学习

    之前没有接触过数据库编程,尼玛,面试神码的最恶心了,非得神码都懂点,好吧,最近开始研究下,先从SQLite开始吧,贴上找到SQliteDB.之后搜集资料,慢慢学习!

  4. wxml

    <template name="objectCombine"> <view> <text> {{for}} </text> < ...

  5. 【java】详解java多线程

    目录结构: contents structure [+] 线程的创建与启动 继承Thread类创建线程类 实现Runnable接口创建线程类 使用Callable和Future创建线程 线程的生命周期 ...

  6. 【struts2】<s:url>标签

    <s:url>标签一般和超链接 <a>一起使用,用于带多个参数. <a href=" <s:url action=""> < ...

  7. Swift2.0语言教程之函数嵌套调用形式

    Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...

  8. 复杂对象类型的WebService高级部分

    从客户端除了传递字符串以外还可以传递复杂对象(对象必须序列化了),List,Map,数组和文件. (1)定义一个对象实现了serializable 接口package cn.com.chenlly.s ...

  9. QT creator 编辑器快捷键

    QT creator 编辑器快捷键 一.快捷键配置方法:   进入“工具->选项->环境->键盘”即可配置快捷键.     二.常用默认快捷键:       编号 快捷键 功能 1 ...

  10. Vue(二):调试神器vue-devtools安装和使用

    前言 vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率.接下来我们就介绍一下vue-devtools的安装. 安装 1.chrome商店直 ...