Markdown语法学习(二)
概述
宗旨
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
下面是有序列表
- 小鸟
- 大象
代码区块
代码区块使用四个空格或一个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/>
显示效果
Markdown支持转移字符,使用反斜杠作为转移符。比如可以使用转移字符输出markdown中使用的关键字符。
- \ 反斜线
- ` 反引号
- 星号
- _ 底线
- {} 花括号
- [] 方括号
- () 括弧
井字号
- 加号
- 减号
- . 英文句点
- ! 惊叹号
可以尝试下:
这里输出中括号[4]。
附加说明
本文是使用Markdown编写的语法学习总结。内容中用到比较多的是代码区块和区块引用,主要是为了表示原始的语法格式和Markdown转换之后的效果对比。
参考
[1] Markdown 语法说明
看完效果
不得不吐槽下,博客园的markdown效果真的太差。完全没法看出来优势。
Markdown语法学习(二)的更多相关文章
- 随笔1:Markdown语法学习
学习背景 日常工作学习的时候,总喜欢用有道在线笔记记录点东西,不过以往都没太在意笔记的整理和排版,代码或者图片什么的都是直接贴在笔记上,不美观不说,有些代码格式也不容易进行区分,格式也在复制的时候容易 ...
- 基于 Cmd MarkDown 的 markdown 语法学习
首先我要打一个属于干货的广告:CmdMarkDown 是非常好用的markdown编辑器软件,支持全平台,由作业部落出品,分为客户端与WEB端两种使用场景. 本篇博客学习的markdown语法都是基于 ...
- 【8-15】Markdown语法学习
学习Markdown语法 来源简书URL #,支持六级标题 列表 用-或*(指无序列表),有序列表直接1. 2. 3. 这样,中间有空格,可乱序(-+*都可,不能混合使用,混合使用为嵌套) 这是一个无 ...
- markdown语法学习源码
__注: 结合markdown官方文档 其中大部分例子和说明文字都摘自官方文档__官方链接:[Markdown: Basics (快速入门)](http://wowubuntu.com/markdow ...
- MarkDown语法 学习笔记 效果源码对照
MarkDown基本语法学习笔记 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 下面将对Markdown的基本使用做一个介绍 目 ...
- [原创]markdown语法学习(commonmark)
CommonMark是markdown的解析器,以下是部分学习链接: commonmark规范 https://spec.commonmark.org/ commonmark帮助 https://co ...
- Swift3.0基础语法学习<二>
对象和类: // // ViewController2.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © ...
- Day001 Typora Markdown语法学习
# Markdown语法 ## 标题 ### 三级标题 #### 四级标题 注:最多支持到六级标题 ## 字体 **hello,world!** *hello,world!* ***hello,wor ...
- [寒假学习笔记](一)Markdown语法学习
Markdown 学习 在博客园上使用markdown编辑,记录学习进度,以来日可以复习 前期准备 1. 安装markdownpad2 官网直接找下载安装,遇到bug他会自动提示信息,跟着提示去安装一 ...
随机推荐
- 使用gprof对应用程序做性能评测
1,包含头文件gperftools/profiler.h 2,代码结构如下: int main() { // codes ProfilerStart("./profile"); / ...
- Apache Rewrite(大小写)
1.Rewrite规则简介: Rewirte 主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果 ...
- Python学习笔记(九)—— 函数
一.函数调用: 1.python内部函数查询:http://docs.python.org/3/library/functions.html#abs 2.注意调用函数的参数个数和类型. 3.函数名其实 ...
- elk之elasticsearch 入门
一.概述: 1.查看elasticsearch集群的健康状况: [root@node115 kibana]# curl -X GET http://192.168.39.115:9200/_cat/h ...
- 环信集成 2---基于环信Demo3.0,实现单聊功能
这几天在做环信,所以把环信相关的东西拿过来,做个系统点的东西 注意: 这里Demo集成的是带有实时语音功能的(libEaseMobClientSDK.a). 环信库是直接拖拽EaseMobSDK文件夹 ...
- Oracle 12C -- sequence的新特性
如果使用了全局临时表和sequence,有时会遇到一些问题.因为全局临时表与会话(或会话中的事务)相关,而sequence与数据库级别相关. 在12C中,可以创建一个sequence,其使用范围只是针 ...
- linux的0号进程和1号进程
linux的 0号进程 和 1 号进程 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) * idle进程由系统自动创 ...
- C# 用 * 输出两个等腰三角形组成的菱形
int temp = 0; int n = 5; for(int i=0;i<n;i++){ for(int j=0;j<n-i;j++){ System.Console.Write(&q ...
- proguard的简单配置说明
#需要转换的jar文件路径-injars 'D:\fs-np.jar'#转换后的jar文件名称-outjars 'D:\fs-np-sec.jar' #关联的第三方jar-libraryjars 'C ...
- 简单示例:Spring4 整合 单个Redis服务
1. 引入spring-data-redis.jar API:https://docs.spring.io/spring-data/redis/docs/current/api/org/springf ...